Smart content and format reuse
Through the intelligent content and format copy system, metadata and machine learning are used to identify the copy mode, and intelligent paste options are provided, which solves the problems of resource waste and operation complexity when copying data, and realizes efficient data copying and format conversion.
Patent Information
- Application Number
- CN202080014320.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-02-18
- Filing Date
- 2020-02-06
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-02-06
AI Technical Summary
When copying data, users usually need to manually delete unnecessary parts and reformat the data to suit the needs of different locations, resulting in waste of resources and complex operational processes.
Through an intelligent content and format copy system, using metadata and machine learning to identify copy patterns, provides intelligent paste options, allowing users to choose to retain specific data parts and formats, automatically apply new formats or visualizations, and reduce manual operations.
Improves the efficiency of replicating data, reduces resource consumption and operational complexity, and reduces the use of processor cycles, network traffic and storage resources.
Smart Images

Figure CN113454632B_ABST
Abstract
Description
Technical Field
[0001] In general, the subject matter disclosed herein relates to special purpose machines that facilitate content replication, including computerized variations of such special purpose machines and improvements to such variations, as well as techniques for improving such special purpose machines over other special purpose machines that facilitate content replication. In particular, the present disclosure is directed to systems and methods for providing intelligent content and formatting when replicating content to different locations. Background Art
[0002] Typically, when a user copies data from a first location to a second location, all selected data is repeated at the second location. In some cases, the format of the selected data at the first location is also repeated. However, the user often only needs a portion of the data (e.g., a few columns or rows of a table). Therefore, the user copies all the data and then must manually delete the unwanted data. In addition, the user may need to reformat the data at the second location to update it (e.g., to the current time range), to use a different visualization (e.g., from a table format to a line chart), or to use a different range of data. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings.
[0004] Figure 1 is a block diagram illustrating an example environment for intelligently using content and formatting during copy and paste operations according to an example embodiment.
[0005] Figure 2 is a block diagram of components of an analysis engine according to an example embodiment.
[0006] Figure 3 is a flow chart of an example method for intelligently reusing content and formatting during copy and paste operations according to an example embodiment.
[0007] Figure 4 is a flow chart of an alternative example method for intelligently reusing content and formatting during copy and paste operations according to an example embodiment.
[0008] Figure 5 is a flow chart of an example method for analyzing selected data according to an example embodiment.
[0009] Fig. 6A is a screenshot of a sample user interface that provides options.
[0010] Figure 6B are screenshots of different sample user interfaces in which the user can delete rows and columns but retain the formatting.
[0011] Figure 7 is a diagrammatic representation of a machine in the example form of a computing system within which a set of instructions may be executed, causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment. DETAILED DESCRIPTION
[0012] The following description describes the system, method, technology, instruction sequence and computing machine program product of the example embodiment of the present theme. In the following description, for the purpose of explanation, many specific details are set forth to provide an understanding of the various embodiments of the present theme. However, it is apparent to those skilled in the art that the embodiments of the present theme can be put into practice without some or other details in these specific details. Examples represent possible variations only. Unless otherwise expressly stated, structures (e.g., structural components, such as modules) are optional and can be combined or subdivided, and the order of operations (e.g., in processes, algorithms or other functions) can be changed or combined or subdivided.
[0013] Example methods (e.g., algorithms) and systems (e.g., special machines) facilitate intelligently copying and pasting the content and / or format of selected data. For example, when copying a table, a user may choose to keep only the header and leave the rest of the table blank, retain the format (e.g., the original style of the table), or link the selected data to live data. Typically, many users reuse content where some data is useful but other data is not, or the user only needs the format of the selected content (e.g., the settings of the table). Example embodiments make it easier for these users to utilize previous content or formatting without having to manually delete any unwanted data or reformat the pasted data by providing options to automatically reuse a portion of the selected data, reuse one or more formats / styles, or use applicable new formats / styles. These embodiments have semantic knowledge about the content (e.g., from metadata and machine learning patterns), including what headers, rows, columns, total rows, calculated data, etc. are. In some embodiments, the system applies an intelligent layer (e.g., machine learning) to identify specific patterns based on the history of past content / documents and copy / paste operations. In these embodiments, the system can provide recommendations for one or more options for content or format reuse or new formats.
[0014] According to an example embodiment, the networked system analyzes the copied data, associated metadata, and machine-learned patterns to identify different options that can be used for the paste operation. These options may include, for example, linking the data to real-time information, one or more of a style (e.g., color, font, size), label, visualization, and range associated with the selected data being copied. Thus, these options provide a mechanism to intelligently reuse (e.g., copy and paste) formatting and / or content or apply new formatting in an efficient and easy-to-use manner.
[0015] In an example embodiment, a client device or a system communicatively coupled thereto (each of which may also be individually or collectively referred to as a networked device) receives a selection of data to be copied and an instruction to copy the selected data from a first location to a second location. In response, the selected data is copied, whereby the selected data includes content and associated metadata. The associated metadata may include, for example, source information of the selected content, peripheral information of the selected content (e.g., relationship to other content that may or may not be selected), the style of the selected data, and the type of content (e.g., text, table, image). The networked device receives an instruction to paste the selected data at a second location. In response, the networked device analyzes the selected data and metadata and any patterns derived from the user's past copy / paste operations to determine one or more available options, whereby each option may be selected to change an aspect of the selected data being pasted. An image of a placeholder representing the selected data is then presented at the second location along with one or more options. In an example embodiment, the options are presented in relation to the image of the placeholder (e.g., as a menu on one side of the image). The user selects one of the options, and the networked device presents the selected data in place of the placeholder image based on the selected option.
[0016] Thus, one or more of the methods described herein help solve the technical problem of reusing a portion or specific aspects of selected data when copying to a second location in an efficient and intelligent manner. Thus, one or more of the methods described herein can eliminate the need for certain work or computing resources that would be involved when copying and pasting data that requires further formatting (e.g., deleted or added data, changed styles, separately created visualizations). Thus, resources used by one or more machines, databases, or devices (e.g., within an environment) can be reduced by reducing the operations required to reformat or change copied data. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, network bandwidth, and cooling capabilities.
[0017] Figure 11 is a block diagram illustrating an example environment 100 for intelligently using the content and / or format of selected data during a copy and paste operation according to an example embodiment. In an example embodiment, a networked device 102 manages the copying and pasting of selected data from a first location to a second location associated with one or more applications 104. Thus, the networked device 102 includes a component that allows a user operating the networked device 102 to access and use an application 104 stored thereon or communicatively coupled thereto, for example, via a network 106. The application 104 may include a spreadsheet application 104A (e.g., Microsoft Excel), a word processing application 104B (e.g., Microsoft Word), a presentation application 104C (e.g., Microsoft PowerPoint), or any other application 104 having functionality that allows a user to copy and paste selected data from a first location to a second location. In some cases, the first location and the second location are within the same application 104. However, in other cases, the first location is in a first application and the second location is in a second application. In addition, the first location may be a networked location (e.g., a website) accessed via a network 106, and the second location is associated with one of the applications 104.
[0018] The networked device 102 also includes components that facilitate reuse of intelligent content and formatting in one or more applications 104. According to an exemplary embodiment, these components include an input module 108, an analysis engine 110, a rendering module 112, and a network module 114, all of which are configured to communicate with each other (e.g., via a bus, shared memory, or switch).
[0019] The input module 108 is configured to receive selections and instructions from a user of the networked device 102 to perform intelligent content and format reuse operations. In an example embodiment, the input module 108 receives a selection of data and an instruction to copy the selected data to a second location. Subsequently, the input module 108 receives an instruction to paste the selected data to the second location. In some embodiments, the input module 108 also receives a selection of an option to change an aspect of the selected data being pasted.
[0020] The analysis engine 110 analyzes the selected data and associated metadata to identify one or more applicable options that change aspects of the selected data. Different selected data will have different options based on the content of the selected data and the associated metadata. In addition, the analysis engine 110 performs machine learning on patterns for the user and uses these patterns when identifying options. Figure 2 The analysis engine 110 is discussed in more detail.
[0021] The presentation module 112 causes presentation of one or more options determined by the analysis engine 110 that are selectable to change aspects of the selected data being pasted. In some embodiments, the presentation module 112 presents an image of a placeholder representing the selected data and one or more options. The image of the placeholder may have a shape, size, or format similar to the selected data, but may be grayed out or otherwise visually distinguished to indicate that the selected data has not yet been pasted. For example, if the selected data is a table in the spreadsheet application 104A, the image of the placeholder may be a blank table. In one case, the blank table includes the same number of rows and columns as the selected data, but has empty cells.
[0022] In an example embodiment, the presentation module 112 presents one or more options as a menu adjacent to an image of a placeholder. Each option of the menu may have a submenu. For example, if the option in the menu is a visualization, the submenu may include a visualization type, such as a bar chart, a pie chart, a scatter plot, a line chart, a column chart, a histogram, a box plot, a tree map, a sunburst chart, a waterfall chart, a funnel chart, a stock chart, a surface chart, a radar chart, a bubble chart, a donut chart, or other visualizations that the analysis module 112 has determined to be suitable for the selected data. In some embodiments, a submenu may also have submenus. For example, if the option is a style, a first submenu may include a color or font option. Hovering the cursor over a color option or selecting a color option causes a further submenu of different color options to be displayed. Similarly, hovering the cursor over a font option or selecting a font option causes a further submenu of different font options to be displayed.
[0023] In some embodiments, one of the options is a recommendation about the most likely option that the analysis engine 110 determines will be selected by the user based on past selected options or paste operations for similar selected data based on machine learning. In these embodiments, the presentation module 112 first presents the recommendation (e.g., the top of the menu). Alternatively, the presentation module 112 presents an image of a placeholder with the recommended option that is automatically applied. In this embodiment, the user can accept the placeholder image (e.g., select and confirm the option) or select an alternative option (e.g., from a menu displayed adjacent to the image).
[0024] Once the input module 108 receives the final selection of the options (e.g., a bar chart option for visualization; "times roman" for font; data range), the rendering module 112 formats the selected data according to the selection. Thus, for example, if the selection is for a specific data range of the selected data from the spreadsheet (e.g., a first position), the rendering module 112 displays a table with only the selected data within the specific data range in the second position.
[0025] In another embodiment, more than one option may be selected. For example, the user may first select a data range for the paste operation, and then select a bar chart visualization as a second option. In this example, the presentation module 112 generates and displays a bar chart with the selected data range as the pasted data at the second location.
[0026] The networked device 102 may be coupled to websites and networked systems via the network 106. The network module 114 manages communications through the network 106 for the networked device 102. In one embodiment, the networked system coupled to the networked device 102 via the network 106 is a server system 116 that provides web-based services for one or more of the applications 104. In these embodiments, some functions performed by components of the networked device 102 may be performed by the server system 116. For example, in a collaborative work environment, a user of the networked device 102 may use a web-based version of the spreadsheet application 104A or the word processing application 104B to edit a document created by another user on a different networked device. The network module 114 provides communications with the server system 116 in order to access the functionality provided by the server system 116.
[0027] One or more portions of network 106 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of a public switched telephone network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a WiMax network, a satellite network, a wired network, a broadcast network, another type of network, or a combination of two or more such networks. Any one or more portions of network 106 may transmit information via a transmission or signal medium. As used herein, "transmission medium" refers to any intangible (e.g., transient) medium capable of transmitting (e.g., sending) instructions executed by a machine (e.g., by one or more processors of such a machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
[0028] Figure 1 As shown in or with Figure 1 Any associated system or device may include or otherwise be implemented with a special-purpose (e.g., specialized or otherwise non-general purpose) computer that has been modified (e.g., configured or programmed by software such as one or more software modules of an application, operating system, firmware, middleware, or other program) to perform one or more functions described herein for that system or machine. For example, the following reference to Figure 7A special purpose computer system capable of implementing any one or more of the methods described herein is discussed, and such a special purpose computer may therefore be a unit for performing any one or more of the methods discussed herein. In the art of such special purpose computers, a special purpose computer that has been modified with the structures discussed herein to perform the functions discussed herein is an improvement in the art over other special purpose computers that lack the structures discussed herein or are otherwise unable to perform the functions discussed herein. Therefore, a special purpose machine configured according to the systems and methods discussed herein provides an improvement in the art over similar special purpose machines.
[0029] Furthermore, any functionality described herein for networked devices 102 may be subdivided with server system 116. Additionally, any number and type of networked devices 102 may be embodied in Figure 1 In addition, some components or functions of environment 100 may be combined or located elsewhere in environment 100. For example, some functions of networked device 102 may be embodied at server system 116.
[0030] Figure 2 1 is a block diagram illustrating an example embodiment of components within analysis engine 110. In an example embodiment, analysis engine 110 performs operations for determining one or more paste options for reusing data or formatting of copied data. To implement these operations, analysis engine 110 includes data module 202, visualization module 204, real-time data module 206, style module 208, text module 210, label module 212, and pattern module 214.
[0031] The data module 202 analyzes the selected data (e.g., content and associated metadata) to identify aspects associated with the selected data. In some embodiments, when the selected data is part of a table, the data module 202 distinguishes between headers, columns, and rows. In these embodiments, the data module 202 can use metadata to identify relationships between data in the table. Further, the data module 202 can have semantic knowledge about the selected data (e.g., from metadata). For example, a row of the selected data may include data calculated based on data from other rows and displayed in bold. In this example, the row is inferred to be a calculated data row. If the row includes a sum calculation (e.g., summing multiple data from other rows), the row can be inferred to be a total row.
[0032] The data module 202 also analyzes the selected data to determine one or more ranges applicable to the selected data. For example, the selected data may include data ranging from 0 to 500. In this example, the data module 202 may determine options to organize the data in increments of one hundred (e.g., 0-100, 100-200, 200-300, 300-400, 400-500). These options may be presented by the presentation module 112 as a submenu of data options, and any one or more of the data range options may be selected.
[0033] The visualization module 204 analyzes the selected data (e.g., content and associated metadata) to determine whether the selected data can be used to generate a visualization and to determine an applicable visualization type. Visualization types include: bar charts, pie charts, scatter plots, line charts, column charts, histograms, box plots, tree diagrams, sunburst charts, waterfall charts, funnel charts, stock charts, surface charts, radar charts, bubble charts, donut charts, or one or more of other graphical representations of the selected data. Options for visualization types can be presented by the presentation module 112 as a submenu of visualization options. In some embodiments, the visualization type can be graphically represented in the submenu according to its type. For example, a bar chart option is displayed as a sample bar chart, and a pie chart option is displayed as a sample pie chart.
[0034] The real-time data module 206 determines whether the selected data can be linked to real-time data. For example, if the selected data is a table from a website that is updated monthly, the real-time data module 206 identifies the link to the website and establishes a default time to automatically check for updates (e.g., once a month). This can be presented by the presentation module 112 as a "keep real-time" option in the options menu. Alternatively, the real-time data module 206 can provide an option that allows the user to initiate a refresh that links the selected data to the real-time data. In this embodiment, the selected data is updated in response to a user selection of a user-initiated refresh option.
[0035] The style module 208 determines style options applicable to the paste operation based on the content and associated metadata. In an example embodiment, the style module 208 analyzes the selected data to determine the current style of the selected data and suggests one or more alternative styles based on the current style. For example, the style may include the color of the header, row, or column; font color; font type; or any other aspect that affects the appearance of the selected data.
[0036] The text module 210 analyzes the selected data to determine whether the selected data includes text, rather than a table or image. In embodiments where the selected data is text, in some cases, the text module 210 can determine whether the text is a quote being copied. In these cases, the text module 210 can identify different quote options that are applicable to the text. For example, if the text is a short quote, the quote option can use double quotes before and after the selected data. Alternatively, if the text is a long quote (e.g., more than 50 words), the quote option can be an independent block of text that omits quotes and is indented relative to other content at a second position.
[0037] In some embodiments, the text module 210 can identify a topic associated with the text and use the topic to find related other content (e.g., images, further text). In these embodiments, the text module 210 can identify keywords (e.g., prominent words or context) in the selected data. The keywords can be part of the title, bolded or otherwise distinguished from other text. Alternatively, the keywords can be words that are used more frequently than other text. These keywords are then used to identify the topic. Once the topic is identified, images or further text related to the topic can be determined. The images or further text can come from the same source as the selected data (e.g., the same document) or from a networked system (e.g., a website, server system 116) accessed via the network 106. The images or further text are then provided as options by the presentation module 112.
[0038] The label module 212 analyzes the selected data and the associated metadata to determine the label applicable to the paste operation. For example, if the selected data is from a table including a column header for the month, the label module 212 can provide options for different months to be used in the paste.
[0039] In some embodiments, label module 212 works with pattern module 214 to determine labels. Continuing with this example, based on the identified label being month, and based on the pattern identified by pattern module 214 instructing the user to update the table with the current month each month and remove the oldest month from the pasted data, label module 212 determines the options to include the current month. For example, if the selected data has labels from January to March, and it is now April, the options may be a set of labels from February to April.
[0040] The pattern module 214 analyzes historical data associated with previous copy and paste operations to perform machine learning and identification of patterns. Therefore, the pattern module 214 accesses historical data for the user's previous option selections and formats. The identified patterns are based on patterns detected from the historical data, such as options that were commonly selected or applied to the pasted data in the past, and the selected data or formats (e.g., the size of the pasted table, a specific font) that are usually retained, deleted, selected, or applied. The patterns identified by the pattern module 214 can be used by other components of the analysis engine 110 to determine their related options. For example, if a specific data range is usually selected, the data module 202 can identify options corresponding to the specific data range. Similarly, if the pattern indicates a commonly used specific style (e.g., font, color, size), the style module 208 identifies those specific styles as options.
[0041] In some embodiments, the pattern module 214 can select one or more options that may be used in the paste options based on the pattern determined for the user and present these options as recommendations or first in a menu or submenu. In one embodiment, the presentation module 112 presents the recommendations that apply to the selected data as a placeholder image. The user can then choose to accept the options / recommendations presented in the image or select other options presented. For example, if the pattern module 214 determines that the user tends to use a table from the previous month and add a new month with specific data, the pattern module 214 can infer this trend or pattern. Upon initial pasting of the placeholder image, the presentation module 112 presents a table with new column headers (for the new month) and corresponding data.
[0042] Any one or more of the components of the network environment 100 and the analysis engine 110 described herein (e.g., modules, engines) can be implemented using hardware (e.g., one or more processors of a machine) or a combination of hardware and software alone. For example, any component described herein may physically include an arrangement of one or more of these processors, or a processor (e.g., one or more processors of a machine) may be configured to perform the operations described herein for the module. Therefore, the different components described herein may include and configure different arrangements of these processors at different time points or a single arrangement of these processors at different time points. Each component described herein (e.g., module) is an example of a unit for performing the operations described herein for the component. In addition, any two or more of these components may be combined into a single component, and the functions described herein for a single component may be subdivided among multiple components. In addition, according to various example embodiments, the components described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices.
[0043] Figure 3 is a flow chart of an example method 300 for intelligently reusing content and formatting during copy and paste operations according to an example embodiment. The operations in method 300 may be performed using the above description of Figure 1 and Figure 2 The described components (e.g., modules, engines) are executed by the networked device 102. Therefore, the method 300 is described with reference to the networked device 102 by way of example. However, it should be understood that at least some of the operations of the method 300 can be deployed on various other hardware configurations or performed by similar components located elsewhere. For example, some of these operations can be performed at the server system 116.
[0044] In operation 302, the input module 102 receives a selection of data to be copied and an indication to copy the selected data. In an example embodiment, the selected data is from a first location. The user can select the data by, for example, pointing to the data, highlighting the data, or creating a bounding box around the data. The user can then trigger the copy operation by providing an indication to copy the selected data (e.g., right-clicking to bring up a menu and selecting a copy option on the menu).
[0045] In operation 304, the selected data is copied (e.g., by input module 108 or another component of networked device 102). In some embodiments, the selected data (or a version of the selected data) is copied to the clipboard. In other embodiments, reference information (for accessing the selected data at the first location of the source document) is copied to the clipboard instead of the selected data. In some cases, the content on the clipboard includes metadata associated with the selected data (e.g., table properties, relationships between the selected data and / or unselected data).
[0046] In operation 306, the input module 102 receives a paste indication at a second location. The second location can be on the same document or a different document, and can be within the same application 104 or a different application. Further, the first location of the source of the selected data can be a network-based system coupled to the networked device 102 via the network 106.
[0047] In operation 308, the selected data is analyzed to identify one or more options for reusing the content or format of the selected data. Figure 5 Operation 308 is discussed in more detail. In some embodiments, operation 308 may occur before operation 306. For example, operation 308 may occur once the selected data is copied (in operation 304).
[0048] In operation 310, one or more options that change an aspect of the selected data when pasted are presented by the presentation module 112. In some embodiments, the presentation module 112 presents an image of a placeholder representing the selected data and one or more options. According to one embodiment, the one or more options are presented as a menu adjacent to the image of the placeholder. In addition, each option of the menu can have a submenu.
[0049] In some embodiments, the analysis engine 110 determines the most likely option based on machine learning, based on past selected options or paste operations for similar selected data, to be recommended. In some cases, the recommendation may be presented first in the menu.
[0050] In operation 312, the input module 102 receives a selection of a presented option. The selection is a selection of an option from a menu or submenu presented by the presentation module 112.
[0051] In operation 314, the selected data is displayed (e.g., the content is pasted) based on the selected option. In an example embodiment, the rendering module 112 formats the selected data according to the selected option. Thus, for example, if the selection is for a specific data range of the selected data from the spreadsheet (e.g., a first position), the rendering module 112 displays a table at a second position with only the selected data within the specific data range. In some embodiments, more than one option can be selected, and the rendering module 112 pastes the selected data based on all of the selected options.
[0052] Figure 4 is a flow chart of an example method 400 for intelligently reusing content and formatting during copy and paste operations according to an alternative example embodiment. The operations in method 400 may be performed using the method described above with respect to Figure 1 and Figure 2 The components (e.g., modules, engines) described are executed by the networked device 102. Therefore, the method 400 is described by way of example with reference to the networked device 102. However, it should be understood that at least some of the operations of the method 400 may be deployed on various other hardware configurations or performed by similar components located elsewhere. For example, some of these operations may be performed at the server system 116.
[0053] Operations 402 to 408 and Figure 3 Operations 302 to 308 are the same.
[0054] In operation 410, one or more options determined by the analysis engine 110 (e.g., the mode module 214) to be most likely to be used in the paste operation are presented as recommendations to be automatically applied to the selected data by the presentation module 112. In these embodiments, the image may be shown visually distinguishable (e.g., lighter color, semi-transparent, grayed out) to indicate that the image is a placeholder.
[0055] In operation 412, the input module 102 receives a selection of an option to confirm automatic application or a selection of an alternative option. The selection of the alternative option is from a menu or submenu presented in relation to (eg, adjacent to) the image having the recommendation to automatically apply.
[0056] In operation 414, the presentation module 112 displays (e.g., pastes) the selected data at a second location based on the selected option. If the selected option is a confirmation of the automatically applied option, then in embodiments where the image of the placeholder is shown visually distinguished, the presentation module 112 changes the appearance of the image of the placeholder so that it is no longer visually distinguished. For example, the pasted content (e.g., corresponding to the image of the placeholder) is set to a darker color (from a lighter color), solid (from semi-transparent), or removed from graying.
[0057] Figure 5 is a flow chart of an example method 500 for analyzing selected data according to an example embodiment. The operations in method 500 may be performed using the above description of Figure 1 and Figure 2 The described components (e.g., modules, engines) are executed by the networked device 102. Therefore, the method 500 is described with reference to the networked device 102 by way of example. However, it should be understood that at least some of the operations of the method 500 can be deployed on various other hardware configurations or performed by similar components located elsewhere. For example, some of these operations can be performed at the server system 116.
[0058] In operation 502, the mode module 214 accesses historical data. The historical data may include previous modes identified by the mode module 214 as well as previous selections of options and commonly used formats and content.
[0059] In operation 504, a pattern is determined (or updated based on more recent historical data). The pattern module 214 analyzes historical data associated with previous copy and paste operations to perform machine learning and identification of patterns. Thus, the identified pattern is based on past user behavior identified from the historical data, such as options that are commonly selected or applied to pasted data, and commonly selected data or formats (e.g., size of pasted tables, specific fonts) that are commonly retained, deleted, selected, or applied. The patterns identified by the pattern module 214 can be used by other components of the analysis engine 110 (in operation 506) to determine their related options.
[0060] In some embodiments, operations 502 and 504 are performed prior to (eg, in the background) the current copy / paste operation. In these embodiments, when a copy / paste operation is received, mode module 214 accesses previously determined modes during runtime.
[0061] In operation 506, the selected content is analyzed. Various modules of analysis engine 110 sometimes combine with pattern module 214 or other modules of the analysis engine to analyze the selected content (e.g., the selected data along with the associated metadata). Therefore, any combination of modules of analysis engine 110 can be used to determine options.
[0062] In some embodiments, the data module 202 analyzes the selected data (e.g., content and associated metadata) to identify aspects associated with the selected data, such as headers, columns, and rows when the selected data is part of a table or spreadsheet, and to identify relationships between data in the table (the table has the selected data and the unselected data). Further, the data module 202 may have semantic knowledge about the selected data (e.g., from metadata). Thus, the data module 202 uses the content copied to the clipboard to determine options. The content may indicate the type of object (e.g., text, table, image) and the types of operations supported by the data, identify semantics (e.g., communicated via application 104 or content parsing), and indicate the surrounding document context (for source and destination).
[0063] Similarly, the label module 212 analyzes the selected data and associated metadata to determine labels (e.g., headers) that are appropriate for the paste operation. For example, if the selected data is from a table that includes column headers for months, the label module 212 can provide options for different months to be used in the paste. In some embodiments, the label module 212 works with the data module 202 and the mode module 214 to determine the options. For example, the mode module 214 observes user behavior over time or by understanding the header names (e.g., identified by the data module 202) to determine that the content is associated with a monthly report, where the data for the current month is always used as the data for the previous month for the next report with the same format. Based on the analysis, any one or more of the data module 202, the label module 212, or the mode module 214 identify options to provide the correct table when pasting (e.g., clear cells, retain formatting, and retain one or more columns of information).
[0064] In another example, the data module 202 understands from the table properties identified from the metadata that the table contains a header row, columns, and a total row. Based on the pattern detected by the mode module 214 that the user typically reuses only the format of the table, the data module 202 or the mode module 214 determines an option to keep the format (e.g., the header row, columns, and total row) when pasting, while deleting the content from other cells of the table.
[0065] Further, the visualization module 204 analyzes the selected data and associated metadata to determine whether the selected data can be used to generate a visualization and to determine an applicable visualization type. The patterns determined by the pattern module 214 can identify specific visualizations that are commonly used by users. In other cases, the data module 202 determines the type of table or content being copied, and the pattern module 214 determines the pattern of visualizations that are commonly selected for tables or content of that type. Options for visualization types can then be presented based on the analysis.
[0066] The real-time data module 206 determines whether the selected data can be linked to real-time data. In another embodiment, the data module 202 determines the type of table or content being copied, and the mode module 214 determines whether the type of table or content is generally linked to real-time data. Then, one or more real-time linking options (e.g., keep real-time option, user-initiated update option, keep static option) can be provided based on the analysis.
[0067] The style module 208 determines style options applicable to the paste operation based on the selected data. In an example embodiment, the style module 208 analyzes the selected data to determine the current style of the selected data and, based on the current style, suggests one or more alternative styles. For example, the style may include the color of a heading, row, or column; the font color; the font type; or any other aspect that affects the appearance of the selected data. In addition, the pattern determined by the pattern module 214 may identify a particular style that is commonly used by the user. Thus, by combining the pattern and the detected style, the style options that are most relevant to the user may be provided.
[0068] The text module 210 analyzes the selected data to determine whether the selected data includes text, rather than a table or image. In embodiments where the selected data is text, the text module 210 can determine whether the text is a quote being copied and provide a quote option when pasting. In some embodiments, the text module 210 can identify a topic associated with the text and use the topic to find related other content (e.g., an image, further text).
[0069] In operation 508, one or more options are determined to be presented to the user. The options are based on the analyzed content, the determined patterns, or a combination of both. In some embodiments, the options that the user is most likely to select are identified as the options to be presented or prioritized on the menu. In some embodiments, a recommendation including one or more options that the user is most likely to select is determined and, in some cases, automatically applied to the placeholder image.
[0070] Fig. 6A An example screenshot of an example user interface 600 for providing options for a paste operation at a second location is shown. In one embodiment, the user interface 600 provides an image 602 of a placeholder for a paste operation. The image 602 may have an appearance similar to the selected data from the first location. For example, if the selected data to be copied and pasted is a table, an image of the table is presented. Similarly, if the selected data to be copied and pasted is text, an image of the text is presented. The image 602 may have blank or dummy data. Alternatively, the image 602 may include a paste of the selected data, wherein the recommended options are automatically applied. In this embodiment, the user may choose to agree to the content of the automatic paste or select an alternative option.
[0071] One or more options (or alternative options for automatically applied embodiments) are presented in menu 604 and submenus 606a and 606b (collectively, "menus"). The menu 604 and submenus 606 shown are merely examples, and alternative embodiments may include other options, fewer options, or more options in the menu based on the options determined to be applicable to each alternative embodiment. Menus may also be combined. For example, menu 604 and submenu 606a may be merged into a single menu. Further, menus may display options in different orders or formats. In addition, other graphical elements (e.g., non-menus) may be used to illustrate selection options.
[0072] exist Fig. 6A In the example of , menu 604 provides an option to keep the pasted data live (e.g., a "keep live" option) or an option to use static content from the first location (e.g., a "use table" option). In further embodiments, an option may be provided that allows a user to manually initiate a refresh that links the selected data to live data. In this embodiment, the selected data is updated in response to a user selection of the user-initiated refresh option.
[0073] Submenu 606a presents options for customizing the appearance of the selected data when pasted into a second location. Fig. 6A In the example of , the options identified as being applicable to the selected data include style options, label options, visualization options, and range options. Each of these options in submenu 606a can have additional options. For example, the user selects the visualization option in submenu 606a. In response, presentation module 112 presents a submenu 606b that provides different visualization options applicable to the selected data. In this example, the visualization options are shown graphically. However, an alternative embodiment can present the visualization options in text.
[0074] Figure 6B 6 is a screenshot of a different example user interface 610 in which a user can delete pasted rows and columns of a table but retain the format. In this embodiment, the presentation module 112 pastes the table 612 including the selected data in a recommended format (e.g., automatically applying options determined from the mode). However, the user may not need all of the pasted rows or columns of data. Therefore, a delete icon is presented for each row and column that allows the user to easily delete the unwanted data.
[0075] Figure 7 is a block diagram illustrating components of a machine 700 according to some example embodiments, which is capable of reading instructions 724 from a machine storage medium 722 and performing, in whole or in part, any one or more of the methods discussed herein. Specifically, Figure 7The machine 700 is shown in the example form of a computing device (e.g., a computer) in which instructions 724 (e.g., software, a program, an application, an applet, an application, or other executable code) may be executed in whole or in part to cause the machine 700 to perform any one or more of the methodologies discussed herein.
[0076] For example, instruction 724 may cause machine 700 to execute Figures 3 to 5 The instructions 724 may transform the general-purpose, non-programmed machine 700 into a specific machine (eg, a specially configured machine) that is programmed to perform the functions described and illustrated in the manner described.
[0077] In alternative embodiments, the machine 700 acts as a standalone device, or can be connected (e.g., networked) to other machines. The machine 700 can be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (e.g., a STB), a personal digital assistant (PDA), a cellular phone, a smart phone, a web device, a network router, a network switch, a network bridge, a power adapter, or any machine 700 capable of executing instructions 724 in sequence or otherwise, which specify actions 700 to be taken by the machine. In addition, although only a single machine 700 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 724 to perform any one or more of the methods discussed herein.
[0078] The machine 700 includes a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory 704, and a static memory 706, which are configured to communicate with each other via a bus 708. The processor 702 may include microcircuits that are temporarily or permanently configurable by some or all of the instructions 724, so that the processor 702 can be configured to perform, in whole or in part, any one or more of the methods described herein. For example, a set of one or more microcircuits of the processor 702 can be configured to execute one or more modules (e.g., software modules) described herein.
[0079] The machine 700 may also include a graphics display 710 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). The machine 700 may also include an alphanumeric input device 712 (e.g., a keyboard or keypad), a cursor control device 714 (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument), a storage unit 716, a signal generating device 718 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 720.
[0080] The storage unit 716 includes a machine storage medium 722 on which are stored instructions 724 embodying any one or more of the methodologies or functionality described herein. The instructions 724 may also reside, in whole or in part, within the main memory 704, within the processor 702 (e.g., within a cache memory of the processor), or both before or during execution by the machine 700. Thus, the main memory 704 and the processor 702 may be considered machine storage media 722 (e.g., tangible and non-transitory machine-readable media).
[0081] In some example embodiments, the machine 700 may be a portable computing device and have one or more additional input components (e.g., sensors or meters). Examples of such input components include image input components (e.g., one or more cameras), audio input components (e.g., microphones), direction input components (e.g., compasses), position input components (e.g., global positioning system (GPS) receivers), orientation components (e.g., gyroscopes), motion detection components (e.g., one or more accelerometers), height detection components (e.g., altimeters), and gas detection components (e.g., gas sensors). Input obtained by any one or more of these input components may be accessed and used by any of the modules described herein.
[0082] Executable instructions and machine storage media
[0083] Various memories (i.e., 704, 706, and / or the memory of the processor 702) and / or the storage unit 716 may store one or more sets of instructions and data structures (e.g., software) 724 embodying or utilized by any one or more of the methodologies or functions described herein. These instructions, when executed by the processor 702, cause various operations to implement the disclosed embodiments.
[0084] As used herein, the terms "machine storage medium," "device storage medium," "computer storage medium" (collectively, "machine storage medium 722") mean the same thing and may be used interchangeably in this disclosure. These terms refer to a single or multiple storage devices and / or media (e.g., a centralized or distributed database, and / or associated caches and servers) that store executable instructions and / or data, as well as a cloud-based storage system or a storage network comprising multiple storage devices or devices. Accordingly, these terms should be considered to include, but are not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and / or device storage media 722 include non-volatile memory, including, for example, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGAs, and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms machine storage media, computer storage media, and device storage media 722 expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are included under the term “signal media” discussed below. In this sense, machine storage media are non-transitory.
[0085] Signal medium
[0086] The term "signal medium" or "transmission medium" should be understood to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
[0087] Computer readable medium
[0088] The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" mean the same thing and are used interchangeably in this disclosure. These terms are defined to include both machine storage media and signal media. Thus, these terms include both storage devices / medium and carrier / modulated data signals.
[0089] The instructions 724 may also be sent or received over a communication network 726 using a transmission medium via the network interface device 720 and utilizing any of a variety of well-known transmission protocols (e.g., HTTP). Examples of communication networks 726 include a local area network (LAN), a wide area network (WAN), the Internet, a mobile telephone network, a plain old telephone service (POTS) network, and wireless data networks (e.g., Wi-Fi, LTE, and WiMAX networks). The term "transmission medium" or "signal medium" shall be taken to include any intangible medium that is capable of storing, encoding, or carrying the instructions 724 executed by the machine 700, and includes digital or analog communication signals or other intangible media to facilitate the communication of such software.
[0090] Throughout this specification, multiple instances can implement components, operations or structures described as single instances. Although the individual operations of one or more methods are shown and described as individual operations, one or more operations in the individual operations can be performed simultaneously, and it is not required to perform these operations in the order shown. The structure and function presented as individual components in the example configuration can be implemented as a combined structure or component. Similarly, the structure and function presented as a single component can be implemented as an individual component. These and other variations, modifications, additions and improvements fall within the scope of this paper theme.
[0091] Certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. Modules may constitute software modules (e.g., code embodied in machine storage medium 722 or signal media) or hardware modules. A "hardware module" is a tangible unit that is capable of performing certain operations and that can be configured or arranged in some physical manner. In various example embodiments, one or more computer systems (e.g., stand-alone computer systems, client computer systems, or server computer systems) or one or more hardware modules of a computer system (e.g., processor 702 or a group of processors 702) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
[0092] In some embodiments, the hardware module can be implemented mechanically, electronically, or any suitable combination thereof. For example, the hardware module may include a dedicated circuit or logic unit that is permanently configured to perform certain operations. For example, the hardware module may be a dedicated processor, such as a field programmable gate array (FPGA) or an ASIC. The hardware module may also include a programmable logic unit or circuit that is temporarily configured to perform certain operations by software. For example, the hardware module may include software contained in a general-purpose processor or other programmable processor. It should be understood that the decision to implement the hardware module mechanically, in a dedicated and permanently configured circuit, or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations.
[0093] Therefore, the phrase "hardware module" should be understood to include a tangible entity, that is, an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or to perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an embodiment in which a hardware module is temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated at any one time instance. For example, in the case where a hardware module includes a general-purpose processor that is configured to be a special-purpose processor by software, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. The software can accordingly configure the processor to, for example, constitute a specific hardware module at one time instance and constitute different hardware modules at different time instances.
[0094] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, a "processor-implemented module" refers to a hardware module implemented using one or more processors.
[0095] Similarly, the methods described herein may be implemented at least in part by a processor, which is an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. In addition, one or more processors may also be operable to support the execution of related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of these operations may be performed by a group of computers (as an example of a machine including a processor), which may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs)).
[0096] The execution of some of these operations may be distributed among one or more processors, not only residing in a single machine, but also deployed across multiple machines. In some example embodiments, one or more processors or processor-implemented modules may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, one or more processors or processor-implemented modules may be distributed across multiple geographic locations.
[0097] Some parts of this specification may be presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals in machine memory (e.g., computer memory). These algorithms or symbolic representations are technical examples used by those of ordinary skill in the field of data processing to convey the essence of their work to other technical personnel in the field. As used herein, an "algorithm" is a self-consistent sequence of operations or similar processes that result in a desired result. In this case, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, these quantities can take the form of electrical, magnetic or optical signals that can be stored, accessed, transmitted, combined, compared or otherwise manipulated by a machine. Sometimes, mainly for common reasons, it is convenient to use words such as "data", "content", "bit", "value", "element", "symbol", "character", "item", "digit", "numerical value", etc. to refer to such signals. However, these words are just convenient labels and are associated with appropriate physical quantities.
[0098] Unless otherwise specifically stated, discussions herein using words such as "process," "compute," "calculate," "determine," "present," "display," and the like may refer to the action or process of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, send, or display information. Furthermore, unless otherwise specifically stated, as is common in patent literature, the words "a" or "an" are used herein to include one or more instances. Finally, as used herein, the conjunction "or" refers to a non-exclusive "or" unless otherwise specifically stated.
[0099] Example
[0100] Example 1 is a method for intelligently reusing content and formatting in a paste operation. The method includes: receiving a selection of data to be copied and an indication for copying the selected data; copying the selected data, the selected data including content and associated metadata; receiving an indication for pasting the selected data at a second location; analyzing the selected data by a hardware processor to determine one or more options that can be used for the paste, each of the options being selectable to change an aspect of the selected data being pasted; causing the one or more options and an image of a placeholder representing the selected data to be presented at the second location, the one or more options being presented in relation to the image of the placeholder; receiving a selection of an option from the one or more options; and in response to receiving the selection of the option, causing the selected data to be presented in place of the image of the placeholder based on the selected option.
[0101] In Example 2, the subject matter of Example 1 may optionally include: wherein the selected option includes an automatic real-time data linking option that links the selected data to real-time data, and the selected data is automatically updated in response to changes in the real-time data.
[0102] In Example 3, the subject matter of Examples 1-2 may optionally include: wherein the selected option includes a user-initiated refresh option that links the selected data to real-time data, and the selected data is updated in response to the user selection of the user-initiated refresh option.
[0103] In Example 4, the subject matter of Examples 1-3 may optionally include: wherein, analyzing the selected data to determine the multiple options includes: determining one or more visualizations applicable to the selected data; causing the presentation of the multiple options includes: providing a graphical representation of each of the visualizations applicable to the selected data; receiving the selection of the option includes: receiving a selection of a visualization; and causing the selected data to be presented based on the selected option in place of the placeholder image includes: presenting the selected data in the format of the selected visualization.
[0104] In Example 5, the subject matter of Examples 1-4 may optionally include: wherein the visualization includes a bar chart, a pie chart, a scatter chart, a line chart, a column chart, a histogram, a box plot, a tree diagram, a sunburst chart, a waterfall chart, a funnel chart, a stock chart, a surface chart, a radar chart, a bubble chart, or a donut chart.
[0105] In Example 6, the subject matter of Examples 1-5 may optionally include: wherein, analyzing the selected data to determine the multiple options includes: determining one or more ranges applicable to the selected data; receiving the selection of the option includes: receiving a selection of a range within the one or more ranges; and causing the selected data to be presented based on the selected option to replace the placeholder image includes: presenting the selected data within the selected range.
[0106] In Example 7, the subject matter of Examples 1-6 may optionally include: wherein, analyzing the selected data to determine the multiple options includes: determining different styles applicable to the selected data; receiving the selection of the option includes: receiving a selection of a style option corresponding to one of the styles; and causing the selected data to be presented based on the selected option to replace the image of the placeholder includes: presenting the selected data having the style and format indicated by the selected style option.
[0107] In Example 8, the subject matter of Examples 1-7 may optionally include detecting a pattern of previously selected options from historical data of past copy and paste operations, wherein analyzing the selected data to determine the plurality of options includes identifying options based on the pattern.
[0108] In Example 9, the subject matter of Examples 1-8 may optionally include: wherein the option based on the mode is a recommendation of the image automatically applied to the placeholder.
[0109] In Example 10, the subject matter of Examples 1-9 may optionally include: wherein analyzing the selected data to determine the multiple options includes: determining labels applicable to the selected data based on historical data of past copy and paste operations; receiving the selection of the option includes: receiving a selection of the label; and causing the selected data to be presented based on the selected option to replace the image of the placeholder includes: presenting the selected data with the selected label.
[0110] In Example 11, the subject matter of Examples 1-10 may optionally include: wherein the analyzing the selected data to determine multiple options includes: distinguishing between headers, columns, and rows of the selected data, the selected data including a table; the causing presentation of an image of the placeholder representing the selected data and the multiple options includes: causing presentation of the table and delete icons associated with each row and column of the table, selection of one of the delete icons causing the corresponding row or column to be deleted; the receiving of the selection of the option includes: receiving a selection of a delete icon for one of the rows or the columns; and the causing presentation of the selected data based on the selected option in place of the image of the placeholder includes: maintaining the style and format of the table, wherein the corresponding row or column is deleted based on the selection of the delete icon.
[0111] In Example 12, the subject matter of Examples 1-11 may optionally include: wherein the selected data includes text about the subject matter, and the plurality of options includes images associated with the subject matter.
[0112] In Example 13, the subject matter of Examples 1-12 can optionally include: wherein the selected data includes text, and one of the plurality of options includes a citation option for formatting the selected data as a citation.
[0113] Example 14 is a system for intelligently reusing content and formatting in a paste operation. The system includes: one or more hardware processors and a storage medium storing instructions, the instructions, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations including: receiving a selection of data to be copied and an indication for copying the selected data; copying the selected data, the selected data including content and associated metadata; receiving an indication for pasting the selected data at a second location; analyzing the selected data to determine one or more options that can be used for the paste, each of the options being selectable to change an aspect of the selected data being pasted; causing the one or more options and an image of a placeholder representing the selected data to be presented at the second location, the one or more options being presented in relation to the image of the placeholder; receiving a selection of an option from the one or more options; and in response to receiving the selection of the option, causing the selected data to be presented in place of the image of the placeholder based on the selected option.
[0114] In Example 15, the subject matter of Example 14 may optionally include: wherein, analyzing the selected data to determine the plurality of options includes: determining one or more visualizations applicable to the selected data; causing presentation of the plurality of options includes: providing a graphical representation of each of the visualizations applicable to the selected data; receiving the selection of the option includes: receiving a selection of a visualization; and causing presentation of the selected data based on the selected option in place of the placeholder image includes: presenting the selected data in the format of the selected visualization.
[0115] In Example 16, the subject matter of Examples 14-15 may optionally include: wherein, analyzing the selected data to determine the multiple options includes: determining one or more ranges applicable to the selected data; receiving the selection of the option includes: receiving a selection of a range within the one or more ranges; and causing the selected data to be presented based on the selected option to replace the placeholder image includes: presenting the selected data within the selected range.
[0116] In Example 17, the subject matter of Examples 14-16 may optionally include: wherein, analyzing the selected data to determine the multiple options includes: determining different styles applicable to the selected data; receiving the selection of the option includes: receiving a selection of a style option corresponding to one of the styles; and causing the selected data to be presented based on the selected option to replace the placeholder image includes: presenting the selected data having the style and format indicated by the selected style option.
[0117] In Example 18, the subject matter of Examples 14-17 may optionally include: wherein the operation further includes detecting a pattern of previously selected options from historical data of past copy and paste operations, wherein analyzing the selected data to determine multiple options includes: identifying options based on the pattern.
[0118] In Example 19, the subject matter of Examples 14-18 can optionally include: wherein the option based on the mode is a recommendation of the image automatically applied to the placeholder.
[0119] Example 20 is a machine storage medium for intelligently reusing content and formatting in a paste operation. The machine storage medium configures one or more processors to perform operations including: receiving a selection of data to be copied and an instruction for copying the selected data; copying the selected data, the selected data including content and associated metadata; receiving an instruction for pasting the selected data at a second location; analyzing the selected data to determine one or more options that can be used for the paste, each of the options being selectable to change an aspect of the selected data being pasted; causing the one or more options and an image of a placeholder representing the selected data to be presented at the second location, the one or more options being presented in association with the image of the placeholder; receiving a selection of an option from the one or more options; and in response to receiving the selection of the option, causing the selected data to be presented based on the selected option to replace the image of the placeholder.
[0120] Although an overview of the subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the invention. For example, one of ordinary skill in the art may mix and match the various embodiments or features thereof or make them optional. Such embodiments of the subject matter may be referred to herein individually or collectively as the term "invention", which is merely for convenience, and if more than one invention or concept is in fact disclosed, it is not intended to voluntarily limit the scope of the present application to any single invention or concept.
[0121] It is believed that the embodiments described herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be used and derived therefrom, so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, the detailed description should not be construed as limiting, and the scope of the various embodiments is limited only by the appended claims and the full scope of equivalents to which these claims are entitled.
[0122] In addition, multiple instances may be provided for resources, operations or structures described herein as single instances. In addition, the boundaries between various resources, operations, modules, engines and data repositories are arbitrary to some extent, and specific operations are shown in the context of specific illustrative configurations. Other functional allocations can be envisioned and other functional allocations can fall within the scope of various embodiments of the present invention. In general, the structures and functions presented as separate resources in the example configurations can be implemented as combined structures or resources. Similarly, the structures and functions presented as single resources can be implemented as separate resources. These and other variations, modifications, additions and improvements fall within the scope of the embodiments of the present invention represented by the appended claims. Therefore, the specification and the drawings are considered to be illustrative rather than restrictive.
Claims
1. A method comprising: receiving a selection of data to be copied and an instruction for copying the selected data; copying selected data, the selected data including content and associated metadata; receiving an instruction to paste the selected data at a second location; analyzing, by a hardware processor, the selected data to determine one or more options available for said pasting, each of said options being selectable to change an aspect of the selected data being pasted; causing presentation of the one or more options and an image of a placeholder representing the selected data at the second location, the one or more options being presented in relation to the image of the placeholder; receiving a selection of an option from the one or more options; as well as In response to receiving the selection of the option, selected data is caused to be presented based on the selected option in place of the image of the placeholder.
2. The method of claim 1, wherein: The selected options include an automatic real-time data linking option that links the selected data to real-time data, the selected data being automatically updated in response to changes in the real-time data.
3. The method of claim 1, wherein: The selected options include a user-initiated refresh option that links the selected data to the real-time data, the selected data being updated in response to a user selection of the user-initiated refresh option.
4. The method of claim 1, wherein: The analyzing the selected data to determine the plurality of options includes: determining one or more visualizations applicable to the selected data; The presenting the plurality of options comprises: providing a graphical representation of each of the visualizations applicable to the selected data; The receiving the selection of the option includes: receiving a selection of a visualization; and The causing the selected data to be presented based on the selected option to replace the image of the placeholder includes presenting the selected data in the selected visualization format.
5. The method of claim 4, wherein: The visualization includes: a bar chart, a pie chart, a scatter chart, a line chart, a column chart, a histogram, a box plot, a tree diagram, a sunburst chart, a waterfall chart, a funnel chart, a stock chart, a surface chart, a radar chart, a bubble chart or a donut chart.
6. The method of claim 1, wherein: The analyzing the selected data to determine the plurality of options includes: determining one or more ranges applicable to the selected data; The receiving the selection of the option includes: receiving a selection of a range among the one or more ranges; and The causing the selected data to be presented based on the selected option to replace the image of the placeholder includes presenting the selected data within the selected range.
7. The method of claim 1, wherein: The analyzing the selected data to determine the plurality of options includes: determining different styles applicable to the selected data; The receiving the selection of the option includes: receiving a selection of a style option corresponding to one of the styles; and The causing the selected data to be presented based on the selected option in place of the image of the placeholder includes presenting the selected data having a style and format indicated by the selected style option.
8. The method of claim 1, further comprising: A pattern of previously selected options is detected from historical data of past copy and paste operations, wherein analyzing the selected data to determine the plurality of options includes identifying options based on the pattern.
9. The method of claim 8, wherein: The options based on the mode are recommendations for the image that are automatically applied to the placeholder.
10. The method of claim 1, wherein: The analyzing the selected data to determine the plurality of options includes: determining labels applicable to the selected data based on historical data of past copy and paste operations; The receiving the selection of the option includes: receiving a selection of the tag; and The causing the selected data to be presented based on the selected option to replace the image of the placeholder includes presenting the selected data with the selected tag.
11. The method of claim 1, wherein: The analyzing the selected data to determine the plurality of options includes: distinguishing between headers, columns, and rows of the selected data, the selected data including a table; The presenting of the image of the placeholder representing the selected data and the plurality of options comprises: causing presentation of the table and a delete icon associated with each row and each column of the table, selection of one of the delete icons causing the corresponding row or column to be deleted; The receiving the selection of the option includes: receiving a selection of a delete icon for one of the rows or the columns; and The causing the selected data to be presented based on the selected option to replace the image of the placeholder includes maintaining the style and format of the table, wherein the corresponding row or column is deleted based on the selection of the delete icon.
12. The method of claim 1, wherein: The selected data includes text regarding a topic, and the plurality of options include images associated with the topic.
13. The method of claim 1, wherein: The selected data includes text, and one of the plurality of options includes a quote option for placing the selected data in a quoted format.
14. A system comprising: one or more hardware processors; as well as A memory storing instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations including: receiving a selection of data to be copied and an instruction for copying the selected data; copying selected data, the selected data including content and associated metadata; receiving an instruction to paste the selected data at a second location; analyzing the selected data to determine one or more options available for said pasting, each of said options being selectable to change an aspect of the selected data being pasted; causing presentation of the one or more options and an image of a placeholder representing the selected data at the second location, the one or more options being presented in relation to the image of the placeholder; receiving a selection of an option from the one or more options; as well as In response to receiving the selection of the option, selected data is caused to be presented based on the selected option in place of the image of the placeholder.
15. A computer readable medium storing instructions that, when executed by one or more processors of a machine, cause the one or more processors to perform operations comprising: receiving a selection of data to be copied and an instruction for copying the selected data; copying selected data, the selected data including content and associated metadata; receiving an instruction to paste the selected data at a second location; analyzing the selected data to determine one or more options available for said pasting, each of said options being selectable to change an aspect of the selected data being pasted; causing presentation of the one or more options and an image of a placeholder representing the selected data at the second location, the one or more options being presented in relation to the image of the placeholder; receiving a selection of an option from the one or more options; as well as In response to receiving the selection of the option, selected data is caused to be presented based on the selected option in place of the image of the placeholder.
Citation Information
Patent Citations
Cognitive copy and paste
US20190129939A1