WO2009156438A1 - Method and system for entering an expression - Google Patents
Method and system for entering an expression Download PDFInfo
- Publication number
- WO2009156438A1 WO2009156438A1 PCT/EP2009/057898 EP2009057898W WO2009156438A1 WO 2009156438 A1 WO2009156438 A1 WO 2009156438A1 EP 2009057898 W EP2009057898 W EP 2009057898W WO 2009156438 A1 WO2009156438 A1 WO 2009156438A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- label
- expression
- string
- legend
- labels
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Definitions
- the invention relates to a method for entering an expression for use in a data processing system.
- the invention relates to a method for entering an expression for use in a data processing system
- the data processing system comprises at least one first label.
- the method comprises: receiving an expression comprising a second label; subsequently providing the first label; and receiving a selection for the first label.
- the invention also relates to a corresponding computer program product and a corresponding system.
- Data processing systems for aggregating, storing and/or processing data sometimes offer the feature to evaluate formulas using data from the system. For example, using a spreadsheet program many data items may be tabulated, and formulas may be used to add subsets of those numbers.
- the data processing system can employ a label. When an expression needs to refer to the data item, it can use the label instead. Labels have to be unique in the system, and moreover the label has to appear in the expression exactly as used in the data processing system.
- a problem of the known system is, that after the desired completion has been selected the result is substituted back in the partial data entry.
- the completed data entry including the substitution is subsequently viewed by the user, it may have become less comprehensible than the partial data entry itself.
- the method for entering an expression according to the invention is characterized in that, the method further comprises: generating a data structure representing the expression and an association between the second label and the first label; displaying a visual representation of the expression and displaying a legend; the legend comprising the first label, the second label and an association between the first label and the second label.
- the data processing system comprises a first label, for example, because the first label has a defined meaning within the data processing system; the first label may be used to refer to a data entity, or the first label may have some other defined meaning within the system.
- a system receives through some input device, e.g., a keyboard or a digital network, an expression which in some way is capable of being further processed while involving the second label.
- the expression may be a formula which can, e.g., be evaluated, simplified, or substituted in other expressions.
- the expression can also be a functional description, e.g., computer code, or type-setting instructions, which can be further processed by, e.g., compiling or type-setting.
- the expression may also be a sentence wherein the second label occurs as a word and which expression can be rendered on a displaying device, and wherefore the word can be explained.
- the first label or in case there are multiple first labels, a list of first labels can be provided, e.g., by generating a list of first labels, or by showing the first label on a display device.
- a selection is made for one of the provided first labels, which selection is received.
- the selection takes the form of a confirmation.
- the selection will be made by a user of the method, although it is possible that an automated system can select pre-determined or default choices, for example, company wide defaults may be enforced through an automated selection device.
- the method displays a visual representation of the expression, which expression comprises the second label as entered by the user.
- the second label is a label that the user himself has used.
- the method displays a legend.
- the legend comprises the first label, the second label and an association between the first label and the second label.
- the legend reminds the user of his selection and shows a translation of the second label to the first label. This further aids the comprehensibility of the expression. This advantage is most pronounced when the expression with first labels would be particularly long, e.g., extend over multiple lines, and/or the first labels themselves are particularly long.
- the invention allows a second label to be used multiple times within the expression.
- the second time the second label is used in the expression there is no need to receive a further selection, as the original selection may be used.
- the invention allows the association between the second label and a first label to be set up dynamically. After the expression has been entered, the method provides a first label. By selecting the first label the user sets up an association between the second label and the first label.
- the invention allows the data processing system to impose different syntax restrictions on a first label than on a second label.
- the system may impose no, or limited restriction on a first label, but require for a second label that, e.g., the symbol '+' does not occur in the second label. Since expressions are typed in and parsed with second labels, this rule avoids confusion, as the symbol '+' may typically also be used to indicate addition.
- a first label need not occur in an expression, and accordingly the syntax restriction on '+', or other such syntax restriction need not be applied to the first label.
- a database which originally was not conceived to be used with expressions, and which uses first labels without syntax restriction may be conveniently extended with a system for entering and/or evaluation expressions, wherein the second labels do have such syntax restrictions.
- the first label satisfies a first syntax rule
- the method according to the invention comprises determining whether the second label satisfies a second syntax rule, wherein the second syntax rule is different from the first syntax rule.
- the inventors have realized that what a user enters him or herself corresponds more closely to the mental concepts that the user is familiar with, than the artificial concepts used by a computerized system. After a translation to artificial concepts the resulting entered expression has suffered in comprehensibility. Although auto-completion can help with the translation from natural, mental concepts to artificial concepts, the auto- completion tool does not prevent the resulting entered expression from suffering in comprehensibility.
- the method further comprises determining that the first label is consistent with the second label according to a consistency rule. Typically determining that the first label is consistent with the second label is done before providing the first label.
- Determining that the first label is consistent with the second label aids the selection of the first label, as the method may provide a first label that is likely intended with the second label, since it is consistent with it. Moreover, determining that the first label is consistent with the second label is also helpful for comprehensibility, as it is ensures that only associations result which are likely to be easy to comprehend.
- the consistency rule may be enforced by the system, i.e. a user may not associate a second label with a first label that is inconsistent with it.
- a more flexible approach may be used. For example, a user may override the consistency rule, and associate a second label with a first label, even though they are inconsistent with each other.
- the method may comprises: receiving an override-indication. Upon receiving the override-indication the user may select a first label not consistent with the second label according to the consistency rule.
- the data processing system comprises a first list of first labels.
- the method comprises: receiving an expression comprising a second label and subsequently generating a second list of first labels consistent with the second label according to a consistency rule.
- the first list of first labels comprises the second list of first labels.
- the method comprises providing the second list of first labels and receiving a selection for a first label from the second list of first labels.
- the first label comprises a first string of characters and the second label comprises a second string of characters.
- the consistency rule comprises determining that the characters of the second string appear among the characters of the first string in a same order in which the characters of the second string appear in the second string.
- labels used in data processing systems are built-up modularly, possibly reflecting a hierarchy. Each module or level in the hierarchy that a label corresponds to may be reflected in a part in the label. Accordingly, many labels may be partially equal. It is advantageous to determine the consistency of the first label and the second label in a manner which allows the second label to be short, even in case the data processing system comprises many partially overlapping labels.
- the method further comprises storing the expression and the association.
- the expression is presented to him using the second label, since it is the second label which was used by him.
- the storing may precede or follow either displaying step.
- the storing may also be done in parallel to either displaying step.
- Figure 1 is a flowchart of a first embodiment of the method for entering an expression according to the invention.
- Figure 2 is a flowchart of a second embodiment of the method for entering an expression according to the invention.
- Figure 3 is a block diagram showing a system for entering an expression according to the invention.
- Figure 4 is a block diagram showing a system for entering an expression according to the invention.
- Figure 5 is a screenshot of a database system during entering of an expression.
- Figure 6 is a screenshot of a database system showing a legend for a partially entered expression.
- Figure 7 is a screenshot of a database system during displaying of a legend.
- Figure 1 illustrates a method for entering an expression 100.
- Method 100 comprises the following steps: receiving an expression comprising a second label 102; providing the first label 104; receiving a selection for the first label 106; generating a data structure representing the expression and an association between the second label and the first label (107); displaying a visual representation of the expression 108 and displaying a legend 110.
- displaying a legend 1 10 may be done before, or in parallel to, displaying a visual representation of the expression 108.
- An expression may comprise multiple labels. More than one label may be associated with another preexisting label.
- a data processing system could be a spreadsheet comprising at least one data entity, e.g. a value, a database system comprising at least one data entity, e.g. a record, a text processing system comprising at least one word.
- the data processing system further comprises at least one first label referring to the data entity.
- the data processing system comprises a data structure wherein the first label is associated with a pointer, wherein the pointer is the address of a data entity in a storage system.
- the data processing system comprises multiple labels and multiple entities, said multiple labels referring respectively to the multiple entities.
- an expression comprising a second label is received.
- the expression may be typed at an input device, such as a keyboard.
- the expression may also be received via a data communications network, such as the Internet.
- the expression may, for example, comprise at least part of a formula, a computer program code, a table definition, etc.
- the expression comprises a second label.
- the second label may be identified in the expression, e.g., by parsing the expression according to a predefined syntax.
- the predefined syntax may comprise the syntax of arithmetic.
- the in expression "a+1 ", the second label "a” can be discovered by parsing the expression for the term "+”.
- the second label may be identified in the expression by requiring that a second label has a pre- defined form. For example, it may be required that second labels start with the symbol
- the first label is provided.
- a list of labels may be provided.
- Providing the first label can be done by accessing the data processing system and retrieving a list of the labels used the data processing system.
- the retrieved list, or a portion thereof, is subsequently displayed on a display.
- the list will be sorted before being displayed.
- the displaying can be done in a single column or in multiple columns.
- the list of labels may be displayed in the vicinity of the second label.
- a query can be done to ask for the available labels in the data base system.
- the available labels include the first label.
- a selection for the first label is received.
- a selection from the list is received.
- the selection may be received from an input device, e.g., via a keyboard, mouse, pointer, tablet, etc.
- the selection indicates that an association is desired between the second label and the first label.
- a data structure is generated.
- the data structure includes a representation of the expression.
- the expression may be included in the data structured in a different form as was entered; for example, in case the expression is a formula, the data structure may comprise the formula in reverse polish notation, whereas the formula was entered using infix notation.
- the data structure further includes a representation of the first label and the second label. It is not necessary to include the first and/or second label themselves. Instead a pointer can be included that points to the appropriate label in a different data structure.
- a visual representation of the expression is displayed.
- the expression as displayed comprises the second label.
- the second label has not been replaced with the first label.
- a legend is displayed.
- the legend comprises the first label, the second label and an association between the first label and the second label.
- the legend shows in a visual way, the relationship between the first label and the second label.
- the legend may contain two columns, wherein in the first column the second label is shown and in a corresponding position in the second column the first label is shown.
- the expression and the legend may be displayed immediately after receiving the selection 106. However, the expression and the legend may also be displayed at some other moment, for example, during a review of the expression. Displaying the legend may be dependent on receiving an indication that a legend is desired, in which case only upon receiving said indication is the legend displayed. For example, such an indication may be received by having the user click on an icon representative of showing the legend. Upon clicking on the icon the legend will be displayed.
- a user may indicate by a click on the expression, or a selection from a pull-down menu that a legend is desired.
- a legend may show only a single second label used in a single expression, and the corresponding single first label.
- the legend may also show all second labels in the expression and their corresponding first labels.
- a legend may also show all second labels used on a single page of a document, or all second labels used in a part of the document currently shown on a display or in a window. The latter option is especially convenient when the data processing system is a text processing application.
- the system may also include an option to automatically provide a legend for any expression displayed. Such an option may be turned on in a preferences menu.
- Method 100 may be executed in hardware, software or combination thereof.
- Figure 2 illustrates a method for entering an expression 200.
- Method 200 comprises all the steps of method 100, with the additional step of determining that the first label is consistent with the second label 202.
- the method may test the first label for consistency with the second label before providing it.
- each of the labels may be tested for consistency and only the labels that are consistent with the second label are provided.
- Testing the first label for consistency with the second label is typically done using a consistency rule.
- the consistency rule describes when two labels are considered consistent with each other.
- consistency rules are possible.
- the first label comprises a first string of characters and the second label comprises a second string of characters.
- the consistency rules may be combined.
- a first consistency rule the consistency between a label found in the expression, i.e. the second label, and a label found in the data processing system, i.e., the first label, is determined.
- the first label is consistent with the second label if the second string is shorter than the first string.
- this rule works on the assumption that the user will want to use second labels that are easier to enter than the corresponding first labels. This is accomplished as only labels are provided that take fewer characters to type in. For example, according to this rule, a second label comprising a second string "xy" is consistent with a first label comprising a first string "abc".
- the characters of the second string have a first order.
- the first label is consistent with the second label if the characters of the second string are comprised in the characters of the first string in a second order, said second order being equal to the first order. That is, the characters of the second string appear among the characters of the first string in a same order in which the characters of the second string appear in the second string.
- a first label which comprises the string "xaybzbycq”
- a second label comprising the string "abbe”.
- Each character of the second string is comprised in the first string and moreover in the same order as the characters appear in the second string. Note that the second string abbe, would not match with any of the following first strings: “xayzbycq”, “xbyazbycq", "abc", “babe”, etc.
- the string “vat” is consistent according to the second consistency rule with “value_added_tax”. But, according to the second consistency rule, the string “vat” would also be consistent with "number_of_variant_articles”.
- any consistency rule in particular to the second consistency rule.
- the further condition demands that the first character of the second string is equal to the first character of the first string.
- the first string abbe no longer matches the second string xaybzbycq.
- the second string were: axaybzbycq, then consistency is restored.
- the second string of characters starts with a starting string of characters and ends with an ending string of characters.
- the first label is consistent with the second label if the first string starts with the starting string and that the first string ends with the ending string.
- a first label comprising the first string abcxyzdef is consistent with a second label comprising the second string abcdef.
- the starting string or ending string may be empty. However, if this rule is combined with the additional condition, the starting string comprises at least one character.
- the second label consists of the starting string and the ending string.
- the second label is partitioned into two parts: the starting string and the ending string.
- the first label should start with the starting string and end with the ending string.
- various options and combinations thereof are possible. For example, one may demand that the starting string and/or the ending string is not empty.
- the first label is consistent with the second label if the first string starts with the second string. For example, a first label comprising the first string abcxyz is consistent with a second label comprising the second string abc.
- camel case is applied.
- the first label is consistent with the second label if they are consistent according to any consistency given above, wherein the case of the first and/or second string is ignored, and moreover, according to the more further condition, each capital in the second string corresponds to the start of a word in the first string.
- a first label comprising the string "first percentage” is consistent with a second label comprising the string "FiPe" according to the second consistency rule and this condition.
- first label be the unique label consistent with the second label. Rather, the user is assisted in his selection of the first label, by having a manageable number of reasonable alternatives presented to him.
- an initial consistency rule is used preceding using the consistency rule.
- the consistency rule is a further consistency rule.
- the initial consistency rule is employed.
- each label comprised in the data processing system is tested for consistency with the second label, according to the initial consistency rule, resulting in a list of first labels. If the results of applying the initial consistency rule are inadequate the further consistency rule may be applied in a second iteration. In the second iteration, each label comprised in the data processing system is tested for consistency with the second label, according to the further consistency rule.
- the results of the first iteration may be inadequate, if no labels are consistent with the second label, or if the number of labels consistent with the second label is small compared to the total number of labels comprised in the data processing system.
- the results of the first iteration may also be inadequate if the number of labels is too large.
- a number of results can be too large compared to the number of labels that are easily read by a human, or it can be too large compared to the number of labels in the data processing system.
- usage of the further consistency rule after usage of the initial consistency rule may be optional or automatic.
- a user may, after viewing the results of the initial consistency rule, judge the results to be inadequate and start, for example, through a mouse-click, an adapting of the list of first labels, using the further consistency rule.
- the system may make such a determination, and start the adapting of the list of first labels itself.
- the method comprises a step of storing the expression and the association.
- the storing may be to a persistent storage, such as a hard disk, or a flash memory.
- the storing may also be to a volatile storage, such a Random Access Memory (RAM).
- RAM Random Access Memory
- the storing may take place at many convenient moments. For example, the storing may take place after or prior to any one of the displaying steps, 108 and 1 10.
- Storing the association to a storage has the advantage that when the expression is later retrieved from the storage, the legend can be displayed again.
- the first label is a reference for a data entity
- the method further comprises a step of evaluating the expression, the evaluating comprising substituting the data entity for the second label.
- the second label may be replaced with the first label, which in turn may be replaced by the data entity. It is also possible to directly replace the second label with the data entity.
- vat x sp which in this case is a formula.
- the second labels "vat” and "sp” are identified. In this case the identification is done by parsing the syntax of this type of formula. Note that the character 'x' is used to indicate multiplication.
- the system could query the data processing system for labels used in the data processing system.
- the list may be provided without a pre-selection based on consistency. For example, the system may provide a list like: “sales_price” "value_added_ tax”
- first label “value_added_ tax” is consistent with the second label "vat”.
- other first labels are also consistent with “vat”, such as "Veterinary_Aptitude_Test_results”, in case the data processing system is used by a veterinary school.
- the consistent labels including "value_added_ tax” are provided.
- the user selects "value_added_ tax” as a first label.
- an association is established between the second label “vat” and the first label "value_added_ tax”. For example, an association can be established by recording the first label and the second label in respective fields of an appropriate data structure.
- the second label "sp” is identified, after which the first label “sales_price” is provided as being consistent.
- a selection for "sales_price” is received an association between the second label “sp” and the first label “sales_price” is established.
- value_added_ tax could refer to a data entity, e.g., an actual value, stored somewhere in the data processing system.
- value_added_tax may refer to the number 0.19, being the fraction of a base price which gives the amount of value added tax.
- the second label "sp" may be replaced with a data entity, say $100, and the second label "vat” will be replaced with the data entity 0.19.
- the formula "vat x sp" would be evaluated as 0.19 * $100, which gives, after evaluation, $19.
- the symbol 'x' which represents multiplication, is replaced for the purpose of evaluation, with the symbol ' * '.
- the symbol ' * ' also indicates multiplication, but may for this particular user be less familiar than the 'x' symbol.
- the formula could also be used to make a table.
- the variable "sp" could be replaced by a collection of sales prices, as listed in a collection of records in a database.
- the second label may be longer than the first label.
- a user may use the second label "price not including vat", and through a selection associate it with the first label "sales_price". In this way, the user makes it easier to remember that the "sales_price" variable does not include value added tax, even though this is not ordinarily included in the naming of that variable.
- a legend could include the line:
- the legend may be displayed automatically, or only on receiving an indication from a user.
- An indication may be a keyboard shortcut, a mouse click, a roll-over with the mouse, etc.
- the method of entering an expression is used in a text processing system.
- the system receives an expression, which in this embodiment is a string comprising one or more words. At least one of the words in the expression is an acronym.
- the second label is one of these acronyms.
- the second label can be identified automatically, for example, by recognizing a string from a glossary, or with help from the user, for example, by selecting the acronym with a mouse.
- the first label can also be selected from a glossary.
- the first label refers to the meaning of the acronym.
- the GUID must be unique for each instance of the RO.
- the system provides the user the first label "Globally Unique Identifier” as a possible selection choice for the second label "GUID”.
- the second label may be associated with the first label "Rights Object”.
- the second labels can be identified by the system looking up GUID and RO in a glossary, alternatively, the user could select them as required for legend.
- the legend in this case comprises:
- association can be used globally for other expressions that are received later.
- an association can also be private to a single expression.
- the user may indicate that the association between vat and "value_added_tax" is to be used for each expression that a system employing the method may further encounter.
- a second expression is entered using the label vat, there is no need to provide a first label for the second label "vat”.
- a legend could be displayed, reminding the user of the global association between "vat” and "value_added_tax", he has set up earlier.
- vat can also keep the association between vat and "value_added_tax" private to the current expression.
- an expression is entered including the term "vat”
- the system would again provide a list of first labels that are consistent with "vat” and that are comprised in the data processing system.
- “vat” could then stand for "Veterinary_Aptitude_Test_results”.
- the second expression may define a graph, plotting the test results of applicants for a veterinary school over the past ten years.
- a method according to the invention can be implemented as a computer program product, e.g., as software.
- software comprising a number of processing means, such that each step of a method according to the invention can be achieved by at least one of the number of processing means.
- each specific processing means of the number of processing means corresponds to a specific step of the method according to the invention.
- the programming means can be fabricated using various well known high-level programming languages, such as, C, C++ or Pascal.
- the programming means can alternatively be fabricated using low-level programming languages such as assembly, machine codes or microcode.
- a processing means can correspond to an architectural structure, such as a subroutine, or an object, but this is not necessary, and a processing means can also correspond to one or more lines of programming code, or part thereof.
- a processing means could also be comprised in a larger processing means addressing an ulterior goal of the software.
- the method generates a data structure representing an expression comprising a second label and an association between the second label and a first label.
- a data structure representing an expression comprising a second label and an association between the second label and a first label.
- the data structure can be stored or transmitted, e.g. over a network, such as the Internet, or a GSM communication network.
- the data structure is suitable for use with a system according to the invention.
- the data structure is also suitable for use with a method according to the invention.
- the expression can be evaluated in data processing system.
- a record carrier such as a hard disk, a floppy disk, a flash memory device, etc, may be used to record the data structure on.
- a system 300 for entering an expression comprises a data processing system 302.
- the data processing system comprises a first label 304.
- System 300 comprises a means for receiving an expression 306.
- the expression comprises a second label.
- System 300 comprises a means for providing the first label 308 and a means for receiving a selection for the first label 310.
- System 300 comprises a means for displaying a visual representation of the expression and means for displaying a legend, both of which are implemented in means for displaying 312.
- the means for receiving an expression 306 receives an expression comprising a second label. This event is forwarded to the means for providing the first label 308, via a suitable connection.
- the means for providing the first label 308 has access to the first label 304.
- the means for providing the first label 308 provides the first label 304.
- the means for receiving a selection for the first label 310 receives a selection for the first label, the selection is relayed back to the means for providing the first label 308, via a suitable connection.
- the association is made in dependency on the selection.
- the means for displaying 312 displays both the expression and a legend.
- the legend comprises the first label, the second label and an association between the first label and the second label.
- the displaying of the legend is done in a suitable visual representation of the legend.
- the present invention may be implemented using a programmed processor executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic storage medium.
- programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic storage medium.
- processes described above can be implemented in any number of variations and in many suitable programming languages without departing from the present invention.
- the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from the invention. Error trapping, enhancements and variations can be added without departing from the present invention. Such variations are contemplated and considered equivalent.
- FIG. 4 a system 400 for entering an expression is shown.
- the system comprises a computer 402.
- the computer 402 is connected to a display 404 and a keyboard 408.
- the keyboard is connected to a mouse 410.
- Computer 402 is connected to a storage device 406.
- Computer 402 contains a processor for executing software.
- Storage device 406 stores a collection of data items, e.g. numerical values.
- Computer 402 is connected to storage device 406 in order to provide access to the collection of data items.
- a user can enter an expression using keyboard 408.
- Computer 402 identifies in the expression a label, i.e. a second label. For example, computer 402 retrieves a list from storage device 406 comprising possible labels, and compares the list of possible labels with the entered expression. Alternatively, the user identifies the label in the expression by highlighting it using mouse 410. Computer 402 will display the expression, including the label on display 404. Next, computer 402 retrieves from storage device 406 a list of labels used for referring to data items.
- Computer 402 may directly display the list of labels used for referring, or portion thereof, on display 404.
- computer 402 selects out of this list, all labels which are consistent with a consistency rule.
- computer 402 compares each item on the list to the second label according to a consistency rule.
- the list of labels used for referring and consistent with the second label is displayed on display 404.
- keyboard 408 and/or mouse 410 the users selects a first label from among the displayed possibilities. For example, the user highlights his choice for a first label.
- Computer 402 receives this selection, for example, in the form of an event, e.g., a mouse click.
- Computer 402 makes a first data record and enters the first label and the second label into it.
- Computer 402 also makes a second data record comprising the expression.
- the first data record and the second data record are stored on storage device 406.
- the first data record and the second data record together make up a data structure.
- computer 402 may also keep the first data record and the second data record in a memory (not shown) comprised in computer 402.
- computer 402 displays the expression on display 404.
- the second data record is retrieved.
- Computer 402 may transform the expression to make it more suitable for display. For example, a formula may be typeset, and/or rendered for optimal viewing.
- Computer 402 automatically displays, in the vicinity of the expression a legend.
- computer 402 first retrieves the first data record from storage device 406. From the first data record the first and second label are retrieved.
- computer 402 displays a message on display 404, e.g. in the form of a window, or message box, the first label and the second label.
- the relationship between the first label and the second label is in some way expressed, for example, using an arrow, or by placing the concepts close to each other.
- computer 402 evaluates the expression: The data entity to which the first label refers is retrieved from storage 406. The data entity is substituted for the second label. In this way the expression can be evaluated using an expression evaluator of the data system. Alternatively that substitution could be done in two stages. First a second label is replaced by the associated first label, next the first label is replaced by a corresponding data entity.
- the expression entered by the user includes some mathematical symbol, i.e. some pictorial representation of a mathematical concept, he may select the meaning for the mathematical symbol from a list of possible meanings. For example, on entering the symbol "+”, the user may select first "modular addition” or he may select first label "arithmetical addition”. On displaying the expression, computer 402 will display a legend. The legend will both show the pictorial representation, e.g. "+”, and the selected meaning. In this case the first label refers to a method that is to be used when, while evaluating the expression, the symbol "+" is encountered.
- Figure 5, 6 and 7 show three screenshots of an application of the method according to the invention, in the context of a database system.
- the database system is implemented on a computer comprising a storage device. On the storage device multiple records with data are stored.
- a record comprises various fields. In this database system, fields can themselves comprise multiple fields.
- the format of a data record is specified in a data record definition.
- a user is working on the definition of a record for 'Bill'.
- 'Bill ' record can itself occur as a field in other records.
- a 'Bill' record has 5 fields: 'Customer', 'Billing lines', Total Amount (Excl. VAT)', 'VAT Amount' and Total Amount (Incl. VAT)'.
- the field 'Billing lines' defines a table.
- the table has 5 columns. The columns take their information from other records in the database.
- the table has been defined using the labels: Item, Price, Quantity, Discount and Amount. Although these labels are associated with other labels, a legend is not currently shown, for these labels.
- the system shows a windows marked 'Legend'.
- the label T ' serves as a second label.
- the system has retrieved a list of labels from the database that can be used at this point in the field. Moreover, a selection has taken place; only those labels are shown which are consistent with the second label the user has entered.
- the window marked 'Legend' in figure 5, is showing a list of first labels that are consistent, according to the rule the system currently has in use, with the second label.
- Two fields are consistent with the second label T': Total Amount (Excl. VAT)', and Total Amount (Incl. VAT)'. Note that in the screenshot, the definitions for these two labels happen to be also shown.
- a label, appearing as a first label in a legend can itself refer to an expression, or to another label, or directly to some data object itself, etc.
- the user has a number of options. He could associate the second label T' to one of the two shown consistent first labels; for example, by clicking on one of the two shown labels in the legend. He may also continue typing, this will make the second label T' longer, and possibly more informative. Extending the label T' may also have as a consequence that one of the labels is no longer consistent. For example, the user may extend the label T to TotExVat'. If the system uses, e.g., the second consistency rule, then this means that only the field Total Amount (Excl. Btw)' remains consistent.
- the user also has the option, to ask the system adapt the list of first labels that is now shown in the window headed 'Legend'. For example, the user may indicate that he wants the full list of all possible first labels, without taking consistency into account.
- FIG 6 a screenshot is shown of the application at some later moment than the screenshot taken for Figure 5.
- the expression that the user was creating in Figure 5 has been completed.
- the user has completed typing the second label to TotExVAT', at this point only a single first label is consistent with the second label.
- To continue working with the second label TotExVAT' the sole consistent first label Total Amount (Excl. VAT)' may be selected to confirm the association between this first label and second label.
- the system may also be configured such that this selection is made automatically.
- the user can now continue typing in an expression, using the term TotExVAT'. In evaluations the system will translate this into Total Amount (Excl. VAT)' when necessary.
- FIG 7 a screenshot is shown of the application at yet a later moment than the screenshot taken for Figure 6.
- the user has reconsidered his choice for second label and has continued working with the second label TotAmountExclVAT' to refer to the first label Total Amount (Excl. VAT)'.
- the invention it is easy for a user to change labels locally in an expression, as the method can shield the local choices from influencing other expression, if that is so desired.
- the user has finished the expression for VAT Amount'.
- the user decided to review an expression, for which he has established an association earlier. Selecting the field Total Amount (Excl. VAT)' the system shows a legend, indicated in Figure 7 with the heading 'Legend'.
- the legend shows the second label 'Bill_Amount' which is used in the expression, and also shows the first label to which it refers.
- the label 'Bill_Amount' refers to a particular column in a table.
- the table is indicated with Billing Lines and the column with Amount.
- the invention is also applicable in a situation such as here, where variables are ordered hierarchically. To refer to the column 'Amount' first the hierarchically higher structure 'Billing lines' need to be selected. The user, however, can simply use the second label 'Bill_amount' to refer to this hierarchically selected data entity.
- the present invention could be implemented using special purpose hardware and/or dedicated processors.
- general purpose computers, microprocessor based computers, digital signal processors, microcontrollers, dedicated processors, custom circuits, ASICS and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments of the present invention.
- several of these means may be embodied by one and the same item of hardware
Abstract
A method and system for entering an expression is provided. The method is for use in a data processing system which comprises at least one first label. The method comprises: receiving an expression comprising a second label (102); subsequently providing the first label (104); and receiving a selection for the first label (106); characterized in that, the method further comprises: generating a data structure representing the expression and an association between the second label and the first label (107); displaying a visual representation of the expression (108) and displaying a legend (110), the legend comprising the first label, the second label and the association between the first label and the second label.
Description
METHOD AND SYSTEM FOR ENTERING AN EXPRESSION
FIELD OF THE INVENTION
The invention relates to a method for entering an expression for use in a data processing system.
In particular, the invention relates to a method for entering an expression for use in a data processing system, the data processing system comprises at least one first label. The method comprises: receiving an expression comprising a second label; subsequently providing the first label; and receiving a selection for the first label.
The invention also relates to a corresponding computer program product and a corresponding system.
BACKGROUND OF THE INVENTION
Data processing systems for aggregating, storing and/or processing data sometimes offer the feature to evaluate formulas using data from the system. For example, using a spreadsheet program many data items may be tabulated, and formulas may be used to add subsets of those numbers. To refer to a data item, the data processing system can employ a label. When an expression needs to refer to the data item, it can use the label instead. Labels have to be unique in the system, and moreover the label has to appear in the expression exactly as used in the data processing system.
Some of these systems offer features to enhance the usability of the interface to the system. For example, US patent application 2007/0055922, incorporated herein by reference, discloses a known system for auto-completion. Upon partial data entry, the system suggests a completion for the partial data entry to a reference for an item in a database. A user may select the completion, whereupon the partial data entry is completed, wherein the selected completion is inserted in the partial data entry.
SUMMARY OF THE INVENTION
A problem of the known system is, that after the desired completion has been selected the result is substituted back in the partial data entry. When the completed data entry including the substitution is subsequently viewed by the user, it may have become less comprehensible than the partial data entry itself.
It is an object of the invention to aid the comprehensibility of entered expressions.
The method for entering an expression according to the invention is characterized in that, the method further comprises: generating a data structure representing the expression and an association between the second label and the first label; displaying a visual representation of the expression and displaying a legend; the legend comprising the first label, the second label and an association between the first label and the second label.
The data processing system comprises a first label, for example, because the first label has a defined meaning within the data processing system; the first label may be used to refer to a data entity, or the first label may have some other defined meaning within the system. Through receiving an expression comprising a second label, a system receives through some input device, e.g., a keyboard or a digital network, an expression which in some way is capable of being further processed while involving the second label. For example, the expression may be a formula which can, e.g., be evaluated, simplified, or substituted in other expressions. The expression can also be a functional description, e.g., computer code, or type-setting instructions, which can be further processed by, e.g., compiling or type-setting. The expression may also be a sentence wherein the second label occurs as a word and which expression can be rendered on a displaying device, and wherefore the word can be explained. The first label, or in case there are multiple first labels, a list of first labels can be provided, e.g., by generating a list of first labels, or by showing the first label on a display device. A selection is made for one of the provided first labels, which selection is received. In case there is one first label, the selection takes the form of a confirmation. Typically, the selection will be made by a user of the method, although it is possible that an automated system can select pre-determined or default choices, for example, company wide defaults may be enforced through an automated selection device.
The method displays a visual representation of the expression, which expression comprises the second label as entered by the user. A user of the method, to whom the expression is displayed, sees the expression including the second label. The second label is a label that the user himself has used. Moreover, the method displays a legend. The legend comprises the first label, the second label and an association between the first label and the second label. Thus, the legend reminds the user of his selection and shows a translation of the second label to the first label. This further aids the comprehensibility of the expression. This advantage is most pronounced when the expression with first labels would be particularly long, e.g., extend over multiple lines, and/or the first labels themselves are particularly long.
Advantageously, the invention allows a second label to be used multiple times within the expression. The second time the second label is used in the expression there is no need to receive a further selection, as the original selection may be used.
Advantageously, the invention allows the association between the second label and a first label to be set up dynamically. After the expression has been entered, the method provides a first label. By selecting the first label the user sets up an association between the second label and the first label.
Advantageously, the invention allows the data processing system to impose different syntax restrictions on a first label than on a second label. For example, using the invention, the system may impose no, or limited restriction on a first label, but require for a second label that, e.g., the symbol '+' does not occur in the second label. Since expressions are typed in and parsed with second labels, this rule avoids confusion, as the symbol '+' may typically also be used to indicate addition. Using the invention, a first label need not occur in an expression, and accordingly the syntax restriction on '+', or other such syntax restriction need not be applied to the first label. In this way, e.g., a database, which originally was not conceived to be used with expressions, and which uses first labels without syntax restriction may be conveniently extended with a system for entering and/or evaluation expressions, wherein the second labels do have such syntax restrictions. In one such embodiment the first label satisfies a first syntax rule, and the method according to the invention comprises determining whether the
second label satisfies a second syntax rule, wherein the second syntax rule is different from the first syntax rule.
The inventors have realized that what a user enters him or herself corresponds more closely to the mental concepts that the user is familiar with, than the artificial concepts used by a computerized system. After a translation to artificial concepts the resulting entered expression has suffered in comprehensibility. Although auto-completion can help with the translation from natural, mental concepts to artificial concepts, the auto- completion tool does not prevent the resulting entered expression from suffering in comprehensibility.
In a preferred embodiment of the method for entering an expression according to the invention, the method further comprises determining that the first label is consistent with the second label according to a consistency rule. Typically determining that the first label is consistent with the second label is done before providing the first label.
Determining that the first label is consistent with the second label aids the selection of the first label, as the method may provide a first label that is likely intended with the second label, since it is consistent with it. Moreover, determining that the first label is consistent with the second label is also helpful for comprehensibility, as it is ensures that only associations result which are likely to be easy to comprehend. The consistency rule may be enforced by the system, i.e. a user may not associate a second label with a first label that is inconsistent with it. On the other hand, also a more flexible approach may be used. For example, a user may override the consistency rule, and associate a second label with a first label, even though they are inconsistent with each other. For example, the method may comprises: receiving an override-indication. Upon receiving the override-indication the user may select a first label not consistent with the second label according to the consistency rule.
In a preferred embodiment the data processing system comprises a first list of first labels. The method comprises: receiving an expression comprising a second label and subsequently generating a second list of first labels consistent with the second label according to a consistency rule. The first list of first labels comprises the second list of first labels. The method comprises providing the second list of first labels and receiving a selection for a first label from the second list of first labels.
In a preferred embodiment of the method for entering an expression according to the invention, the first label comprises a first string of characters and the second label comprises a second string of characters. The consistency rule comprises determining that the characters of the second string appear among the characters of the first string in a same order in which the characters of the second string appear in the second string.
Typically, labels used in data processing systems are built-up modularly, possibly reflecting a hierarchy. Each module or level in the hierarchy that a label corresponds to may be reflected in a part in the label. Accordingly, many labels may be partially equal. It is advantageous to determine the consistency of the first label and the second label in a manner which allows the second label to be short, even in case the data processing system comprises many partially overlapping labels.
In a preferred embodiment of the method for entering an expression according to the invention, the method further comprises storing the expression and the association.
When at some point, the user wishes to review the expression, it is advantageous if the expression is presented to him using the second label, since it is the second label which was used by him. By storing both the expression and the association, this can be accomplished. Note that the storing may precede or follow either displaying step. The storing may also be done in parallel to either displaying step.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is explained in further detail by way of example and with reference to the accompanying drawings, wherein:
Figure 1 is a flowchart of a first embodiment of the method for entering an expression according to the invention.
Figure 2 is a flowchart of a second embodiment of the method for entering an expression according to the invention.
Figure 3 is a block diagram showing a system for entering an expression according to the invention.
Figure 4 is a block diagram showing a system for entering an expression according to the invention.
Figure 5 is a screenshot of a database system during entering of an expression. Figure 6 is a screenshot of a database system showing a legend for a partially entered expression.
Figure 7 is a screenshot of a database system during displaying of a legend.
Throughout the Figures, similar or corresponding features are indicated by same reference numerals.
List of Reference Numerals:
100 a method for entering an expression
102 receiving an expression comprising a second label
104 providing the first label
106 receiving a selection for the first label
107 generating a data structure representing the expression and an association between the second label and the first label
108 displaying a visual representation of the expression 110 displaying a legend
200 a method for entering an expression
202 determining that the first label is consistent with the second label.
300 a system for entering an expression
302 a data processing system
304 a first label
306 a means for receiving an expression
308 a means for providing the first label
310 a means for receiving a selection for the first label
312 a means for displaying
400 a system for entering an expression
402 a computer
404 a display
406 a storage device
408 a keyboard
410 a mouse
DETAILED EMBODIMENTS
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail one or more specific embodiments, with the understanding that the present disclosure is to be considered as exemplary of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described.
Figure 1 illustrates a method for entering an expression 100. Method 100 comprises the following steps: receiving an expression comprising a second label 102; providing the first label 104; receiving a selection for the first label 106; generating a data structure representing the expression and an association between the second label and the first label (107); displaying a visual representation of the expression 108 and displaying a legend 110.
The order of the steps can be varied or some steps may be executed in parallel, as will be apparent to a person skilled in the art. For example, displaying a legend 1 10 may be done before, or in parallel to, displaying a visual representation of the expression 108. An expression may comprise multiple labels. More than one label may be associated with another preexisting label.
During operational use, method 100 may be employed as follows. A data processing system could be a spreadsheet comprising at least one data entity, e.g. a value, a database system comprising at least one data entity, e.g. a record, a text processing system comprising at least one word. The data processing system further comprises at least one first label referring to the data entity. For example, the data processing system comprises a data structure wherein the first label is associated with a pointer, wherein the pointer is the address of a data entity in a storage system. Typically, the data processing system comprises multiple labels and multiple entities, said multiple labels referring respectively to the multiple entities.
According to step 102 of method 100, an expression comprising a second label is received. For example, the expression may be typed at an input device, such as a keyboard. The expression may also be received via a data communications network,
such as the Internet. The expression may, for example, comprise at least part of a formula, a computer program code, a table definition, etc. The expression comprises a second label.
The second label may be identified in the expression, e.g., by parsing the expression according to a predefined syntax. For example, the predefined syntax may comprise the syntax of arithmetic. In this case, the in expression "a+1 ", the second label "a" can be discovered by parsing the expression for the term "+". Alternatively, the second label may be identified in the expression by requiring that a second label has a pre- defined form. For example, it may be required that second labels start with the symbol
According to step 104 of method 100, the first label is provided. In case the data processing system comprises multiple labels, a list of labels may be provided. Providing the first label can be done by accessing the data processing system and retrieving a list of the labels used the data processing system. The retrieved list, or a portion thereof, is subsequently displayed on a display. Typically, the list will be sorted before being displayed. The displaying can be done in a single column or in multiple columns. For example, the list of labels may be displayed in the vicinity of the second label.
In case the data processing system is a database, a query can be done to ask for the available labels in the data base system. The available labels include the first label.
According to step 106 of method 100, a selection for the first label is received. In case, a list was provided, a selection from the list is received. The selection may be received from an input device, e.g., via a keyboard, mouse, pointer, tablet, etc. The selection indicates that an association is desired between the second label and the first label.
According to step 107, a data structure is generated. The data structure includes a representation of the expression. The expression may be included in the data structured in a different form as was entered; for example, in case the expression is a formula, the data structure may comprise the formula in reverse polish notation, whereas the formula was entered using infix notation. The data structure further includes a representation of the first label and the second label. It is not necessary to
include the first and/or second label themselves. Instead a pointer can be included that points to the appropriate label in a different data structure.
According to step 108 of method 100, a visual representation of the expression is displayed. Note that the expression as displayed comprises the second label. The second label has not been replaced with the first label. Also, according to step 110 of the method 100 a legend is displayed. The legend comprises the first label, the second label and an association between the first label and the second label. The legend shows in a visual way, the relationship between the first label and the second label. For example, the legend may contain two columns, wherein in the first column the second label is shown and in a corresponding position in the second column the first label is shown.
The expression and the legend may be displayed immediately after receiving the selection 106. However, the expression and the legend may also be displayed at some other moment, for example, during a review of the expression. Displaying the legend may be dependent on receiving an indication that a legend is desired, in which case only upon receiving said indication is the legend displayed. For example, such an indication may be received by having the user click on an icon representative of showing the legend. Upon clicking on the icon the legend will be displayed.
Alternatively, a user may indicate by a click on the expression, or a selection from a pull-down menu that a legend is desired. A legend may show only a single second label used in a single expression, and the corresponding single first label. The legend may also show all second labels in the expression and their corresponding first labels. Conveniently, a legend may also show all second labels used on a single page of a document, or all second labels used in a part of the document currently shown on a display or in a window. The latter option is especially convenient when the data processing system is a text processing application.
The system may also include an option to automatically provide a legend for any expression displayed. Such an option may be turned on in a preferences menu.
Method 100 may be executed in hardware, software or combination thereof.
Figure 2 illustrates a method for entering an expression 200. Method 200 comprises all the steps of method 100, with the additional step of determining that the first label is consistent with the second label 202. The method may test the first label for consistency with the second label before providing it.
For example, in case the data processing system comprises multiple labels, each of the labels may be tested for consistency and only the labels that are consistent with the second label are provided. Testing the first label for consistency with the second label is typically done using a consistency rule. The consistency rule describes when two labels are considered consistent with each other.
Many consistency rules are possible. As an example, to illustrate the invention, a number of possible consistency rules are given. In the example, consistency rules given below, the first label comprises a first string of characters and the second label comprises a second string of characters. The consistency rules may be combined.
In a first consistency rule, the consistency between a label found in the expression, i.e. the second label, and a label found in the data processing system, i.e., the first label, is determined. The first label is consistent with the second label if the second string is shorter than the first string. When this rule is used, after the user has entered a second label, he will be presented with one or more first labels, which are longer than the second label. This rule works on the assumption that the user will want to use second labels that are easier to enter than the corresponding first labels. This is accomplished as only labels are provided that take fewer characters to type in. For example, according to this rule, a second label comprising a second string "xy" is consistent with a first label comprising a first string "abc".
In a second consistency rule, the characters of the second string have a first order. The first label is consistent with the second label if the characters of the second string are comprised in the characters of the first string in a second order, said second order being equal to the first order. That is, the characters of the second string appear among the characters of the first string in a same order in which the characters of the second string appear in the second string. For example, according to this rule a first label, which comprises the string "xaybzbycq", is consistent with a second label comprising the string "abbe". Each character of the second string is comprised in the
first string and moreover in the same order as the characters appear in the second string. Note that the second string abbe, would not match with any of the following first strings: "xayzbycq", "xbyazbycq", "abc", "babe", etc.
As a further example, the string "vat" is consistent according to the second consistency rule with "value_added_tax". But, according to the second consistency rule, the string "vat" would also be consistent with "number_of_variant_articles".
It is possible to add a further condition for consistency to any consistency rule, in particular to the second consistency rule. The further condition demands that the first character of the second string is equal to the first character of the first string. Using this additional condition with the second rule, the first string abbe, no longer matches the second string xaybzbycq. However, if the second string were: axaybzbycq, then consistency is restored.
If the further condition is used together with the second consistency rule, the string "vat" is still consistent with "value_added_tax", but is no longer consistent with number_of_variant_articles".
In a third consistency rule, the second string of characters starts with a starting string of characters and ends with an ending string of characters. The first label is consistent with the second label if the first string starts with the starting string and that the first string ends with the ending string. For example, a first label comprising the first string abcxyzdef is consistent with a second label comprising the second string abcdef. Note that the starting string or ending string may be empty. However, if this rule is combined with the additional condition, the starting string comprises at least one character.
In a further refinement of the third consistency rule, the second label consists of the starting string and the ending string. In this situation the second label is partitioned into two parts: the starting string and the ending string. Then, for a first label to be consistent with the second label, the first label should start with the starting string and end with the ending string. Also with this refinement various options and combinations thereof are possible. For example, one may demand that the starting string and/or the ending string is not empty.
In a third consistency rule, the first label is consistent with the second label if the first string starts with the second string. For example, a first label comprising the first string abcxyz is consistent with a second label comprising the second string abc.
In yet a more further condition, camel case is applied. The first label is consistent with the second label if they are consistent according to any consistency given above, wherein the case of the first and/or second string is ignored, and moreover, according to the more further condition, each capital in the second string corresponds to the start of a word in the first string. For example, a first label comprising the string "first percentage" is consistent with a second label comprising the string "FiPe" according to the second consistency rule and this condition.
Note that there is no requirement that the first label be the unique label consistent with the second label. Rather, the user is assisted in his selection of the first label, by having a manageable number of reasonable alternatives presented to him.
In a further refinement of method 200, preceding using the consistency rule an initial consistency rule is used. For convenience of exposition we will refer to the consistency rule as a further consistency rule. In a first iteration the initial consistency rule is employed. For example, in the first iteration, each label comprised in the data processing system is tested for consistency with the second label, according to the initial consistency rule, resulting in a list of first labels. If the results of applying the initial consistency rule are inadequate the further consistency rule may be applied in a second iteration. In the second iteration, each label comprised in the data processing system is tested for consistency with the second label, according to the further consistency rule.
The results of the first iteration may be inadequate, if no labels are consistent with the second label, or if the number of labels consistent with the second label is small compared to the total number of labels comprised in the data processing system. On the other hand the results of the first iteration may also be inadequate if the number of labels is too large. A number of results can be too large compared to the number of labels that are easily read by a human, or it can be too large compared to the number of labels in the data processing system.
Note that usage of the further consistency rule after usage of the initial consistency rule may be optional or automatic. For example, a user may, after viewing the results of the initial consistency rule, judge the results to be inadequate and start, for example, through a mouse-click, an adapting of the list of first labels, using the further consistency rule. On the other hand, also the system may make such a determination, and start the adapting of the list of first labels itself.
In a further refinement of method 100 or method 200, the method comprises a step of storing the expression and the association. The storing may be to a persistent storage, such as a hard disk, or a flash memory. The storing may also be to a volatile storage, such a Random Access Memory (RAM). The storing may take place at many convenient moments. For example, the storing may take place after or prior to any one of the displaying steps, 108 and 1 10.
Storing the association to a storage has the advantage that when the expression is later retrieved from the storage, the legend can be displayed again.
In a further refinement of method 100 or method 200, the first label is a reference for a data entity, and the method further comprises a step of evaluating the expression, the evaluating comprising substituting the data entity for the second label.
Before an evaluation takes place, the second label may be replaced with the first label, which in turn may be replaced by the data entity. It is also possible to directly replace the second label with the data entity.
Below a worked example of using the method according to the invention is presented. A user enters the expression "vat x sp", which in this case is a formula. The second labels "vat" and "sp" are identified. In this case the identification is done by parsing the syntax of this type of formula. Note that the character 'x' is used to indicate multiplication.
Upon identifying "vat" as a second label the system could query the data processing system for labels used in the data processing system. The list may be provided without a pre-selection based on consistency. For example, the system may provide a list like:
"sales_price" "value_added_ tax"
Alternatively it may first be determined that the first label "value_added_ tax" is consistent with the second label "vat". Possibly other first labels are also consistent with "vat", such as "Veterinary_Aptitude_Test_results", in case the data processing system is used by a veterinary school.
The consistent labels, including "value_added_ tax" are provided. Next the user selects "value_added_ tax" as a first label. When this selection is received an association is established between the second label "vat" and the first label "value_added_ tax". For example, an association can be established by recording the first label and the second label in respective fields of an appropriate data structure.
Similarly, the second label "sp" is identified, after which the first label "sales_price" is provided as being consistent. When a selection for "sales_price" is received an association between the second label "sp" and the first label "sales_price" is established.
Next the expression "vat x sp" is displayed. Also a legend is displayed, the legend could for example, comprise: vat => "value_added_ tax" sp => "sales_price"
The first label "value_added_ tax" could refer to a data entity, e.g., an actual value, stored somewhere in the data processing system. For example, "value_added_tax" may refer to the number 0.19, being the fraction of a base price which gives the amount of value added tax.
When the formula needs to be evaluate the second label "sp" may be replaced with a data entity, say $100, and the second label "vat" will be replaced with the data entity 0.19. The formula "vat x sp" would be evaluated as 0.19 * $100, which gives, after evaluation, $19. Note that the symbol 'x', which represents multiplication, is replaced for the purpose of evaluation, with the symbol '*'. The symbol '*' also indicates multiplication, but may for this particular user be less familiar than the 'x' symbol.
In an embodiment the formula could also be used to make a table. For example, the variable "sp" could be replaced by a collection of sales prices, as listed in a collection of records in a database.
Note that, the second label may be longer than the first label. For example, a user may use the second label "price not including vat", and through a selection associate it with the first label "sales_price". In this way, the user makes it easier to remember that the "sales_price" variable does not include value added tax, even though this is not ordinarily included in the naming of that variable. In this case a legend could include the line:
"price not including vat" => "sales_price"
Note that a user can use the terms that he finds convenient, for example, because they are easier to comprehend, oversee or remember, as is the case of "vat" for "value_added_ tax". Or because the second label is more informative, as is the case of the second label "price_not_including_vat" for the first label "sales_price".
The legend may be displayed automatically, or only on receiving an indication from a user. An indication may be a keyboard shortcut, a mouse click, a roll-over with the mouse, etc.
In a further embodiment the method of entering an expression is used in a text processing system. The system receives an expression, which in this embodiment is a string comprising one or more words. At least one of the words in the expression is an acronym. The second label is one of these acronyms. The second label can be identified automatically, for example, by recognizing a string from a glossary, or with help from the user, for example, by selecting the acronym with a mouse. The first label can also be selected from a glossary. The first label refers to the meaning of the acronym.
For example, upon receiving the expression "The GUID must be unique for each instance of the RO." The system provides the user the first label "Globally Unique Identifier" as a possible selection choice for the second label "GUID". Upon receiving a selection for this first label, an association is established. Similarly, the second label,
the term "RO", may be associated with the first label "Rights Object". The second labels can be identified by the system looking up GUID and RO in a glossary, alternatively, the user could select them as required for legend.
Upon later displaying of the expression "The GUID must be unique for each instance of the RO." a legend may be displayed. The legend in this case comprises:
GUID => "Globally Unique Identifier" RO => "Rights Object"
Note that apart from acronyms also abbreviations, or any other word in need of further definition, can be used for the second label.
An association can be used globally for other expressions that are received later. On the other hand an association can also be private to a single expression. For example, in the example given above, the user may indicate that the association between vat and "value_added_tax" is to be used for each expression that a system employing the method may further encounter. When, subsequently, a second expression is entered using the label vat, there is no need to provide a first label for the second label "vat". Optionally, a legend could be displayed, reminding the user of the global association between "vat" and "value_added_tax", he has set up earlier.
On the other hand, a user can also keep the association between vat and "value_added_tax" private to the current expression. When, subsequently, in a second application of the method, an expression is entered including the term "vat", the system would again provide a list of first labels that are consistent with "vat" and that are comprised in the data processing system. For example, in a second expression "vat" could then stand for "Veterinary_Aptitude_Test_results". For example, the second expression may define a graph, plotting the test results of applicants for a veterinary school over the past ten years.
A method according to the invention can be implemented as a computer program product, e.g., as software. For example, software comprising a number of processing means, such that each step of a method according to the invention can be achieved by at least one of the number of processing means. In one embodiment each specific
processing means of the number of processing means corresponds to a specific step of the method according to the invention. The programming means can be fabricated using various well known high-level programming languages, such as, C, C++ or Pascal. The programming means can alternatively be fabricated using low-level programming languages such as assembly, machine codes or microcode. A processing means can correspond to an architectural structure, such as a subroutine, or an object, but this is not necessary, and a processing means can also correspond to one or more lines of programming code, or part thereof. A processing means could also be comprised in a larger processing means addressing an ulterior goal of the software.
The method generates a data structure representing an expression comprising a second label and an association between the second label and a first label. Using such a data structure allows the expression with an appropriate legend to be displayed on the same device that was originally used for entering the expression as wells as on a different displaying device. The data structure can be stored or transmitted, e.g. over a network, such as the Internet, or a GSM communication network.
The data structure is suitable for use with a system according to the invention. The data structure is also suitable for use with a method according to the invention. Using the data structure, the expression can be evaluated in data processing system. Conveniently, a record carrier, such as a hard disk, a floppy disk, a flash memory device, etc, may be used to record the data structure on.
In Figure 3 a system 300 for entering an expression is illustrated. The system 300 comprises a data processing system 302. The data processing system comprises a first label 304. System 300 comprises a means for receiving an expression 306. The expression comprises a second label. System 300 comprises a means for providing the first label 308 and a means for receiving a selection for the first label 310. System 300 comprises a means for displaying a visual representation of the expression and means for displaying a legend, both of which are implemented in means for displaying 312.
During operation, the means for receiving an expression 306 receives an expression comprising a second label. This event is forwarded to the means for providing the first label 308, via a suitable connection. The means for providing the first label 308 has access to the first label 304. The means for providing the first label 308 provides the first label 304. The means for receiving a selection for the first label 310 receives a selection for the first label, the selection is relayed back to the means for providing the first label 308, via a suitable connection. The association is made in dependency on the selection. The means for displaying 312 displays both the expression and a legend. The legend comprises the first label, the second label and an association between the first label and the second label. The displaying of the legend is done in a suitable visual representation of the legend.
The present invention, as described in embodiments herein, may be implemented using a programmed processor executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic storage medium. However, those skilled in the art will appreciate that the processes described above can be implemented in any number of variations and in many suitable programming languages without departing from the present invention. For example, the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from the invention. Error trapping, enhancements and variations can be added without departing from the present invention. Such variations are contemplated and considered equivalent.
In Figure 4 a system 400 for entering an expression is shown. The system comprises a computer 402. The computer 402 is connected to a display 404 and a keyboard 408. The keyboard is connected to a mouse 410. Computer 402 is connected to a storage device 406. Computer 402 contains a processor for executing software.
Storage device 406 stores a collection of data items, e.g. numerical values. Computer 402 is connected to storage device 406 in order to provide access to the collection of data items. A user can enter an expression using keyboard 408. Computer 402 identifies in the expression a label, i.e. a second label. For example, computer 402 retrieves a list from storage device 406 comprising possible labels, and compares the list of possible labels with the entered expression. Alternatively, the user identifies the label in the expression by highlighting it using mouse 410. Computer 402 will display
the expression, including the label on display 404. Next, computer 402 retrieves from storage device 406 a list of labels used for referring to data items.
Computer 402 may directly display the list of labels used for referring, or portion thereof, on display 404. Optionally, computer 402 selects out of this list, all labels which are consistent with a consistency rule. For example, computer 402 compares each item on the list to the second label according to a consistency rule. The list of labels used for referring and consistent with the second label is displayed on display 404.
Using keyboard 408 and/or mouse 410, the users selects a first label from among the displayed possibilities. For example, the user highlights his choice for a first label.
Computer 402 receives this selection, for example, in the form of an event, e.g., a mouse click. Computer 402 makes a first data record and enters the first label and the second label into it. Computer 402 also makes a second data record comprising the expression. The first data record and the second data record are stored on storage device 406. The first data record and the second data record together make up a data structure. Along with storing the first data record and the second data record in a storage device 406, computer 402 may also keep the first data record and the second data record in a memory (not shown) comprised in computer 402.
At some point, for example, immediately after entering the expression, or possibly at some later moment, computer 402 displays the expression on display 404. To that end, the second data record is retrieved. Computer 402 may transform the expression to make it more suitable for display. For example, a formula may be typeset, and/or rendered for optimal viewing. Computer 402 automatically displays, in the vicinity of the expression a legend. To that end, computer 402 first retrieves the first data record from storage device 406. From the first data record the first and second label are retrieved. Next, computer 402 displays a message on display 404, e.g. in the form of a window, or message box, the first label and the second label. The relationship between the first label and the second label is in some way expressed, for example, using an arrow, or by placing the concepts close to each other.
When computer 402 evaluates the expression: The data entity to which the first label refers is retrieved from storage 406. The data entity is substituted for the second label. In this way the expression can be evaluated using an expression evaluator of the data system. Alternatively that substitution could be done in two stages. First a second label is replaced by the associated first label, next the first label is replaced by a corresponding data entity.
If the expression entered by the user includes some mathematical symbol, i.e. some pictorial representation of a mathematical concept, he may select the meaning for the mathematical symbol from a list of possible meanings. For example, on entering the symbol "+", the user may select first "modular addition" or he may select first label "arithmetical addition". On displaying the expression, computer 402 will display a legend. The legend will both show the pictorial representation, e.g. "+", and the selected meaning. In this case the first label refers to a method that is to be used when, while evaluating the expression, the symbol "+" is encountered.
Figure 5, 6 and 7 show three screenshots of an application of the method according to the invention, in the context of a database system.
The database system is implemented on a computer comprising a storage device. On the storage device multiple records with data are stored. A record comprises various fields. In this database system, fields can themselves comprise multiple fields. The format of a data record is specified in a data record definition.
In Figure 5 a user is working on the definition of a record for 'Bill'. Note that 'Bill' record can itself occur as a field in other records. A 'Bill' record has 5 fields: 'Customer', 'Billing lines', Total Amount (Excl. VAT)', 'VAT Amount' and Total Amount (Incl. VAT)'.
The field 'Billing lines' defines a table. The table has 5 columns. The columns take their information from other records in the database. The table has been defined using the labels: Item, Price, Quantity, Discount and Amount. Although these labels are associated with other labels, a legend is not currently shown, for these labels.
The screenshot shown in Figure 5 was taken while a user was filling in the field VAT Amount'. By typing '[=' the user has indicated that a formula is following. Using a special symbol, or character combination, is a convenient way to indicate to a system that an expression is following in which the method according to the invention is to be applied. That is, after' [=' an expression follows, which will comprise a second label, for which an association with a first label must be setup.
After the user has typed T', the system shows a windows marked 'Legend'. The label T' serves as a second label. The system has retrieved a list of labels from the database that can be used at this point in the field. Moreover, a selection has taken place; only those labels are shown which are consistent with the second label the user has entered. The window marked 'Legend', in figure 5, is showing a list of first labels that are consistent, according to the rule the system currently has in use, with the second label. Two fields are consistent with the second label T': Total Amount (Excl. VAT)', and Total Amount (Incl. VAT)'. Note that in the screenshot, the definitions for these two labels happen to be also shown. A label, appearing as a first label in a legend can itself refer to an expression, or to another label, or directly to some data object itself, etc.
At this point the user has a number of options. He could associate the second label T' to one of the two shown consistent first labels; for example, by clicking on one of the two shown labels in the legend. He may also continue typing, this will make the second label T' longer, and possibly more informative. Extending the label T' may also have as a consequence that one of the labels is no longer consistent. For example, the user may extend the label T to TotExVat'. If the system uses, e.g., the second consistency rule, then this means that only the field Total Amount (Excl. Btw)' remains consistent.
The user also has the option, to ask the system adapt the list of first labels that is now shown in the window headed 'Legend'. For example, the user may indicate that he wants the full list of all possible first labels, without taking consistency into account.
In Figure 6 a screenshot is shown of the application at some later moment than the screenshot taken for Figure 5. The expression that the user was creating in Figure 5 has been completed. The user has completed typing the second label to TotExVAT', at this point only a single first label is consistent with the second label. To continue
working with the second label TotExVAT' the sole consistent first label Total Amount (Excl. VAT)' may be selected to confirm the association between this first label and second label. Note that the system may also be configured such that this selection is made automatically. The user can now continue typing in an expression, using the term TotExVAT'. In evaluations the system will translate this into Total Amount (Excl. VAT)' when necessary.
In Figure 7 a screenshot is shown of the application at yet a later moment than the screenshot taken for Figure 6. The user has reconsidered his choice for second label and has continued working with the second label TotAmountExclVAT' to refer to the first label Total Amount (Excl. VAT)'. Using the invention it is easy for a user to change labels locally in an expression, as the method can shield the local choices from influencing other expression, if that is so desired. Note that the user has finished the expression for VAT Amount'. At this point, the user decided to review an expression, for which he has established an association earlier. Selecting the field Total Amount (Excl. VAT)' the system shows a legend, indicated in Figure 7 with the heading 'Legend'. The legend shows the second label 'Bill_Amount' which is used in the expression, and also shows the first label to which it refers. In this case, the label 'Bill_Amount' refers to a particular column in a table. The table is indicated with Billing Lines and the column with Amount. Note that the invention is also applicable in a situation such as here, where variables are ordered hierarchically. To refer to the column 'Amount' first the hierarchically higher structure 'Billing lines' need to be selected. The user, however, can simply use the second label 'Bill_amount' to refer to this hierarchically selected data entity.
The present invention could be implemented using special purpose hardware and/or dedicated processors. Similarly, general purpose computers, microprocessor based computers, digital signal processors, microcontrollers, dedicated processors, custom circuits, ASICS and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments of the present invention. In a claim enumerating several means, several of these means may be embodied by one and the same item of hardware
Those skilled in the art will appreciate that the program steps and associated data used to implement the embodiments described above can be implemented using disc
storage as well as other forms of storage, such as, for example, Read Only Memory (ROM) devices, Random Access Memory (RAM) devices, optical storage elements, magnetic storage elements, magneto-optical storage elements, flash memory and/or other equivalent storage technologies without departing from the present invention. Such alternative storage devices should be considered equivalents.
While the invention has been described in conjunction with specific embodiments, it is evident that many alternatives, modifications, permutations and variations will become apparent to those of ordinary skill in the art in light of the foregoing description. Accordingly, it is intended that the present invention embrace all such alternatives, modifications and variations.
Claims
1. A method for entering an expression (100) for use in a data processing system, the data processing system comprises at least one first label, the method comprises: receiving an expression comprising a second label (102); subsequently providing the first label (104); and receiving a selection for the first label (106); characterized in that, the method further comprises: generating a data structure representing the expression and an association between the second label and the first label (107); displaying a visual representation of the expression (108) and displaying a legend (1 10), the legend comprising the first label, the second label and the association between the first label and the second label.
2. A method as in Claim 1 , wherein the method further comprises determining that the first label is consistent with the second label (202) according to a consistency rule.
3. A method as in Claim 2, wherein the first label comprises a first string of characters and the second label comprises a second string of characters, and wherein the consistency rule comprises determining that the second string is shorter than the first string.
4. A method as in Claim 3, wherein the consistency rule comprises determining that the characters of the second string appear among the characters of the first string in a same order in which the characters of the second string appear in the second string.
5. A method as in any one of Claim 3 and 4, wherein the consistency rule comprises determining that a first character of the second string is equal to a first character of the first string.
6. A method as in any one of Claim 3, 4 and 5 wherein: the second string of characters starts with a starting string of characters and ends with an ending string of characters; and the consistency rule comprises determining that the first string starts with the starting string and that the first string ends with the ending string.
7. A method as in Claim 6, wherein the second string consists of the starting string and the ending string.
8. A method as in Claim 3, wherein: the consistency rule comprises determining that the first string starts with the second string.
9. A method as in any one of the preceding claims, wherein: the providing comprises providing a list of first labels according to an initial consistency rule; and the method further comprises adapting said list according to the consistency rule.
10. A method as in any one of the preceding claims, wherein the method further comprises storing the data structure in a storage medium.
1 1. A method as in any one of the preceding claims, wherein the first label being a reference for a data entity, and the method further comprises: evaluating the expression, the evaluating comprising substituting the data entity for the second label.
12. A computer program product comprising computer code for implementing the method as defined in any one of claim 1 to 1 1.
13. A data structure representing: an expression comprising a second label; and an association between the second label and a first label, wherein the data structure is suitable for use in a system comprising: a means for displaying a visual representation of the expression (312); and a means for displaying a legend (312), the legend comprising the first label , the second label and an association between the first label and the second label.
14. A system for entering an expression (300; 400) for use in a data processing system, the data processing system comprises at least one first label (304), the system for entering an expression comprises: means for receiving an expression (306) comprising a second label; means for providing the first label (308); and means for receiving a selection for the first label (310); wherein, during operational use, receiving an expression is done before providing the first label; characterized in that, the method further comprises: means for displaying a visual representation of the expression (312) and means for displaying a legend (312), the legend comprising the first label, the second label and an association between the first label and the second label.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08158883 | 2008-06-24 | ||
EP08158883.2 | 2008-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009156438A1 true WO2009156438A1 (en) | 2009-12-30 |
Family
ID=40996526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2009/057898 WO2009156438A1 (en) | 2008-06-24 | 2009-06-24 | Method and system for entering an expression |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2009156438A1 (en) |
Cited By (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US9606986B2 (en) | 2014-09-29 | 2017-03-28 | Apple Inc. | Integrated word N-gram and class M-gram language models |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9798393B2 (en) | 2011-08-29 | 2017-10-24 | Apple Inc. | Text correction processing |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US10332518B2 (en) | 2017-05-09 | 2019-06-25 | Apple Inc. | User interface for correcting recognition errors |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
US10403283B1 (en) | 2018-06-01 | 2019-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10496705B1 (en) | 2018-06-03 | 2019-12-03 | Apple Inc. | Accelerated task performance |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10607140B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10643611B2 (en) | 2008-10-02 | 2020-05-05 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10684703B2 (en) | 2018-06-01 | 2020-06-16 | Apple Inc. | Attention aware virtual assistant dismissal |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10748546B2 (en) | 2017-05-16 | 2020-08-18 | Apple Inc. | Digital assistant services based on device capabilities |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US10789945B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Low-latency intelligent automated assistant |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11010127B2 (en) | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US11023513B2 (en) | 2007-12-20 | 2021-06-01 | Apple Inc. | Method and apparatus for searching using an active ontology |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US11217251B2 (en) | 2019-05-06 | 2022-01-04 | Apple Inc. | Spoken notifications |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US11231904B2 (en) | 2015-03-06 | 2022-01-25 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11269678B2 (en) | 2012-05-15 | 2022-03-08 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11314370B2 (en) | 2013-12-06 | 2022-04-26 | Apple Inc. | Method for extracting salient dialog usage from live data |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11468282B2 (en) | 2015-05-15 | 2022-10-11 | Apple Inc. | Virtual assistant in a communication session |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11495218B2 (en) | 2018-06-01 | 2022-11-08 | Apple Inc. | Virtual assistant operation in multi-device environments |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070055922A1 (en) * | 2005-09-08 | 2007-03-08 | Microsoft Corporation | Autocompleting with queries to a database |
US7236923B1 (en) * | 2002-08-07 | 2007-06-26 | Itt Manufacturing Enterprises, Inc. | Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text |
US20070174045A1 (en) * | 2006-01-25 | 2007-07-26 | International Business Machines Corporation | Automatic acronym expansion using pop-ups |
US20080294982A1 (en) * | 2007-05-21 | 2008-11-27 | Microsoft Corporation | Providing relevant text auto-completions |
-
2009
- 2009-06-24 WO PCT/EP2009/057898 patent/WO2009156438A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7236923B1 (en) * | 2002-08-07 | 2007-06-26 | Itt Manufacturing Enterprises, Inc. | Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text |
US20070055922A1 (en) * | 2005-09-08 | 2007-03-08 | Microsoft Corporation | Autocompleting with queries to a database |
US20070174045A1 (en) * | 2006-01-25 | 2007-07-26 | International Business Machines Corporation | Automatic acronym expansion using pop-ups |
US20080294982A1 (en) * | 2007-05-21 | 2008-11-27 | Microsoft Corporation | Providing relevant text auto-completions |
Cited By (249)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US11928604B2 (en) | 2005-09-08 | 2024-03-12 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US8930191B2 (en) | 2006-09-08 | 2015-01-06 | Apple Inc. | Paraphrasing of user requests and results by automated digital assistant |
US8942986B2 (en) | 2006-09-08 | 2015-01-27 | Apple Inc. | Determining user intent based on ontologies of domains |
US9117447B2 (en) | 2006-09-08 | 2015-08-25 | Apple Inc. | Using event alert text as input to an automated assistant |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US11023513B2 (en) | 2007-12-20 | 2021-06-01 | Apple Inc. | Method and apparatus for searching using an active ontology |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US10381016B2 (en) | 2008-01-03 | 2019-08-13 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9865248B2 (en) | 2008-04-05 | 2018-01-09 | Apple Inc. | Intelligent text-to-speech conversion |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US10108612B2 (en) | 2008-07-31 | 2018-10-23 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US11348582B2 (en) | 2008-10-02 | 2022-05-31 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10643611B2 (en) | 2008-10-02 | 2020-05-05 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US10475446B2 (en) | 2009-06-05 | 2019-11-12 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US10795541B2 (en) | 2009-06-05 | 2020-10-06 | Apple Inc. | Intelligent organization of tasks items |
US11080012B2 (en) | 2009-06-05 | 2021-08-03 | Apple Inc. | Interface for a virtual digital assistant |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10741185B2 (en) | 2010-01-18 | 2020-08-11 | Apple Inc. | Intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8903716B2 (en) | 2010-01-18 | 2014-12-02 | Apple Inc. | Personalized vocabulary for digital assistant |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10706841B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Task flow identification based on user intent |
US9548050B2 (en) | 2010-01-18 | 2017-01-17 | Apple Inc. | Intelligent automated assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US11423886B2 (en) | 2010-01-18 | 2022-08-23 | Apple Inc. | Task flow identification based on user intent |
US10984326B2 (en) | 2010-01-25 | 2021-04-20 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10984327B2 (en) | 2010-01-25 | 2021-04-20 | New Valuexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10607141B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10607140B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US11410053B2 (en) | 2010-01-25 | 2022-08-09 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10692504B2 (en) | 2010-02-25 | 2020-06-23 | Apple Inc. | User profiling for voice input processing |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US10049675B2 (en) | 2010-02-25 | 2018-08-14 | Apple Inc. | User profiling for voice input processing |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10102359B2 (en) | 2011-03-21 | 2018-10-16 | Apple Inc. | Device access using voice authentication |
US10417405B2 (en) | 2011-03-21 | 2019-09-17 | Apple Inc. | Device access using voice authentication |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US11350253B2 (en) | 2011-06-03 | 2022-05-31 | Apple Inc. | Active transport based notifications |
US9798393B2 (en) | 2011-08-29 | 2017-10-24 | Apple Inc. | Text correction processing |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US11069336B2 (en) | 2012-03-02 | 2021-07-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US11269678B2 (en) | 2012-05-15 | 2022-03-08 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US10978090B2 (en) | 2013-02-07 | 2021-04-13 | Apple Inc. | Voice trigger for a digital assistant |
US10714117B2 (en) | 2013-02-07 | 2020-07-14 | Apple Inc. | Voice trigger for a digital assistant |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US9966060B2 (en) | 2013-06-07 | 2018-05-08 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US10657961B2 (en) | 2013-06-08 | 2020-05-19 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US11048473B2 (en) | 2013-06-09 | 2021-06-29 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10769385B2 (en) | 2013-06-09 | 2020-09-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US11314370B2 (en) | 2013-12-06 | 2022-04-26 | Apple Inc. | Method for extracting salient dialog usage from live data |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US10497365B2 (en) | 2014-05-30 | 2019-12-03 | Apple Inc. | Multi-command single utterance input method |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US10417344B2 (en) | 2014-05-30 | 2019-09-17 | Apple Inc. | Exemplar-based natural language processing |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10878809B2 (en) | 2014-05-30 | 2020-12-29 | Apple Inc. | Multi-command single utterance input method |
US10169329B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Exemplar-based natural language processing |
US10714095B2 (en) | 2014-05-30 | 2020-07-14 | Apple Inc. | Intelligent assistant for home automation |
US11257504B2 (en) | 2014-05-30 | 2022-02-22 | Apple Inc. | Intelligent assistant for home automation |
US10699717B2 (en) | 2014-05-30 | 2020-06-30 | Apple Inc. | Intelligent assistant for home automation |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US10657966B2 (en) | 2014-05-30 | 2020-05-19 | Apple Inc. | Better resolution when referencing to concepts |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US10083690B2 (en) | 2014-05-30 | 2018-09-25 | Apple Inc. | Better resolution when referencing to concepts |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US10904611B2 (en) | 2014-06-30 | 2021-01-26 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9668024B2 (en) | 2014-06-30 | 2017-05-30 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10431204B2 (en) | 2014-09-11 | 2019-10-01 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US9606986B2 (en) | 2014-09-29 | 2017-03-28 | Apple Inc. | Integrated word N-gram and class M-gram language models |
US10390213B2 (en) | 2014-09-30 | 2019-08-20 | Apple Inc. | Social reminders |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US10438595B2 (en) | 2014-09-30 | 2019-10-08 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10453443B2 (en) | 2014-09-30 | 2019-10-22 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9986419B2 (en) | 2014-09-30 | 2018-05-29 | Apple Inc. | Social reminders |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US11556230B2 (en) | 2014-12-02 | 2023-01-17 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US11231904B2 (en) | 2015-03-06 | 2022-01-25 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10529332B2 (en) | 2015-03-08 | 2020-01-07 | Apple Inc. | Virtual assistant activation |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US10311871B2 (en) | 2015-03-08 | 2019-06-04 | Apple Inc. | Competing devices responding to voice triggers |
US10930282B2 (en) | 2015-03-08 | 2021-02-23 | Apple Inc. | Competing devices responding to voice triggers |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US11087759B2 (en) | 2015-03-08 | 2021-08-10 | Apple Inc. | Virtual assistant activation |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US11468282B2 (en) | 2015-05-15 | 2022-10-11 | Apple Inc. | Virtual assistant in a communication session |
US11127397B2 (en) | 2015-05-27 | 2021-09-21 | Apple Inc. | Device voice control |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10681212B2 (en) | 2015-06-05 | 2020-06-09 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US11010127B2 (en) | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US11526368B2 (en) | 2015-11-06 | 2022-12-13 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10354652B2 (en) | 2015-12-02 | 2019-07-16 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10942703B2 (en) | 2015-12-23 | 2021-03-09 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US11069347B2 (en) | 2016-06-08 | 2021-07-20 | Apple Inc. | Intelligent automated assistant for media exploration |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US11037565B2 (en) | 2016-06-10 | 2021-06-15 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10942702B2 (en) | 2016-06-11 | 2021-03-09 | Apple Inc. | Intelligent device arbitration and control |
US10580409B2 (en) | 2016-06-11 | 2020-03-03 | Apple Inc. | Application integration with a digital assistant |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US11152002B2 (en) | 2016-06-11 | 2021-10-19 | Apple Inc. | Application integration with a digital assistant |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10553215B2 (en) | 2016-09-23 | 2020-02-04 | Apple Inc. | Intelligent automated assistant |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US11656884B2 (en) | 2017-01-09 | 2023-05-23 | Apple Inc. | Application integration with a digital assistant |
US10741181B2 (en) | 2017-05-09 | 2020-08-11 | Apple Inc. | User interface for correcting recognition errors |
US10332518B2 (en) | 2017-05-09 | 2019-06-25 | Apple Inc. | User interface for correcting recognition errors |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10847142B2 (en) | 2017-05-11 | 2020-11-24 | Apple Inc. | Maintaining privacy of personal information |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10789945B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Low-latency intelligent automated assistant |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10748546B2 (en) | 2017-05-16 | 2020-08-18 | Apple Inc. | Digital assistant services based on device capabilities |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10909171B2 (en) | 2017-05-16 | 2021-02-02 | Apple Inc. | Intelligent automated assistant for media exploration |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US11217255B2 (en) | 2017-05-16 | 2022-01-04 | Apple Inc. | Far-field extension for digital assistant services |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US10720160B2 (en) | 2018-06-01 | 2020-07-21 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10403283B1 (en) | 2018-06-01 | 2019-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US11009970B2 (en) | 2018-06-01 | 2021-05-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US10984798B2 (en) | 2018-06-01 | 2021-04-20 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US11495218B2 (en) | 2018-06-01 | 2022-11-08 | Apple Inc. | Virtual assistant operation in multi-device environments |
US10684703B2 (en) | 2018-06-01 | 2020-06-16 | Apple Inc. | Attention aware virtual assistant dismissal |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US10496705B1 (en) | 2018-06-03 | 2019-12-03 | Apple Inc. | Accelerated task performance |
US10944859B2 (en) | 2018-06-03 | 2021-03-09 | Apple Inc. | Accelerated task performance |
US10504518B1 (en) | 2018-06-03 | 2019-12-10 | Apple Inc. | Accelerated task performance |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11217251B2 (en) | 2019-05-06 | 2022-01-04 | Apple Inc. | Spoken notifications |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11360739B2 (en) | 2019-05-31 | 2022-06-14 | Apple Inc. | User activity shortcut suggestions |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2009156438A1 (en) | Method and system for entering an expression | |
JP5106840B2 (en) | Modeling data elements | |
US7587378B2 (en) | Embedded rule engine for rendering text and other applications | |
US8141128B2 (en) | Methods and apparatus for building and executing natural language workflow functions | |
US20050125715A1 (en) | Method of saving data in a graphical user interface | |
US6697999B1 (en) | Computer-based automatic document formatting method | |
US20050015730A1 (en) | Systems, methods and computer program products for identifying tab order sequence of graphically represented elements | |
US20080028289A1 (en) | Form filling lens | |
US20050091577A1 (en) | Information integration system | |
Bourg | Excel Scientific and Engineering Cookbook: Adding Excel to Your Analysis Arsenal | |
CN108537644A (en) | A kind of method and apparatus of customer service recommended products | |
US20210182325A1 (en) | Visual Presentation of Search Results | |
Held et al. | Microsoft Excel Functions and Formulas with Excel 2019/Office 365 | |
US20070089065A1 (en) | Secondary navigation | |
Benyon et al. | Critical Issues in User Interface Systems Engineering | |
US20070300176A1 (en) | Entering Information in Input Field | |
Miller et al. | Inky: a sloppy command line for the web with rich visual feedback | |
CN111861640A (en) | Intelligent book selection system, book selection method, storage medium and intelligent book selection terminal | |
CN116088693A (en) | Input processing method, system, electronic device and readable storage medium | |
JP6965535B2 (en) | Learning support device, learning support method and program | |
US7010754B2 (en) | Method, system and user interface for inputting and manipulating tokenized strings | |
Urtis | Excel VBA 24-hour trainer | |
US20080162458A1 (en) | Dynamic construction of selection screens | |
Smith et al. | Beginning Access 2002 VBA | |
CN113360225A (en) | Graphical user interface for non-hierarchical file systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09769287 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09769287 Country of ref document: EP Kind code of ref document: A1 |