HK1181516B - Inference-based extension activation - Google Patents
Inference-based extension activation Download PDFInfo
- Publication number
- HK1181516B HK1181516B HK13108774.0A HK13108774A HK1181516B HK 1181516 B HK1181516 B HK 1181516B HK 13108774 A HK13108774 A HK 13108774A HK 1181516 B HK1181516 B HK 1181516B
- Authority
- HK
- Hong Kong
- Prior art keywords
- document
- extension
- extensions
- inference
- software application
- Prior art date
Links
Description
Technical Field
The present invention relates to a technique of activating an extension.
Background
Inference based extension activation can be provided. The extensions, add items, and/or plug-ins are activated during reading, editing, or composing of a document, such as an email, calendar item, contact, task, document, spreadsheet, and the like. In conventional systems, activation may occur automatically, on demand or based on the content of the document in question. In some cases, the use of a base conditional activation of content substring matching or pattern-based content matching is not sufficient for activation based on heuristic matching of document content and/or data from external sources.
Disclosure of Invention
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter. This summary is also not intended to be used to limit the scope of the claimed subject matter.
Extension activation may be provided. The document may be opened in a software application associated with the extension. The extension may be activated upon determining that the data element associated with the document is associated with an activation condition for the extension.
The foregoing general description and the following detailed description provide examples only, and are explanatory only. Accordingly, the foregoing general description and the following detailed description should not be considered to be restrictive. Further, other features or variations may be provided in addition to those set forth herein. For example, embodiments may be directed to various feature combinations and sub-combinations described in the detailed description.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention. In the drawings:
FIG. 1 is a block diagram of an operating environment;
FIG. 2 is a flow diagram of a method for providing extended activation; and
fig. 3 is a block diagram of a computing device.
Detailed Description
The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like elements. While embodiments of the invention have been described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. The following detailed description, therefore, is not to be taken in a limiting sense.
Inference-based extension activation can provide conditional activation of a loaded item (e.g., plug-in) application module that can be based on information inferred from the content of the application content and/or external data. Such external data may include, for example, an external database, a web service, and/or another application. These extensions can expose additional functionality not provided by the native application. However, unlike a menu bar which may always be available, the extension is only visible to the user when it is relevant to the data displayed to the user. For example, a window displaying a map may appear when an email message including a mailing address is displayed.
Inference can employ complex heuristic analysis of content for extended activation. External data sources may be used to provide additional extended activation criteria and/or inferred data. For activation with respect to heuristic analysis, the preprocessing component may perform out-of-band content analysis and store the results of the analysis as metadata and/or attributes about the document. Later viewing of the document may use the analysis results to conditionally activate the extension. For example, a physical address in the user language may be detected, extracted and saved as metadata in this manner for later use in activating an extension that shows the location of the address using an internet mapping service.
FIG. 1 is a block diagram of an operating environment 100 for providing extension activation including a user workstation 110. The user workstation 110 may include a data processing application 115 and may be used to interact with a server 120 via a network 125. The data processing applications 115 may include, for example, word processing, spreadsheet, presentation, and/or other productivity applications. For example, a user workstation 110 may be used to connect to a multi-user collaboration application 130 provided by a server 120, which may receive and process user requests from the user workstation 110. The user workstation 110 may be used to output application data and/or a user interface to a display device 140, such as a monitor and/or touch screen. The user workstation 110 may include, for example, electronic communication devices such as computers, laptops, cellular and/or IP phones, tablets, game consoles, and/or other devices. The data processing application 115 may be operable to utilize a local extension library 145 and/or a remote extension library 150.
Figure 2 is a flow diagram illustrating the general stages involved in a method 200 for providing extended activation, according to an embodiment of the invention. The method 200 may be implemented using a computing device 300, which will be described in more detail below with reference to FIG. 3. The manner in which the stages of method 200 are implemented will be described in more detail below. Method 200 may begin at starting block 205 and continue to stage 210 where computing device 300 may open a document within a software application at stage 210. For example, the user workstation 115 may instantiate the data processing application 115. The data processing application 110 may be used to access the local extension library 145 and/or the remote extension library 150 to provide additional functionality to the user of the user workstation 110.
Method 200 may then advance to stage 220 where computing device 300 may create an inference from at least one data element associated with the document at stage 220. For example, the data elements may be internal to the document, such as text, format, and/or metadata. For another example, the data elements may be external to the document, such as user permissions, group management, and/or other information technology data, database entries, web pages, organizational charts, and/or other user profile data (e.g., geographic location, preferences, settings, job title, etc.).
The inference can include an intent assigned to the document, a heuristically learned association between the at least one data element and the task, a regular expression match on the at least one data element, and/or a format of the document. For various intents, the text of a document may be scanned to determine targets and/or tasks associated with the document, and an email, such as an additional document including a heading line and/or named "suggest agenda," may be associated with the intent to schedule a meeting. Heuristically learned associations may include, for example, receiving emails with specific terms (e.g., "service off" and/or "error") and/or from specific senders (e.g., technical support mailing lists) and correlating these emails with initiating question query management extensions. Once the behavior is seen a certain threshold number of times, an inference can be created that the question query expands the associations with those trigger conditions upon receiving trigger condition terms and/or senders. Document format inference may include, for example, identifying address boxes of letter documents and/or signature boxes of emails and associating these data elements with contact management extensions.
From stage 215, method 200 may advance to stage 220 where computing device 300 may determine to infer whether an activation condition of at least one of the plurality of extensions is satisfied. For example, the inference may require that extension criteria (e.g., the extension is associated only with the email document type) and triggering conditions (e.g., the email message includes a stock exchange confirmation) be satisfied.
If it is determined that an activation condition for at least one of the plurality of extensions is inferred to be satisfied, method 200 may proceed to stage 225 where computing device 300 may activate the at least one of the plurality of extensions at stage 225. For example, when an email message including a stock exchange confirmation is received, an inference may be created that the email is associated with a stock portfolio management extension, and the stock portfolio management extension may be launched to display a user interface element. For another example, a document including a packet tracking number may cause an extension associated with a packet carrier to display the current state of the packet. Method 200 may then end at stage 230.
An embodiment consistent with the invention may comprise a system for providing extended activation. The system may include a memory storage and a processing unit coupled to the memory storage. The processing unit may be operable to: the method includes opening a document within a software application associated with at least one extension, determining that a data element associated with the document is associated with an activation condition of the at least one extension, and activating the at least one extension in response to determining that the document is associated with the activation condition of the at least one extension. The data elements may be stored in the document (e.g., text within the document and/or document format) and/or external to the document or application (e.g., database, user/group management data, organizational chart, user profile data).
Another embodiment consistent with the invention may comprise a system for providing extended activation. The system may include a memory storage and a processing unit coupled to the memory storage. The processing unit may be operable to: instantiating a software application, wherein the software application is associated with a plurality of extensions; opening a document comprising a plurality of data elements within the software application; determining that at least one data element of the plurality of data elements is associated with an activation condition of at least one extension of the plurality of extensions; and, in response to determining that at least one data element of the plurality of data elements is associated with an activation condition of the at least one extension, activating the at least one extension, wherein the at least one extension provides a user interface element associated with the software application. The processing unit may be further operative to associate a new extension with the software application. For example, a user may develop a new extension and associate it with a software application developed by another company.
Yet another embodiment consistent with the invention may comprise a system for providing extended activation. The system may include a memory storage and a processing unit coupled to the memory storage. The processing unit is operable to open a document within a software application associated with a plurality of extensions for providing additional functionality to the software application; creating an inference from at least one data element associated with the document; and determining whether the inference satisfies an activation condition of at least one extension of the plurality of extensions. The means for determining whether the inference satisfies an activation condition may include means for matching criteria of the at least one extension and satisfying a trigger condition of the at least one extension. In response to determining that an activation condition for at least one of the plurality of extensions is inferred to be satisfied, the processing unit may be operative to activate the at least one of the plurality of extensions, wherein the means for activating the at least one of the plurality of extensions may include means for displaying a user interface element associated with a software application for providing the at least one new data element.
The embodiments and functions described herein may operate via a number of computing systems, including wired and wireless computing systems, mobile computing systems (e.g., mobile phones, tablet or pad type computers, laptop computers, etc.). Further, the embodiments and functions described herein may operate on a distributed system where application functions, memory, data storage and retrieval, and various processing functions may operate remotely from each other over a distributed computing network such as the internet or an intranet. Various types of user interfaces and information may be displayed via an onboard computing device display or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information may be displayed and interacted with on a wall surface on which various types of user interfaces and information are projected. Interactions with many computing systems that may be used to implement embodiments of the present invention include: keystroke input, touch screen input, voice or other audio input, gesture input (where an associated computing device is equipped with detection (e.g., camera) functionality for capturing and interpreting user gestures for controlling functions of the computing device), and the like. FIG. 3 and the associated description provide a discussion of various operating environments in which embodiments of the invention may be implemented. However, the devices and systems illustrated and discussed with respect to FIG. 3 are for purposes of example and are not limiting of the vast number of computing device configurations that may be used to implement embodiments of the invention described herein.
Referring to FIG. 3, a system according to an embodiment of the invention may include a computing device, such as computing device 300. In a basic configuration, computing device 300 may include at least one processing unit 302 and system memory 304. Depending on the configuration and type of computing device, system memory 304 may include, but is not limited to, volatile (e.g., Random Access Memory (RAM)), non-volatile (e.g., read-only memory (ROM)), flash memory, or any combination. The system memory 304 may include an operating system 305, one or more programming modules 306, and may include a data processing application 115. For example, operating system 305 may be suitable for controlling the operation of computing device 300. Furthermore, embodiments of the invention may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in fig. 3 by those components within dashed line 308.
Computing device 300 may have additional features or functionality. For example, computing device 300 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG. 3 by removable storage 309 and non-removable storage 310. Computing device 300 may also contain communication connection(s) 318 that may allow device 300 to communicate with other computing devices 316, such as over a network in a distributed computing environment, for example, an intranet or the internet. Communication connection(s) 316 is one example of communication media.
The term computer readable media as used herein may include computer storage media. Computer storage media may be included for storing, for example, computer readable instructionsVolatile and nonvolatile, removable and non-removable media implemented in any method or technology for information such as data structures, program modules, or other data. System memory 304, removable storage 309 and non-removable storage 310 are all examples of computer storage media (i.e., memory storage). Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by computing device 300. Any such computer storage media may be part of device 300. Computing device 300 may also have input device(s) 312 such as keyboard, mouse, pen, sound input device, touch input device, capture device, etc. The capture device may be used to record the user and capture spoken words, movements made by the user, and/or gesture capture devices, such as with a camera and/or microphone, may include any voice and/or motion detection device capable of detecting the voice and/or motion of the user. For example, the capture device may comprise Microsoft corporationA motion capture device comprising a plurality of cameras and a plurality of microphones. Output device(s) 314 such as a display, speakers, printer, etc. may also be included. The above devices are examples and other devices may be used.
The term computer readable media as used herein also includes communication media. Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, Radio Frequency (RF), infrared and other wireless media.
As mentioned above, a number of program modules and data files may be stored in system memory 304, including operating system 305. While executing on processing unit 302, programming module 306 may perform processes and/or methods as described above. The foregoing processes are examples, and processing unit 302 may perform other processes. Other programming modules that may be used in accordance with embodiments of the present invention may include email and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, and the like.
Generally, program modules may include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types in accordance with embodiments of the invention. Moreover, embodiments of the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Furthermore, embodiments of the invention may be implemented in circuits comprising discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits utilizing microprocessors, or on a single chip containing electronic components or microprocessors. Embodiments of the invention may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, AND NOT, including but NOT limited to mechanical, optical, fluidic, AND quantum technologies. In addition, embodiments of the invention may be implemented in a general purpose computer or any other circuit or system.
For example, embodiments of the invention may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the invention may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, of otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
Embodiments of the invention may be practiced with a system on a chip (SOC) in which each and/or many of the components shown above are integrated onto a single integrated circuit. Such SOC devices may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein with respect to training and/or interacting with any of the components of operating environment 100 may be operated via application specific logic integrated with other components of the computing device/system on a single integrated circuit (chip).
Embodiments of the present invention are described above with reference to block diagrams and/or operational illustrations of, for example, methods, systems, and computer program products according to embodiments of the invention. The functions/acts noted in the blocks may occur out of the order noted in any flowchart. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
While certain embodiments of the invention have been described, other embodiments are possible. Moreover, although embodiments of the present invention have been described as being associated with data stored in memory and other storage media, data may also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM; a carrier wave from the internet; or other forms of RAM or ROM. In addition, steps of the disclosed methods may be modified in any manner, including by reordering steps and/or inserting or deleting steps, without departing from the invention.
All rights in the code included herein, including copyrights, are attributed to and are the property of the applicant. The applicant retains and reserves all rights in the code included herein and grants permission to reproduce the material only in connection with reproduction of the granted patent and for no other purpose.
While certain embodiments of the invention have been described, other embodiments are possible. Although the description includes examples, the scope of the invention is indicated by the appended claims. Furthermore, although the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as examples of embodiments of the invention.
Claims (6)
1. A method for providing extended activation, the method comprising:
opening a document within a software application, wherein the software application is associated with a plurality of extensions for providing additional functionality to the software application;
creating an inference from at least one data element associated with the document, wherein the at least one data element comprises at least one of:
data elements internal to the document and data elements external to the document, wherein the inference comprises at least one of: an intent assigned to the document, a heuristically learned association between the at least one data element and a task, a regular expression match on the at least one data element, and a format of the document;
determining whether the inference satisfies an activation condition of at least one extension of the plurality of extensions, wherein determining whether the inference satisfies the activation condition comprises matching criteria of the at least one extension and satisfying a trigger condition of the at least one extension; and
in response to determining that the inference satisfies an activation condition for at least one of the plurality of extensions, activating at least one of the plurality of extensions, wherein activating at least one of the plurality of extensions includes displaying a user interface element associated with the software application for providing at least one new data element.
2. The method of claim 1, wherein determining whether a data element associated with the document is associated with the activation condition comprises determining whether a user of the software application is associated with a dynamic user group, wherein the dynamic user group comprises a data source external to the application.
3. A system for providing extended activation, the system comprising:
a memory store; and
a processing unit coupled to the memory storage, wherein the processing unit is to:
instantiating a software application, wherein the software application is associated with a plurality of extensions for providing additional functionality to the software application,
creating an inference from at least one data element associated with a document, wherein the at least one data element comprises at least one of:
data elements internal to the document and data elements external to the document, wherein the inference comprises at least one of: an intent assigned to the document, a heuristically learned association between the at least one data element and a task, a regular expression match on the at least one data element, and a format of the document;
determining whether the inference satisfies an activation condition of at least one extension of the plurality of extensions, wherein determining whether the inference satisfies the activation condition comprises matching criteria of the at least one extension and satisfying a trigger condition of the at least one extension; and
in response to determining that the inference satisfies an activation condition for at least one of the plurality of extensions, activating at least one of the plurality of extensions, wherein activating at least one of the plurality of extensions includes displaying a user interface element associated with the software application for providing at least one new data element.
4. The system of claim 3, wherein the processing unit is further to associate a new extension with the software application.
5. The system of claim 3, wherein the activation condition comprises a plurality of rules.
6. The system of claim 5, wherein the plurality of rules includes a hierarchy of rules, each rule having to be satisfied before the at least one extension is activated.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/315,314 | 2011-12-09 | ||
| US13/315,314 US8959425B2 (en) | 2011-12-09 | 2011-12-09 | Inference-based extension activation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1181516A1 HK1181516A1 (en) | 2013-11-08 |
| HK1181516B true HK1181516B (en) | 2017-01-27 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10908786B2 (en) | Dynamic extension view with multiple levels of expansion | |
| JP6479079B2 (en) | Extension activation for related documents | |
| EP2788868B1 (en) | Inference-based activation of an extension associated with a software application | |
| US9804730B2 (en) | Automatically changing a display of graphical user interface | |
| US9129606B2 (en) | User query history expansion for improving language model adaptation | |
| EP2810149B1 (en) | Intelligent prioritization of activated extensions | |
| US10409779B2 (en) | Document sharing via logical tagging | |
| HK1181516B (en) | Inference-based extension activation | |
| US20130124985A1 (en) | Conditional Localization of Singular and Plural Words |