WO2009156438A1 - Method and system for entering an expression - Google Patents

Method and system for entering an expression Download PDF

Info

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
Application number
PCT/EP2009/057898
Other languages
French (fr)
Inventor
Johan Lamberts
Bernardus Zegveld
Original Assignee
Llinxx
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Llinxx filed Critical Llinxx
Publication of WO2009156438A1 publication Critical patent/WO2009156438A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, 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.
PCT/EP2009/057898 2008-06-24 2009-06-24 Method and system for entering an expression WO2009156438A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08158883.2 2008-06-24
EP08158883 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)

* Cited by examiner, † Cited by third party
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
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
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
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9697822B1 (en) 2013-03-15 2017-07-04 Apple Inc. System and method for updating an adaptive speech recognition model
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
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
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
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
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
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
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
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
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
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
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
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
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
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
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
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10403283B1 (en) 2018-06-01 2019-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
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
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
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
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
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
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
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
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
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
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
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
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
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11023513B2 (en) 2007-12-20 2021-06-01 Apple Inc. Method and apparatus for searching using an active ontology
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US11928604B2 (en) 2005-09-08 2024-03-12 Apple Inc. Method and apparatus for building an intelligent automated assistant
US10318871B2 (en) 2005-09-08 2019-06-11 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
US10108612B2 (en) 2008-07-31 2018-10-23 Apple Inc. Mobile device having human language translation capability with positional feedback
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11348582B2 (en) 2008-10-02 2022-05-31 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
US11080012B2 (en) 2009-06-05 2021-08-03 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 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
US10475446B2 (en) 2009-06-05 2019-11-12 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US10741185B2 (en) 2010-01-18 2020-08-11 Apple Inc. Intelligent automated assistant
US8892446B2 (en) 2010-01-18 2014-11-18 Apple Inc. Service orchestration for intelligent automated assistant
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10706841B2 (en) 2010-01-18 2020-07-07 Apple Inc. Task flow identification based on user intent
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US9548050B2 (en) 2010-01-18 2017-01-17 Apple Inc. 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
US11410053B2 (en) 2010-01-25 2022-08-09 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
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
US10049675B2 (en) 2010-02-25 2018-08-14 Apple Inc. User profiling for voice input processing
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
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
US11350253B2 (en) 2011-06-03 2022-05-31 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
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
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
US11069336B2 (en) 2012-03-02 2021-07-20 Apple Inc. Systems and methods for name pronunciation
US10134385B2 (en) 2012-03-02 2018-11-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
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
US10199051B2 (en) 2013-02-07 2019-02-05 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
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
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
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
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10417344B2 (en) 2014-05-30 2019-09-17 Apple Inc. Exemplar-based natural language processing
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10169329B2 (en) 2014-05-30 2019-01-01 Apple Inc. Exemplar-based natural language processing
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
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US10714095B2 (en) 2014-05-30 2020-07-14 Apple Inc. Intelligent assistant for home automation
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10699717B2 (en) 2014-05-30 2020-06-30 Apple Inc. Intelligent assistant for home automation
US10083690B2 (en) 2014-05-30 2018-09-25 Apple Inc. Better resolution when referencing to concepts
US10657966B2 (en) 2014-05-30 2020-05-19 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
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
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9668024B2 (en) 2014-06-30 2017-05-30 Apple Inc. Intelligent automated assistant for TV user interactions
US10904611B2 (en) 2014-06-30 2021-01-26 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
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
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
US10453443B2 (en) 2014-09-30 2019-10-22 Apple Inc. Providing an indication of the suitability of speech recognition
US10438595B2 (en) 2014-09-30 2019-10-08 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
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
US10311871B2 (en) 2015-03-08 2019-06-04 Apple Inc. Competing devices responding to voice triggers
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
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10930282B2 (en) 2015-03-08 2021-02-23 Apple Inc. Competing devices responding to voice triggers
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
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US11127397B2 (en) 2015-05-27 2021-09-21 Apple Inc. Device voice control
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
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10681212B2 (en) 2015-06-05 2020-06-09 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
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
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
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
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US11526368B2 (en) 2015-11-06 2022-12-13 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
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10942703B2 (en) 2015-12-23 2021-03-09 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
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 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
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
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
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
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10580409B2 (en) 2016-06-11 2020-03-03 Apple Inc. Application integration with a digital assistant
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
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
US10942702B2 (en) 2016-06-11 2021-03-09 Apple Inc. Intelligent device arbitration and control
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
US11656884B2 (en) 2017-01-09 2023-05-23 Apple Inc. Application integration with a digital assistant
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
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
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10847142B2 (en) 2017-05-11 2020-11-24 Apple Inc. Maintaining privacy of personal information
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10789945B2 (en) 2017-05-12 2020-09-29 Apple Inc. Low-latency intelligent automated assistant
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
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
US10909171B2 (en) 2017-05-16 2021-02-02 Apple Inc. Intelligent automated assistant for media exploration
US10748546B2 (en) 2017-05-16 2020-08-18 Apple Inc. Digital assistant services based on device capabilities
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
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
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
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
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
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10684703B2 (en) 2018-06-01 2020-06-16 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
US11009970B2 (en) 2018-06-01 2021-05-18 Apple Inc. Attention aware virtual assistant dismissal
US11495218B2 (en) 2018-06-01 2022-11-08 Apple Inc. Virtual assistant operation in multi-device environments
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
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
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
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
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
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
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut 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
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
CN1495609B (en) Method for providing contextual sensing tool and helping content in computer generated document
Johnson Access 2013 on demand
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
US20050015730A1 (en) Systems, methods and computer program products for identifying tab order sequence of graphically represented elements
US6209006B1 (en) Pop-up definitions with hyperlinked terms within a non-internet and non-specifically-designed-for-help program
US20080028289A1 (en) Form filling lens
US20050091577A1 (en) Information integration system
Frye Microsoft Excel 2016 step by step
Bourg Excel Scientific and Engineering Cookbook: Adding Excel to Your Analysis Arsenal
US20210182325A1 (en) Visual Presentation of Search Results
Cunningham et al. Developing language processing components with GATE
Held et al. Microsoft Excel Functions and Formulas with Excel 2019/Office 365
US20070089065A1 (en) Secondary navigation
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
US7010754B2 (en) Method, system and user interface for inputting and manipulating tokenized strings
US20080162458A1 (en) Dynamic construction of selection screens
Smith et al. Beginning Access 2002 VBA
Tablan et al. Gate, an Application Developer’s Guide

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