A system and method causes a computer to detect and perform actions on structures identified in computer data. The system provides an analyzer server, an application program interface, a user interface and an action processor. The analyzer server receives from an application running concurrently data having recognizable structures, uses a pattern analysis unit, such as a parser or fast string search function, to detect structures in the data, and links relevant actions to the detected structures. The application program interface communicates with the application running concurrently, and transmits relevant information to the user interface. Thus, the user interface can present and enable selection of the detected structures, and upon selection of a detected structure, present the linked candidate actions. Upon selection of an action, the action processor performs the action on the detected structure. |
Citations|
| US5115390 | Nov 13, 1989 | May 19, 1992 | Sony Corporation | Control data input apparatus | | US5130924 | Jun 30, 1988 | Jul 14, 1992 | International Business Machines Corporation | System for defining relationships among document elements including logical relationships of elements in a multi-dimensional tabular specification | | US5164899 | May 1, 1989 | Nov 17, 1992 | Resumix, Inc. | Method and apparatus for computer understanding and manipulation of minimally formatted text documents | | US5202828 | May 15, 1991 | Apr 13, 1993 | Apple Computer, Inc. | User interface system having programmable user interface elements | | US5247437 | Oct 1, 1990 | Sep 21, 1993 | Xerox Corporation | Method of managing index entries during creation revision and assembly of documents | | US5369575 | May 15, 1992 | Nov 29, 1994 | International Business Machines Corporation | Constrained natural language interface for a computer system | | US5574843 | Jan 17, 1995 | Nov 12, 1996 | Escom AG | Methods and apparatus providing for a presentation system for multimedia applications |
Referenced by|
| US6286014 | Jun 16, 1998 | Sep 4, 2001 | International Business Machines Corp. | Method and apparatus for acquiring a file to be linked | | US6298357 | Jun 3, 1997 | Oct 2, 2001 | Adobe Systems Incorporated | Structure extraction on electronic documents | | US6392668 | Nov 12, 1999 | May 21, 2002 | Kendara, Inc. | Client-side system and method for network link differentiation | | US6484224 | Nov 29, 1999 | Nov 19, 2002 | Cisco Technology Inc. | Multi-interface symmetric multiprocessor | | US6651218 | Dec 22, 1998 | Nov 18, 2003 | Xerox Corporation | Dynamic content database for multiple document genres | | US6799300 | Sep 18, 2000 | Sep 28, 2004 | Matsushita Electric Industrial Co., Ltd. Panasonic Mobile Communications Co., Ltd. NTT DoCoMo, Inc. | Document processor | | US6870828 | Jun 3, 1997 | Mar 22, 2005 | Cisco Technology, Inc. | Method and apparatus for iconifying and automatically dialing telephone numbers which appear on a Web page | | US6973643 | Aug 17, 2001 | Dec 6, 2005 | International Business Machines Corporation | Method, system and program for handling errors occurring in function calls | | US7000055 | Jul 26, 2002 | Feb 14, 2006 | Cisco Technology, Inc. | Multi-interface symmetric multiprocessor | | US7003522 | Jun 24, 2002 | Feb 21, 2006 | Microsoft Corporation | System and method for incorporating smart tags in online content | | US7032174 | Mar 27, 2001 | Apr 18, 2006 | Microsoft Corporation | Automatically adding proper names to a database | | US7133693 | Sep 5, 2003 | Nov 7, 2006 | Fujitsu Limited | Information processing device, schedule inputting method and program for use in information processing device | | US7178102 | Dec 9, 2003 | Feb 13, 2007 | Microsoft Corporation | Representing latent data in an extensible markup language document | | US7272604 | Sep 3, 1999 | Sep 18, 2007 | | Method, system and computer readable medium for addressing handling from an operating system | | US7277905 | Mar 31, 2004 | Oct 2, 2007 | Microsoft Corporation | System and method for a consistency check of a database backup | | US7281245 | Jun 5, 2002 | Oct 9, 2007 | Microsoft Corporation | Mechanism for downloading software components from a remote source for use by a local software application | | US7325194 | May 7, 2002 | Jan 29, 2008 | Microsoft Corporation | Method, system, and apparatus for converting numbers between measurement systems based upon semantically labeled strings | | US7346892 | May 27, 2003 | Mar 18, 2008 | Microsoft Corporation | Prediction and pre-selection of an element in syntax completion | | US7356537 | Jun 6, 2002 | Apr 8, 2008 | Microsoft Corporation | Providing contextually sensitive tools and help content in computer-generated documents | | US7392479 | Jun 27, 2002 | Jun 24, 2008 | Microsoft Corporation | System and method for providing namespace related information | | US7404195 | Dec 9, 2003 | Jul 22, 2008 | Microsoft Corporation | Programmable object model for extensible markup language markup in an application | | US7421645 | Apr 24, 2001 | Sep 2, 2008 | Microsoft Corporation | Method and system for providing electronic commerce actions based on semantically labeled strings | | US7434157 | Dec 9, 2003 | Oct 7, 2008 | Microsoft Corporation | Programmable object model for namespace or schema library support in a software application | | US7451389 | Jun 27, 2002 | Nov 11, 2008 | Microsoft Corporation | Method and system for semantically labeling data and providing actions based on semantically labeled data | | US7457642 | Jun 1, 2006 | Nov 25, 2008 | Fujitsu Limited | Information processing device, schedule inputting method and program for use in information processing device | | US7487515 | Dec 9, 2003 | Feb 3, 2009 | Microsoft Corporation | Programmable object model for extensible markup language schema validation | | US7490314 | Jan 30, 2004 | Feb 10, 2009 | Microsoft Corporation | System and method for exposing tasks in a development environment | | US7496854 | Aug 6, 2001 | Feb 24, 2009 | Arendi Holding Limited | Method, system and computer readable medium for addressing handling from a computer program | | US7509573 | Feb 17, 2004 | Mar 24, 2009 | Microsoft Corporation | Anti-virus security information in an extensible markup language document | | US7558841 | May 14, 2003 | Jul 7, 2009 | Microsoft Corporation | Method, system, and computer-readable medium for communicating results to a data query in a computer network | | US7607100 | May 29, 2003 | Oct 20, 2009 | International Business Machines Corporation | Method, system and program product for display management of web page phone/fax numbers by a data processing system | | US7610258 | Jan 30, 2004 | Oct 27, 2009 | Microsoft Corporation | System and method for exposing a child list | | US7672985 | Oct 30, 2006 | Mar 2, 2010 | Sentius International Corporation | Automated creation and delivery of database content | | US7707024 | May 23, 2002 | Apr 27, 2010 | Microsoft Corporation | Method, system, and apparatus for converting currency values based upon semantically labeled strings | | US7707496 | May 9, 2002 | Apr 27, 2010 | Microsoft Corporation | Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings | | US7711550 | Apr 29, 2003 | May 4, 2010 | Microsoft Corporation | Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names | | US7712024 | Jul 16, 2001 | May 4, 2010 | Microsoft Corporation | Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings | | US7716163 | Jul 17, 2001 | May 11, 2010 | Microsoft Corporation | Method and system for defining semantic categories and actions | | US7716676 | Jun 25, 2002 | May 11, 2010 | Microsoft Corporation | System and method for issuing a message to a program | | US7739588 | Jun 27, 2003 | Jun 15, 2010 | Microsoft Corporation | Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data | | US7742048 | May 23, 2002 | Jun 22, 2010 | Microsoft Corporation | Method, system, and apparatus for converting numbers based upon semantically labeled strings | | US7770102 | Jun 6, 2000 | Aug 3, 2010 | Microsoft Corporation | Method and system for semantically labeling strings and providing actions based on semantically labeled strings | | US7778816 | Apr 24, 2001 | Aug 17, 2010 | Microsoft Corporation | Method and system for applying input mode bias | | US7783614 | Feb 13, 2003 | Aug 24, 2010 | Microsoft Corporation | Linking elements of a document to corresponding fields, queries and/or procedures in a database | | US7788590 | Sep 26, 2005 | Aug 31, 2010 | Microsoft Corporation | Lightweight reference user interface | | US7788602 | Jul 16, 2001 | Aug 31, 2010 | Microsoft Corporation | Method and system for providing restricted actions for recognized semantic categories | | US7827546 | Dec 9, 2003 | Nov 2, 2010 | Microsoft Corporation | Mechanism for downloading software components from a remote source for use by a local software application | | US7899674 | Jan 30, 2007 | Mar 1, 2011 | The United States of America as represented by the Secretary of the Navy | GUI for the semantic normalization of natural language | | US7912828 | Feb 23, 2007 | Mar 22, 2011 | Apple Inc. | Pattern searching methods and apparatuses | | US7917843 | Jul 29, 2008 | Mar 29, 2011 | Arendi S.A.R.L. | Method, system and computer readable medium for addressing handling from a computer program | | US7921356 | Jul 22, 2010 | Apr 5, 2011 | Arendi S.A.R.L. | Method, system and computer readable medium for addressing handling from a computer program | | US7937688 | Feb 8, 2007 | May 3, 2011 | Microsoft Corporation | System and method for context-sensitive help in a design environment | | US7992085 | May 15, 2007 | Aug 2, 2011 | Microsoft Corporation | Lightweight reference user interface | | US8095882 | Sep 29, 2005 | Jan 10, 2012 | Avaya Technology Corp. | Additional functionality for telephone numbers and utilization of context information associated with telephone numbers in computer documents | | US8174503 | May 17, 2008 | May 8, 2012 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation | | US8214349 | Mar 1, 2010 | Jul 3, 2012 | Sentius International LLC | Automated creation and delivery of database content |
Claims1. A computer-based system for detecting structures in data and performing actions on detected structures, comprising: - an input device for receiving data;
- an output device for presenting the data;
- a memory storing information including program routines including
- an analyzer server for detecting structures in the data, and for linking actions to the detected structures;
- a user interface enabling the selection of a detected structure and a linked action; and
- an action processor for performing the selected action linked to the selected structure; and
- a processing unit coupled to the input device, the output device, and the memory for controlling the execution of the program routines.
2. The system recited in claim 1, wherein the analyzer server stores detected structures in the memory. 3. The system recited in claim 1, wherein the input device receives the data from an application running concurrently, and wherein the program routines stored in memory further comprise an application program interface for communicating with the application. 4. The system recited in claim 1, wherein the analyzer server includes grammars and a parser for detecting structures in the data. 5. The system recited in claim 4, wherein the analyzer server includes actions associated with each of the grammars, and wherein the analyzer server links to a detected structure the actions associated with the grammar which detects that structure. 6. The system recited in claim 1, wherein the analyzer server includes a string library and a fast string search function for detecting string structures in the data. 7. The system recited in claim 6, wherein the analyzer server includes actions associated with each of the strings, and wherein the analyzer server links to a detected structure the actions associated with the grammar which detects that string structure. 8. The system recited in claim 1, wherein the user interface highlights detected structures. 9. The system recited in claim 1, wherein the user interface enables selection of an action by causing the output device to display a pop-up menu of the linked actions. 10. The system recited in claim 1, wherein the programs stored in the memory further comprise an application running concurrently that causes the output device to present the data received by the input device, and an application program interface that provides interrupts and communicates with the application. 11. The system recited in claim 1, wherein the user interface enables the selection of a detected structure and a linked action using sound activation. 12. The system recited in claim 1, wherein a first one of the actions may invoke a second one of the actions. 13. A program storage medium storing a computer program for causing a computer to perform the steps of: - receiving computer data;
- detecting a structure in the data;
- linking at least one action to the detected structure;
- enabling selection of the structure and a linked action; and
- executing the selected action linked to the selected structure.
14. In a computer having a memory storing actions, a system for causing the computer to perform an action on a structure identified in computer data, comprising: - means for receiving computer data;
- means for detecting a structure in the data;
- means for linking at least one action to the detected structure;
- means for selecting the structure and a linked action; and
- means for executing the selected action linked to the selected structure.
15. In a computer having a memory storing actions, a method for causing the computer to perform an action on a structure identified in computer data, comprising the steps of: - receiving computer data;
- detecting a structure in the data;
- linking at least one action to the detected structure;
- enabling selection of the structure and a linked action; and
- executing the selected action linked to the selected structure.
16. The method recited in claim 15, wherein the computer data is received from the application running concurrently. 17. The method recited in claim 15, wherein the memory contains grammars, and wherein the step of detecting a structure further comprises the steps of retrieving a grammar and parsing the data based on the grammar. 18. The method recited in claim 17, wherein the grammar is associated with a particular action, and wherein the step of linking at least one action to the detected structure includes the step of linking the particular action to the detected structure. 19. The method recited in claim 15, wherein the memory contains strings, and wherein the step of detecting a structure further comprises the steps of retrieving a string from the memory and scanning the data to identify the string. 20. The method recited in claim 15, further comprising after the step of detecting a structure, the step of highlighting the detected structure. 21. The method recited in claim 15, further comprising, after the step of linking at least one action to the detected structure, the step of displaying and enabling selection of an action for performance on the detected structure. 22. A computer-based method for causing a computer to identify, select and perform an action on a structure in computer data received from a concurrently running application, said application presenting the computer data to the user, the method comprising the steps of: - receiving computer data from the application;
- detecting a structure in the computer data;
- linking at least one action to the detected structure;
- communicating with the application to determine the location of the detected structure as presented by the application, to enable selection of the detected structure and a linked action, and to determine if the detected structure and a linked action have been selected; and
- performing a selected action linked to the detected pattern.
23. The method recited in claim 15, wherein the step of enabling uses sound activation. 24. The method recited in claim 15, wherein a first one of the actions may invoke a second one of the actions. |