Semantic Industry Terminology
By adopting a triple configuration with description logic in computer memory and a combination of a voice enable device and a triple server, the problem of data processing burden and inefficiency of voice recognition and triple storage is solved, and efficient Voice recognition and triple storage, suitable for different client architecture environments.
Patent Information
- Application Number
- CN201980066773.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-10
- Filing Date
- 2019-10-10
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2039-10-10
AI Technical Summary
When existing computer memory configuration methods deal with complex speech recognition and triple storage, there are problems such as excessive data processing burden and low query efficiency, especially in thin client architectures, voice processing and triple processing uninstallation. Incompleteness, resulting in waste of resources and delay in querying.
Using triple-tubes with description logic to configure computer memory, through the combination of voice enable device and triple-tube server, the natural language processing voice recognition engine is used to resolve voice into triple-tubes, and semantic queries are performed on the sound server, combining thin A hybrid model of client and fat client architectures to reduce network queries and improve local storage efficiency.
It realizes efficient data processing in speech recognition and triple storage, reduces data processing burden and query delay, improves the system's response speed and resource utilization, and is suitable for different client architecture environments.
Smart Images

Figure CN112823332B_ABST
Abstract
Description
Background Art
[0001] The development of the EDVAC computer system in 1948 is often considered the beginning of the computer age. Since then, computer systems have evolved into complex devices. These complex devices include complex computer memory. Methods and systems for efficiently using computer memory continue to develop. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Figure 1 A network diagram illustrating an example system for configuring computer memory according to an embodiment of the present invention is shown.
[0003] Figure 2 A line graph showing a graph of semantic triples.
[0004] Figure 3 A functional block diagram of an example device for configuring computer memory in a thin client architecture according to an embodiment of the present invention is shown.
[0005] Figure 4 A block diagram of automated computing machinery including an example of a computer used as a sound server to configure computer memory of a speech-enabled device is shown according to an embodiment of the present invention.
[0006] Figure 5 A block diagram of automated computing machinery including an example of a computer used as a triple server configuring computer memory is shown according to an embodiment of the present invention.
[0007] Figure 6 A block diagram of a computer memory system is shown.
[0008] Figure 7 A functional block diagram of an example device for configuring computer memory in a thick client architecture according to an embodiment of the present invention is shown.
[0009] Figure 8 A flow chart illustrating an example method of configuring computer memory according to an embodiment of the invention is shown.
[0010] Fig. 9 A diagram of a language-specific triple store is shown, where a general language triple store and two industry term triple stores are logically connected segments of the same overall diagram.
[0011] Fig.10 Separate graphs are shown for a common language triple store, medical industry terminology in English, and legal industry terminology in English.
[0012] Fig.11A flow chart illustrating another example method of configuring computer memory according to an embodiment of the present invention is shown.
[0013] Fig.12 A flow chart illustrating another example method of configuring computer memory according to an embodiment of the present invention is shown. DETAILED DESCRIPTION
[0014] from Figure 1 Initially, example methods, apparatus, and products for configuring computer memory are described with reference to the accompanying drawings. Figure 1 A network diagram illustrating an example system for configuring computer memory according to an embodiment of the present invention is shown. Figure 1 In the example of the present invention, at least one speech-enabled device (152), a triplet server (157), and a voice server (151) are used to implement the configuration of the computer memory. The speech-enabled device is an automatic computing machine configured to accept and recognize speech from a user and to express voice prompts and voice responses to the user. Figure 1 The voice-enabled devices in the example include a desktop computer (107), a smart watch (112), a mobile phone (110), and a laptop computer (126). In this example, each voice-enabled device is coupled to communicate data with a triplet server (157) and a voice server (151) via a network (100). The desktop computer is connected via a wired connection (120), while the smart watch (112), the mobile phone (110), and the laptop computer (126) are connected via wireless connections (114, 116, 118), respectively.
[0015] Figure 1 The entire example computer system shown in is generally operated to configure computer memory (169) according to an embodiment of the present invention by parsing words (509) of digitized speech (508) from a conversation (313) into triples (752) describing logic. Computer memory includes most forms of computer memory such as cache, random access memory ("RAM"), disk storage, etc. The computer memory so configured is generally resident on the speech-enabled device, or as shown in this document (169), resident on one or more triple servers (157). Figure 1The overall example system also generally operates to determine whether the parsed triple (752) is recorded in a general language triple store (323), determine whether the parsed triple is recorded in an industry term triple store (325), and if the parsed triple is not recorded in either the general language triple store or the industry term triple store, record the parsed triple in the industry term triple store. The general language triple store (323) consists of structured definitions of words that are not specific to any particular knowledge domain, wherein each structured definition of the general language store is implemented with a triple of description logic. In a similar manner, the industry term triple store (325) consists of structured definitions of words that are specific to a particular knowledge domain, wherein each structured definition of the industry term triple store is implemented with a triple of description logic.
[0016] The words (509) of the digitized speech (508) are used for recognized speech (315) from the conversation (313). The speech used for recognition can be an entire conversation, where, for example, two people speaking are in the same room and the entire conversation is captured by a microphone on a speech-enabled device. The range of speech used for recognition can be reduced by providing only one side of the conversation to the speech-enabled device, such as only through a microphone on a headset (105). The range of speech used for recognition can be further reduced by only providing speech that responds to prompts from a VoiceXML conversation executed on the speech-enabled device for recognition. Due to the reduction in the range of speech used for recognition, the data processing burden is reduced on the entire system, but in at least some embodiments, recognizing the entire conversation and streaming all words in the conversation on the display (110) is still an option.
[0017] The speech from the conversation (313) is recognized as digitized speech by operation of a natural language processing speech recognition ("NLP-SR") engine (153), which is shown here as being disposed on a voice server (151), but is also suitable for installation on a speech-enabled device. The NLP-SR engine also performs parsing of the words (509) of the thus digitized speech (508) into triples (752) of description logic.
[0018] A triple is a three-part statement expressed in logical form. Depending on the context, different terms are used to refer effectively to the same three parts of a statement in logic. In first-order logic, these parts are called constants, unary predicates, and binary predicates. In the Web Ontology Language ("OWL"), these parts are individuals, classes, and properties. In some description logics, these parts are called individuals, concepts, and roles.
[0019] In this document, the elements of a triple are referred to as subject, predicate, and object, and are represented as follows: <subject><predicate><object>. There are many expression patterns for triples. The elements of a triple can be represented as a Uniform Resource Locator ("URL"), a Uniform Resource Identifier ("URI"), or an International Resource Identifier ("IRI"). For example, a triple can be represented using N-Quads, Turtle Syntax, TriG, Javascript Object Notation ("JSON"). The expression used here, subject-predicate-object in angle brackets, is an abstract syntax form that is optimized for human readability rather than machine processing, but its substantive content is correct for the expression of triples. Using this abstract syntax, here is an example of a triple:
[0020] <bob><is a><person>
[0021] <bob><is a friend of> <alice>
[0022] <bob><born on> <July 4, 1990>
[0023] <bob><like(is interested in)><Mona Lisa>
[0024] <Mona Lisa><was created by><Leonardo da Vinci>
[0025] The video "La Joconde à Washington" is about the Mona Lisa.
[0026] The same item can be referenced in multiple triples. In this example, Bob is the subject of four triples, while Mona Lisa is the subject of one triple and the object of two triples. This ability to have the same item be the subject of one triple and the object of another enables connections between triples, and the connected triples form a graph.
[0027] To further explain the relationship between triples and graphs, Figure 2 A line graph of a graph (600) is shown. Figure 2 The exemplary diagram of implements the example triples described above for Bob and Mona Lisa in graphical form. Figure 2 In the example, the graph edges (604, 608, 612, 616, 620, 624) represent the relationship between the nodes, that is, the predicates <is>, <friend is>, <born in>, <like>, <creator is>, and <narrated by>. The nodes themselves represent the subject and object of the triples, <bob>, <person>, <alice>, <July 4, 1990>, <Mona Lisa>, <Leonardo da Vinci> and <Video "Mona Lisa in Washington">.
[0028] In the knowledge representation system, the knowledge represented by the graph of triples includes, for example, the knowledge representation implemented in Prolog databases, Lisp data structures, or the knowledge representation implemented in RDF-oriented ontologies in RDFS, OWL and other ontology languages. Search and inference are realized for such graphs by a search engine configured to perform semantic queries in, for example, Prolog or SPARQL. Prolog is a general logic programming language. SPARQL is a recursive acronym for "SPARQL protocol and RDF query language". Prolog supports queries for triples of connections expressed as statements and rules in Prolog databases. SPARQL supports queries for ontologies expressed in RDFS or OWL or other RDF-oriented ontologies. About Prolog, SPARQL, RDF, etc., these are examples of the technology of explaining the exemplary embodiments of the present invention. Therefore, this is not a limitation of the present invention. According to the embodiment, useful knowledge representation can take many forms that those skilled in the art may think of now or in the future, and all of these are now completely within the scope of the present invention and will always be within the scope of the present invention.
[0029] Description logics are members of the family of formal knowledge representation languages. Some description logics are more expressive than propositional logic, but less expressive than first-order logic. In contrast to first-order logic, reasoning problems in description logics are generally decidable. Therefore, efficient decision procedures can be implemented for search and inference problems in description logics. There are general, spatial, temporal, spatiotemporal, and fuzzy description logics, and each is characterized by a different balance between expressiveness and reasoning complexity by supporting a different set of mathematical constructors.
[0030] Search queries are set along a semantic scale. For example, traditional web searches are set at zero on this scale, with no semantics and no structure. A traditional web search for the keyword "derivative" returns HTML documents that discuss literary concepts and algorithmic processes of derived works. A traditional web search for the keyword "differential" returns HTML pages that describe car parts and algorithmic functions.
[0031] Other queries are arranged along the midpoint of the scale, some semantics, some structure, not quite complete. This is actually the current trend in web search. Such systems can be called executable rather than decidable. From some perspectives, decidability is not the main concern. For example, in many web applications, the data sets are huge, and they simply do not need a 100% correct model to analyze data that may have been crawled, scraped, and transformed into a structure by some heuristic program that is not perfect in itself. People use Google because it can find good answers most of the time, even if it can't always find the perfect answer. In this chaotic search environment, provable correctness is not a key goal.
[0032] Other categories of queries are set where correctness of results is critical and input determinability is important. A user who is a telephone agent in a data center speaking by phone with an automotive customer discussing a front differential does not care about the need to sort through algorithm results to find the correct term. Such a user requires the correct definition of automotive terms, and the user requires query results for the conversation in real time (i.e., for example, within seconds).
[0033] In formal logic, a system is decidable if there is a method that, for every assertion that can be expressed in the system, can decide whether the assertion is valid within the system. In practice, queries against decidable description logics will not loop infinitely, crash, return no answer, or return incorrect answers. Decidable description logics support clear, unambiguous, and machine-processable data models or ontologies. Undecidable systems do not support clear, unambiguous, and machine-processable data models or ontologies. Decidable description logics support algorithms by which a computer system can determine the equivalence of classes defined in the logic. Undecidable systems do not support such algorithms. Decidable description logics can be implemented in C, C++, SQL, Lisp, RDF / RDFS / OWL, etc. In the RDF space, subdivisions of OWL vary in terms of decidability. Full OWL does not support decidability. OWL DL, on the other hand, supports decidability.
[0034] To further illustrate, Figure 3 A functional block diagram of an example device for configuring computer memory in a thin client architecture according to an embodiment of the present invention is shown. A thin client architecture is a client-server architecture in which at least some, perhaps most, perhaps all of speech processing and triplet processing are offloaded from the client to the server. The thinness of the thin client varies. Figure 3 The voice-enabled device in the example is a thin client in which most voice processing is offloaded to a voice server (151). The voice-enabled device (152) accepts voice input (315, 174), but then transmits the voice input over a VOIP connection (216) to the voice server (151) which performs all voice processing. In this example, the voice-enabled device implements some capabilities for triple processing (323, 325) and query execution (298), but none of the above capabilities are absolutely necessary in a thin client. Devices with reduced storage capacity, such as smart watches or mobile phones, can be implemented without a semantic query engine (298) and without a triple store (323, 325), passing queries only to a triple server (157) which itself performs all triple storage and all query processing.
[0035] exist Figure 3 In a specific example of , the speech-enabled device occupies a middle ground of the thin client architecture. It supports almost no speech processing, but it does support some triple processing. The speech-enabled device in this example performs triple processing and query execution only against the triple store in RAM (168), leaving large-scale storage to the triple server (157). The semantic query engine loads the triple store as needed to respond to queries. Therefore, there are query omissions. When the semantic query engine cannot satisfy a query using the triple store in RAM, it does not infer failure. Instead, it passes the query to the triple server, and if the triple server is able to satisfy the query using the triples on the server, it passes both the query results and the triples that satisfy the query back to the speech-enabled device, which are then stored in RAM on the speech-enabled device for future use against similar queries. Over time, this architecture builds on a speech-enabled device query store containing frequently used triples and reduces the need for expensive query trips over the network to the triple server, while running on the client side with a relatively thin layer of computing resources. This is on a very thin client with no triple store at all and the following about Figure 5 Describes the tradeoffs between thick clients.
[0036] Figure 3 An example device includes a voice-enabled device (152) and a voice server (151) connected for data communications via a data communications network (100) via a VOIP connection (216). A voice-enabled application (195) runs on the voice-enabled device (152). The voice-enabled application (195) may be implemented as a collection or sequence of X+V or SALT documents executed on a voice-enabled browser, a Java voice application executed on a Java virtual machine, or a voice-enabled application implemented in other technologies as would occur to one skilled in the art. Figure 3 The example voice-enabled device also includes a sound card (174), which is an example of an I / O adapter that is specifically designed to accept analog audio signals from a microphone (176) and convert the audio analog signals to digital form for further processing by a codec (183).
[0037] VOIP stands for "Voice Over Internet Protocol", a generic term for routing voice over IP-based data communications networks. Voice data flows over general-purpose packet-switched data communications networks, rather than over traditional dedicated circuit-switched voice transmission lines. The protocol used to carry voice signals over IP data communications networks is often referred to as the "Voice Over Internet Protocol" or "VOIP" protocol. VOIP traffic can be deployed over any IP data communications network, including data communications networks that lack connectivity to the rest of the Internet, such as deployed over a private building-wide local area data communications network or "LAN".
[0038] Many protocols can be used to implement VOIP, including, for example, types of VOIP implemented with the IETF's Session Initiation Protocol ("SIP") and the ITU's protocol known as "H.323." SIP clients use TCP and UDP port 5060 to connect to a SIP server. SIP itself is used to establish and tear down calls for voice transmission. VOIP with SIP then uses RTP to transmit the actual encoded voice. Similarly, H.323 is an umbrella recommendation from the standards division of the International Telecommunication Union that defines protocols for providing audio-visual communication sessions over any packet data communications network.
[0039] The speech-enabled application (195) is a user-level, speech-enabled client-side computer program that presents a voice interface to the user (128), provides audio prompts and responses (314), and accepts input recognition speech (315). The speech-enabled application (195) provides a voice interface through which a user can provide speech for oral recognition through a microphone (176), and the speech is digitized through the audio amplifier (185) and encoder / decoder ("codec") (183) of the sound card (174), and the digitized recognition speech is provided to the sound server (151). The speech-enabled application (195) packages the digitized speech into a recognition request message according to the VOIP protocol and sends the speech to the sound server (151) through a VOIP connection (216) on the network (100).
[0040] The voice server (151) provides voice recognition services for voice-enabled devices by accepting dialog commands, VoiceXML segments, etc., and returning voice recognition results (including text representing recognized speech, text used as variable values in the dialog, and output from executing semantic interpretation scripts and voice prompts). The voice server (151) includes a computer program that provides text-to-speech ("TTS") conversion for voice prompts and voice responses to user input in a voice-enabled application such as an X+V application, a SALT application, or a Java Voice application.
[0041] Figure 3 The speech-enabled device (152) in the example includes a semantic query engine (298), i.e., a module of automatic computing machinery that accepts a triple store (323, 325) from a speech-enabled application (195) and performs a semantic query (340) against the triple store (323, 325). The speech-enabled application (195) formulates a semantic query using user input from speech (315), GUI, keyboard, mouse (180, 181), etc. A semantic query is a query designed and implemented for structured data. A semantic query utilizes logical operators, namespaces, pattern matching, subclassing, transitive relationships, semantic rules, and contextual full-text search. A semantic query is used for named graphs, linked data, or triples. In an embodiment of the present invention, triples are typically linked to form a graph. This enables semantic queries to process actual relationships between information items and infer answers from a network of data. Semantic query is in contrast to semantic search, which attempts to use semantics in unstructured text to improve the meaning of search results with varying levels of success.
[0042] There are example formulations of semantic queries in C, C++, Java, Prolog, Lisp, etc. For example, the W3C's semantic web technology stack provides SPARQL to formulate semantic queries with a syntax similar to SQL. Semantic queries are used for data that is structured in triple stores, graph databases, semantic Wikipedias, natural languages, and artificial intelligence systems. As described above, semantic queries are used for structured data, and in the specific example of this case, the structured data is words described and defined in semantic triples connected in a manner consistent with a description logic. In many embodiments of the present invention, semantic queries are asserted against data that is structured according to a description logic that implements determinability.
[0043] exist Figure 3 In an example device of the invention, a voice-enabled device is coupled to communicate data with a triple server (157) via a communications adapter (167), a wireless connection (118), a data communications network (100), and a wired connection (121). The triple server (157) provides a bulk backup for a triple store (323, 325). A triple server is a configuration of automated computing machinery that serializes triples and stores the serialized triples in a relational database, table, file, or the like. The triple server retrieves such serialized triples from a non-volatile storage device upon request, parses the serialized triples into a triple store, and provides such a triple store to the voice-enabled device upon request for use in a system that utilizes triples when configuring computer memory according to an embodiment of the invention.
[0044] According to an embodiment of the present invention, particularly in a thin client architecture, configuring a computer memory with triples of description logic can be implemented using one or more voice servers. A voice server is a computer that provides speech recognition and speech synthesis, i.e., an automatic computing machine. Therefore, for further explanation, Figure 4 A block diagram of automated computing machinery including an example of a computer used as a sound server (151) for configuring computer storage of a speech-enabled device according to an embodiment of the present invention is shown. Figure 2 The voice server (151) includes at least one computer processor (156) or "CPU" and random access memory (168) ("RAM"), which is connected to the processor (156) and other components of the voice server through a high-speed memory bus (166) and a bus adapter (158).
[0045] Stored in RAM (168) is a voice server application (188), which is a module of computer program instructions capable of operating a voice server in an operating system configured to configure memory according to an embodiment of the present invention. The voice server application (188) provides speech recognition services for the multimodal device by accepting speech recognition requests and returning speech recognition results, including text representing recognized speech, text used as variable values in a conversation, and text as a string representation of a script for semantic interpretation. The voice server application (188) also includes computer program instructions that provide text-to-speech ("TTS") conversion for voice prompts and voice responses to user input in a voice-enabled application such as, for example, a voice-enabled browser, an X+V application, a SALT application, or a Java Voice application.
[0046] The voice server application (188) may be implemented as a web server implemented in Java, C++, Python, Perl, or any language supporting X+V, SALT, VoiceXML, or other voice-enabled languages by providing responses to HTTP requests from X+V clients, SALT clients, Java voice clients, or other voice-enabled client devices. For another example, the voice server application (188) may be implemented as a Java server running on a Java virtual machine (102) and supporting a Java voice framework by providing responses to HTTP requests from a Java client application running on a voice-enabled device. Furthermore, the voice server application supporting embodiments of the present invention may be implemented in other ways that may occur to those skilled in the art, and all such ways are within the scope of the present invention.
[0047] In this example, the sound server (151) includes a natural language processing speech recognition ("NLP-SR") engine (153). The NLP-SR engine is sometimes referred to herein simply as a "speech engine". A speech engine is a functional module, typically a software module, but it may also include specialized hardware, that does the work of recognizing and generating human speech. In this example, the speech engine (153) is a natural language processing speech engine that includes a natural language processing ("NLP") engine (155). The NLP engine receives recognized speech from an automatic speech recognition ("ASR") engine, processes the recognized speech into speech parts, subjects, predicates, objects, etc., and then converts the recognized processed speech parts into semantic triples for inclusion in a triple store.
[0048] The speech engine (153) includes an automatic speech recognition ("ASR") engine for speech recognition and a text-to-speech ("TTS") engine for generating speech. The speech engine also includes a grammar (104), a dictionary (106), and a language-specific acoustic model (108). The language-specific acoustic model (108) is a data structure, table, or database that associates, for example, speech feature vectors ("SFVs") with phonemes that represent the pronunciation of words in a human language. The dictionary (106) is an association of words in text form with phonemes that represent the pronunciation of each word; the dictionary effectively identifies words that can be recognized by the ASR engine. Also stored in the RAM (168) is a text-to-speech ("TTS") engine (194), which is a module of computer program instructions that accepts text as input and returns the same text in the form of digitally encoded speech, which is used to provide speech as prompts to and in response to a user of the speech-enabled system.
[0049] The grammar (104) communicates the words and word sequences that are currently recognizable to the ASR engine (150). To explain further, distinguish the purpose of a grammar from the purpose of a dictionary. The dictionary associates all the words that the ASR engine can recognize with phonemes. The grammar communicates the words that are currently eligible for recognition. The two groups at any particular time may not be the same.
[0050] Grammars can be expressed in a variety of formats supported by ASR engines, including, for example, the Java Speech Grammar Format ("JSGF"), the format of the W3C Speech Recognition Grammar Specification ("SRGS"), the Extended Backus Format ("ABNF") from RFC2234 of the IETF, the form of stochastic grammars as described in the W3C's Stochastic Language Model (N-Gram) specification, and other grammar formats as will occur to those skilled in the art. Grammars are typically manipulated as elements of a dialog, such as VoiceXML <menu> or X+V <form>. The definition of a grammar can be expressed inline in a dialog. Alternatively, a grammar can be implemented externally in a separate grammar document and referenced from a dialog with a URI. Here is an example of a grammar expressed in JSFG:
[0051]
[0052] In this example, the command named <command>( <command> )、<Name>( <name>) and <when>( <when>) are the rules of the grammar. A rule is a combination of a rule name and a rule extension that suggests to the ASR engine or sound interpreter which words can currently be recognized. In this example, the extensions include conjunction and disjunction, and a vertical bar "|" represents "or". The ASR engine or sound interpreter processes the rules in sequence, first processing <command>, then <name>, and then <when>. The <command> rule accepts the recognition "call" or "make a phone call (phone or telephone)" plus (i.e., combined with) anything returned from the <name> rule and the <when> rule. The <name> rule accepts "bob" or "martha" or "joe" or "pete" or "chris" or "john" or "artoush", while the <when> rule accepts "today" or "this afternoon" or "tomorrow" or "next week".
[0053] The command syntax as a whole matches expressions like these, for example:
[0054] ·"Call Bob next week",
[0055] ·"Call Martha this afternoon",
[0056] "Remind me to call Chris tomorrow", and
[0057] "Remind me to call Pete today."
[0058] In this example, the sound server application (188) is configured to receive digitized recognized speech from a user from a speech-enabled client device remotely located via a network from the sound server, and pass the speech forward to the ASR engine (150) for recognition. The ASR engine (150) is a module of computer program instructions, which in this example are also stored in RAM. When performing automatic speech recognition, the ASR engine receives the recognized speech in the form of at least one digitized word, and uses the frequency components of the digitized word to derive a speech feature vector (SFV). The SFV can be defined, for example, by the first twelve or thirteen Fourier or frequency domain components of the digitized speech sample. The ASR engine can use the SFV to infer the phonemes of the word from the language-specific acoustic model (108). The ASR engine then uses the phonemes to look up the word in the dictionary (106).
[0059] Also stored in RAM is a VoiceXML interpreter (192), which is a module of computer program instructions for processing VoiceXML grammar. The VoiceXML input to the VoiceXML interpreter (192) may originate, for example, from a VoiceXML client running remotely on a speech-enabled device, from an X+V client running remotely on a speech-enabled device, from a SALT client running on a speech-enabled device, from a Java client application running remotely on a multimedia device, etc. In this example, the VoiceXML interpreter (192) interprets and executes VoiceXML segments representing voice conversation instructions received from a remote speech-enabled device and provided to the VoiceXML interpreter (192) via a voice server application (188).
[0060] Voice-enabled applications in thin client architectures ( Figure 3 195) can provide voice dialog instructions, VoiceXML segments, VoiceXML <form> elements, etc. to a VoiceXML interpreter (149) that communicates data with such a voice-enabled application over a network. The voice dialog instructions include one or more grammars, data input elements, event handlers, etc., which advise the VoiceXML interpreter how to manage the voice input from the user and the voice prompts and responses to be presented to the user. The VoiceXML interpreter manages these dialogs by sequentially processing the dialog instructions according to the VoiceXML form interpretation algorithm ("FIA") (193). The VoiceXML interpreter interprets the VoiceXML dialog provided to the VoiceXML interpreter by the voice-enabled application.
[0061] As described above, the form interpretation algorithm ("FIA") drives the interaction between the user and the voice-enabled application. The FIA is generally responsible for selecting and playing one or more voice prompts, collecting user input (responses to fill in one or more input items, or the throwing of some events), and interpreting the actions belonging to the newly filled input items. The FIA also handles voice-enabled application initialization, grammar activation and deactivation, entering and leaving forms with matching utterances, and many other tasks. The FIA also maintains an internal prompt counter that increases with each attempt to stimulate a response from the user. That is, the internal prompt counter increments with each failed attempt to prompt a matching voice response from the user.
[0062] The RAM (168) also stores an operating system (154). The operating system used in the sound server according to the embodiment of the present invention includes UNIX TM 、Linux TM , Microsoft NT TM 、AIX TM 、IBM's i5 / OS TM and other operating systems that will occur to those skilled in the art. Figure 4 In the example of , the operating system (154), voice server application (188), VoiceXML interpreter (192), ASR engine (150), JVM (102), and TTS engine (194) are shown in RAM (168), but many components of such software are also typically stored in non-volatile memory, such as on disk drive (170).
[0063] Figure 4 The sound server (151) includes a bus adapter (158), computer hardware components including drive electronics for high-speed buses, a front-end bus (162), a video bus (164), and a memory bus (166), and drive electronics for a slower expansion bus (160). Examples of bus adapters used in sound servers according to embodiments of the present invention include the Intel North Bridge, the Intel Memory Controller Hub, the Intel South Bridge, and the Intel I / O Controller Hub. Examples of expansion buses used in sound servers according to embodiments of the present invention include the Industry Standard Architecture ("ISA") bus and the Peripheral Component Interconnect ("PCI") bus.
[0064] Figure 4 The sound server (151) includes a disk drive adapter (172) coupled to the processor (156) and other components of the sound server (151) through an expansion bus (160) and a bus adapter (158). The disk drive adapter (172) connects non-volatile data storage to the sound server (151) in the form of a disk drive (170). Disk drive adapters used in sound servers include integrated drive electronics ("IDE") adapters, small computer system interface ("SCSI") adapters, and other adapters that will occur to those skilled in the art. Additionally, for the sound server, non-volatile computer memory may be implemented as an optical disk drive, electrically erasable programmable read-only memory (so-called "EEPROM" or "flash" memory), a RAM drive, etc., as known to those skilled in the art.
[0065] Figure 4 An example sound server includes one or more input / output ("I / O") adapters (178). The I / O adapters in the sound server implement user-oriented input / output through, for example, software drivers and computer hardware to control output to a display device such as a computer display screen, and user input from user input devices (181) such as a keyboard and mouse. Figure 4 An example sound server includes a video adapter (209), which is an example of an I / O adapter specifically designed for graphics output to a display device (180) such as a display screen or computer monitor. The video adapter (209) is connected to the processor (156) through a high-speed video bus (164), a bus adapter (158), and a front-side bus (162), which is also a high-speed bus.
[0066] Figure 4 The example voice server (151) includes a communication adapter (167) for data communications with other computers (182) and for data communications with a data communications network (100). Such data communications may be performed serially via an RS-232 connection, via an external bus such as a Universal Serial Bus ("USB"), via a data communications network such as an IP data communications network, and in other ways as will occur to one skilled in the art. The communication adapter implements the hardware level of data communications by which one computer sends data communications to another computer, either directly or via a data communications network. Examples of communication adapters that may be used with embodiments of the present invention include modems for wired dial-up communications, Ethernet (IEEE 802.3) adapters for wired data communications network communications, and 802.11 adapters for wireless data communications network communications.
[0067] To further illustrate, Figure 5 A block diagram of automated computing machinery including an example of a computer used as a triple server (157) for configuring computer memory is shown according to an embodiment of the present invention. Figure 5 The triple server (157) includes at least one computer processor (156) or "CPU" and random access memory (168) ("RAM"), which is connected to the processor (156) and other components of the triple server through a high-speed memory bus (166) and a bus adapter (158). The processor is connected to a video adapter (209) and a computer display (180) through a video bus (164). The processor is connected to a communication adapter (167), an I / O adapter (178), and a disk drive adapter (172) through an expansion bus (160). The processor is connected to a voice-enabled laptop computer (126) through a data communications network (100) and a wireless connection (118). An operating system (154) is provided in the RAM.
[0068] Also disposed in RAM are a triple server application (297), a semantic query engine (298), a universal language triple store (323), an industry term triple store (325), a triple parser / serializer (294), a triple converter (292), and one or more triple files (290). The triple server application (297) accepts semantic queries from a speech-enabled device such as a laptop computer (126) over the network (100), which are passed to the semantic query engine (298) for execution against the triple stores (323, 325).
[0069] The triple parser / serializer (294) manages the transmission of triples between the triple store and various forms of disk storage. The triple parser / serializer (294) accepts the contents of the triple store as input and serializes them as output as a triple file (290), a table, a relational database record, a spreadsheet, etc., for long-term storage in a non-volatile memory such as a hard disk (170). The triple parser / serializer (294) accepts the triple file (290) as input and outputs the parsed triples to the triple store. In many embodiments, when the triple parser / serializer (294) accepts the triple file (290) as input and outputs the parsed triples to the triple store, the triple parser / serializer stores the output triple store in a continuous segment of the memory. Continuous storage can be implemented in the C programming language by calling the malloc() function. Continuous storage can be implemented by the Python buffer protocol. The contiguous storage can be implemented in other ways that will occur to those skilled in the art, and all of these ways are within the scope of the present invention. In many embodiments, the two triple stores (323, 325) will be stored in one or two segments of the contiguous storage.
[0070] refer to Figure 6 Contiguous memory is explained in more detail. Figure 6 A block diagram of a computer memory system including a computer processor consisting of various registers (190) that execute a speech-enabled application (195) is shown. The processor's applications and registers operate using memory addresses (700) set in virtual memory (708). The contents of the virtual memory are backed up by physical storage in the processor's cache (186), RAM (168), and disk (170). The contents of the cache are organized in cache lines (702). The memory in RAM is organized in pages (712). The memory on disk is organized into frames (706). A memory management unit ("MMU") (184) translates virtual memory addresses into physical memory locations and moves the contents of the memory from physical storage to and from processor registers. When accessing physical memory, the MMU always looks in the cache first. Not finding the content in the cache is called a cache miss (714). On a cache miss, the MMU finds the content being sought in the RAM (168) and moves it to the cache. If what is being sought is not found in RAM, a failure known as a page fault (716), the MMU keeps an eye on the page frame on disk, moves the contents into RAM, and then into cache.
[0071] The challenge here is solved by using contiguous memory. A cache access takes 10 nanoseconds. A RAM access takes 100 nanoseconds. A disk access takes 10,000,000 nanoseconds. These numbers are not intuitive. People cannot feel time in nanoseconds. Look at it in more familiar terms. If a cache access is considered to take one minute, a RAM access takes 10 minutes, and a disk access for the same data takes two years. Triplet pairs that are scattered across virtual memory addresses run the risk of being stored in multiple page frames. Triplet pairs that are stored close to each other in a contiguous memory segment are more likely to be stored in a small number of page frames.
[0072] Assume that the industry terminology consists of 500 word families, each of which includes three words, so that the entire industry terminology is expressed in 1500 words, on average, each word consists of 10 bytes of storage, a total of 15 kilobytes of stored industry terminology. Today, some computer systems support memory page sizes of megabytes or larger. Such industry terms can be stored in a single memory page, and once the page is in RAM, the operation of the industry terminology can be performed without the risk of page faults at all. Even if the continuous storage for such industry terms falls on the page boundary, the entire industry terminology can be loaded with only two page faults, and after loading it into RAM, it can be operated with zero page faults in the forward direction. Cache misses will still be required to load the content into the cache, but except for the first or two misses, there will be no risk of page faults for other misses. The inventor estimates that after a short operating cycle, the cache miss rate will be less than one percent. That is, when industry terms are set in continuous memory according to an embodiment of the present invention, for more than 99% of memory accesses, the memory access time will generally be close to the cache access time, only a few nanoseconds.
[0073] To further illustrate, Figure 7 A functional block diagram of an example device for configuring computer memory in a fat client architecture according to an embodiment of the present invention is shown. The fat client architecture is a client-server architecture in which all or most of the functionality required to configure computer memory using triple management of description logic is supported directly on the client-side voice-enabled device rather than on the server. The server is used for backup and synchronization, not voice recognition or semantic queries. The fat client requires resources, processor power, and storage, which may not always be available on small devices such as smart watches. However, in a fat client with sufficient data processing resources, all relevant functions, queries, triples, and voices are generally immediately and fully useful, regardless of network availability.
[0074] Figure 7 The fat client voice-enabled device in the example is an automatic computer machine that includes a processor (156), RAM (168), data buses (162, 164, 166, 160), video (180, 209), data communications (167), I / O (178), and disk storage (170). A voice-enabled application (195), a semantic query engine (298), a universal language triple store (323), an industry term triple store (325), a triple parser / serializer (294), a triple converter (292), and one or more triple files (290) are provided in the RAM. The voice-enabled application (195) accepts semantic queries from user input, which are passed to the semantic query engine (298) for execution against the triple store (323, 325). All relevant triples are available in the local RAM. All queries succeed or fail based solely on the local storage. No queries are forwarded to the triple server (157). When multiple client-side devices share the contents of the triple store, the triple server (157) provides long-term backup and synchronization functionality, but for any particular query, all responsive triplets are directly available on the client side.
[0075] The triple parser / serializer (294) manages the transfer of triples between the triple store and the disk store (170), and the disk store is available directly on the fat client (152) rather than on the network on the server. The triple parser / serializer (294) accepts the contents of the triple store as input and serializes them as output as a triple file (290), table, relational database record, spreadsheet, etc., for long-term storage in a non-volatile memory such as a hard disk (170). The triple parser / serializer (294) accepts the triple file (290) as input and outputs the parsed triples to the triple store. In many embodiments, when the triple parser / serializer (294) accepts the triple file (290) as input and outputs the parsed triples to the triple store, the triple parser / serializer stores the output triple store in a contiguous segment of the memory.
[0076] The speech engine (153) is a full-service NLP-SR engine that includes natural language processing (155), speech recognition (150), grammar (104), dictionary (106), model (108), and text-to-speech processing (194), all of which are described above with respect to Figure 3 Described in more detail. The thick client voice-enabled device (152) does not need to go through the network to implement voice-related processing. Full voice enablement is directly available on the voice-enabled device itself.
[0077] To further illustrate, Figure 8 A flow chart illustrating an exemplary method of configuring computer memory according to an embodiment of the present invention is shown. Figure 8 The functions of the method may be located on some combination of the speech-enabled device, the sound server (151), and the triple server (157). That is, for example, the NLP-SR engine (153) may be located on the sound server (151) in a thin client architecture or on the speech-enabled device (152) in a fat client architecture. Thus, the question of exactly where any particular function appears depends on the architecture, but all such elements are computers and contain computer memory that can be configured according to the embodiments.
[0078] Figure 8 The method includes recognizing (302) speech from a conversation (313) as digitized speech (508) by a natural language processing speech recognition ("NLP-SR") engine (153). The method also includes parsing (304) words (509) of the digitized speech (508) from the conversation (313) into triples (752) of description logic (306). In many embodiments similar to the method described herein, the description logic (306) is a member of a family of formal knowledge representation languages in which queries of the logic are decidable.
[0079] In a typical embodiment, both recognizing (302) speech and parsing (304) words into triples are performed by an NLP-SR engine (153). The NLP-SR engine inputs, optionally at least the entire conversation (313), and presents a digitized speech stream (508) to a parsing function (304). The parsing function processes the words (509), hands off the triples to a query engine (298) for further processing, and then loops back (312) to parse the next word in the digitized speech stream.
[0080] The NLP-SR engine hands over the parsed triples (752) to the semantic query engine (298). The semantic query engine determines whether the parsed triples are recorded (308) in a general language triple store (323) in the computer memory (168), and if not (314), the query engine determines whether the parsed triples are recorded (316) in an industry terminology triple store (325) in the computer memory.
[0081] If the parsed triple is not recorded in either the general language triple store or the industry term triple store (314, 320), the speech-enabled application (195) records (322) the parsed triple in the industry term triple store (325). After recording (322), the method loops (312) back to parse (304) the next word (509) in the digitized speech stream (508). If the parsed triple is already stored in the general language triple store (310) or the industry term triple store (318), the method loops (312) back directly to parse (304) the next word (509) without recording (322).
[0082] The general language triple store (323) consists of structured definitions of words that are not specific to any particular knowledge domain, wherein each structured definition of the general language store consists of a triple of description logic. The industry term triple store (325) consists of structured definitions of words that are specific to a particular knowledge domain, wherein each structured definition of the industry term triple store consists of a triple of description logic. The two triple stores (323, 325) in the embodiment can be stored in a continuous memory, or in the same segment of a continuous memory, or in separate segments of a continuous memory.
[0083] And the triple store may include more than one industry term. For example, the user (128) may be a telephone agent in a call center that is expected to handle calls from clients in health care, law offices, and residential construction. The user requires three specialized terms (not just one) for help on the phone. Thus, at least some embodiments include selecting (301) an industry term triple store (325) among multiple industry term triple stores to use for any particular conversation. The user may simply press or click a button in a dashboard on the GUI to select among the industry terms. The correct industry term may be inferred from the industry specification or SIC code of the company that the user is dealing with in the dashboard (the company that the telephone agent is speaking to). The correct industry term may be inferred from usage, asserting a query with resolved triples against multiple industry term triple stores, and selecting the industry term triple store with the most hits. Inference from usage may mean that the user does not need something, the user may not even have a dashboard on the screen, or the user may even already have a dashboard that is not relevant to the main area of the new conversation when the new conversation begins.
[0084] In some embodiments, the general language triple store (323) and the industry term triple store (325) are logically connected segments of the language specific triple store. To further explain, Fig. 9 A diagram of a language-specific triple store is shown, wherein a general language triple store (323) and two industry term triple stores are logically connected segments of the same overall diagram (201). All words (202 to 224) in the diagram (201) are the subject of triples that identify them as English words (200). Words (202 to 208) are generally identified as English words (225) in triple form. Words (210 to 216) are identified as words of medical industry terminology (226) in triple form. Words (218 to 224) are identified as words of legal industry terminology (228) in triple form. In an embodiment, all words in the diagram are generally the subject of triples with definitions. In this example, for ease of illustration, only words (208, 210, 218) with definitions (236, 244, 252) are shown.
[0085] In other embodiments, the general language triple store and the industry term triple store are implemented in separate stores and separate graphs. To further illustrate, Fig.10 Separate graphs for a general language triple store (238), English medical industry terms (240), and English legal industry terms (228) are shown. All words (202 to 224) in graphs (238, 240, 242) are the subject of triples that identify the words as English words (200, 226, 228). The words (202 to 208) in graph (238) are generally identified as English words (200) in the form of triples. The words (210 to 216) in graph (240) are identified as words of English medical industry terms (226) in the form of triples. The words (218 to 224) in graph (242) are identified as words of English legal industry terms (228) in the form of triples. In this example, all words in all three graphs are the subject of triples with definitions (230 to 258).
[0086] A query against an industry term triple store in a graph like graph (201) requires a clause that specifies the specific industry term against which the query is issued:
[0087] Query:
[0088] SELECT? definition
[0089] WHERE{:word(210):is a word of:medical jargon.
[0090] :word(210):has definition? definition.}
[0091] Response: :definition(244)
[0092] In the image Fig.10 The query against the industry term triple store shown in the separate diagram in does not require a clause that specifies the specific industry term against which the query is issued:
[0093] Query for graph (240):
[0094] SELECT? definition
[0095] WHERE{:word(210):has definition? definition.}
[0096] Response::definition(244)
[0097] To further illustrate, Fig.11 A flow chart illustrating another example method of configuring computer memory according to an embodiment of the present invention is shown. Fig.11 The method is similar to Figure 8 An example method includes recognizing digitized speech (508), parsing (304) words (509) of the digitized speech (508) into triples (752) of description logic (306), determining whether the parsed triple is recorded (308) in a general language triple store (323), and if not (314), determining whether the parsed triple is recorded (316) in an industry terminology triple store (325) in a computer memory, recording (322) the parsed triple in the industry terminology triple store (325), and looping (312) back to parse (304) the next word (509) in the digitized speech stream (508).
[0098] Fig.11 Methods and Figure 8 The method of is different in that it includes two types of queries, one type (339, 340) is to ask whether the triple is in the storage, and the other type is the query definition. Fig.11 In the method, determining (308) whether the parsed triple (752) is recorded in the general language triple store (323) is performed by querying (339) the general language triple store assertion (324) based on the parsed triple. Similarly, determining (316) whether the parsed triple (752) is recorded in the industry terminology triple store (325) is performed by querying (340) the industry terminology triple store assertion (326) based on the parsed triple.
[0099] These queries (339, 340) simply ask whether the resolved triple is currently recorded in the triple store. They do not require definition or inference. These queries (339, 340) are semantic queries that take a form similar to the data they query. For example, take the join triple describing Bob and Mona Lisa, again expressed in abstract syntax, where (subject predicate object) is separated by spaces:
[0100] (Bob is A person)
[0101] (Bob isAFriendOfAlice)
[0102] (Bob isBornOn"the 4 th of July 1990”)
[0103] (Bob isInterestedIn"the Mona Lisa")
[0104] ("the Mona Lisa" wasCreatedBv"Leonardo da Vinci")
[0105] ("the video'La Joconde à Washington"'isAbout"the Mona Lisa")
[0106] In an example, where the resolved triple asserts (Bob isAFriendOf Mike), then this query:
[0107] ASK{:Bob:isAFriendOF:Mike.}
[0108] Returns "no". The ASK syntax is modeled after SPARQL, and it reports only the success or failure of matching the query, and nothing else. In an example, where the parsed triple asserts (Bob isAFriendOf Alice), then this query:
[0109] ASK{:Bob:isAFriendOf:Alice.}
[0110] Returns "yes". Thus, the query (339, 340) merely asks whether the resolved triple is currently recorded in one of the triple stores (323, 325).
[0111] Fig.11 The method also includes executing (338) a semantic query (341) by a query engine (298) against the industry term triple store (325) to define industry term terms recorded in the industry term triple store. For example, the semantic query is received (344) in the query engine through an element of a graphical user interface (110), or for another example, through a voice-enabled user interface such as a microphone (176) and a VoiceXML dialog (522). The query engine (298) retrieves (343) and returns a display (348, 350) of the results of the semantic query (341) through an element of the graphical user interface (110) or through a voice-enabled user interface (522, 177).
[0112] Query (341) is different from the queries (339, 340) just discussed above. Query (341) does not simply ask if the data is in storage, query (341) asks for the data itself to be returned. Thus, referring again to Bob and Mona Lisa, this query requests the predicate and object from all triples where Bob is the subject:
[0113] SELECT? predicate? object
[0114] WHERE{:Bob:? predicate:? subject.}
[0115] Returns this:
[0116] :isA:person
[0117] :isAFriendOf:Alice
[0118] :isBornOn:"the 4 th of July 1990”
[0119] :isInterestedIn:"the Mona Lisa")
[0120] The query:
[0121] SELECT?predicate?object
[0122] WHERE{:"the Mona Lisa":? predicate:? subject.}
[0123] Returns this:
[0124] :wasCreatedBy:"Leonardo da Vinci"
[0125] And this query:
[0126] SELECT? subject? predicate? object
[0127] WHERE{:? subject:? predicate:? "the Mona Lisa".}
[0128] Returns this:
[0129] :"the video 'La Joconde à Washington'" :isAbout:"the Mona Lisa"
[0130] To further illustrate, Fig.12 A flow chart illustrating another example method of configuring computer memory according to an embodiment of the present invention is shown. Fig.12 The method is similar to Figure 8 An example method includes recognizing digitized speech (508), parsing (304) words (509) of the digitized speech into description logic triples (752), determining whether the parsed triple is recorded (308) in a general language triple store (323), and if not (314), determining whether the parsed triple is recorded (316) in an industry terminology triple store (325) in a computer memory, recording (322) the parsed triple in the industry terminology triple store (325), and looping (312) back to parse (304) the next word (509) in the digitized speech stream (508).
[0131] Fig.12 Methods and Figure 8 The method of differs in that it includes an additional confirmation (328) that the resolved triple (752) will actually be recorded in the industry term triple store (325). Fig.12 In the example of , the parsed triple (752) has been determined to be not recorded (314) in the general language triple store and not recorded (320) in the related industry terminology triple store. Before recording (322) the parsed triple in the industry terminology triple store, Fig.12 The method confirms (328) that the parsed triple should be recorded in the industry terminology triple store. If the parsed triple fails to confirm (330), the method continues to loop (312) back to parse (304) the next word in the digitized voice stream (304).
[0132] Consider a use case in which a user who is a telephone agent in a call center is discussing with a customer the prospective sale of residential building materials. The NLP-SR engine typically provides digitized spoken words organized in sentences and identified as parts of speech. The parsing process can then, for example, take the subject, verb, and direct object from the sentence and parse them into triples with subject, predicate, and object. From the sentence, for example, "a door is a building material," the parser can produce (a door is a building material) and pass that triple as a candidate parsed triple (752) to the rest of the process for inclusion in the industry terminology store (325). But these assertions about doors are more difficult:
[0133] Gates are gateways in time.
[0134] The Doors are members of a rock band.
[0135] Doors are a figure of speech in The Doors Of Perception by Aldous Huxley.
[0136] It is difficult to say why this result originated in a conversation about home construction. Perhaps the speech engine made a mistake. The user may have wandered off topic. All of these make little difference. The point is that the parser will produce triples from these words that are not related to home construction. Such triples may not be in the industry term triple store, but such triples may not be in the general language triple store either. In this case, such triples become candidates for inclusion in the industry term triple store even though they do not actually belong in the industry term triple store.
[0137] The validation process (328) may query a technical dictionary (336) of architectural terminology. The technical dictionary is unstructured text, without semantics, and without triples, but it does contain searchable definitions. If "gateway in time," "rock band," or "gate of perception" does not appear in the definition of a door, the validation process may infer (330) that certain triples do not belong (330) in the industry terminology triple store (325), and loop (312) to continue processing. The validation process (328) may query the user (334) through, for example, a GUI interface or voice interface, present candidate parsed triples, and ask whether to add them to the industry terminology triple store. If the user confirms (332), then record (322) and loop (312). If the user does not confirm (330), then loop (312) without recording (322).
[0138] It will be appreciated from the foregoing description that the various embodiments of the present invention may be modified and altered without departing from the true spirit of the present invention. The descriptions in this specification are for illustrative purposes only and should not be construed as limiting. The scope of the present invention is limited only by the language of the appended claims.< / when> < / name> < / alice> < / bob> < / bob> < / bob> < / alice> < / bob> < / bob>
Claims
1. A method for configuring a computer memory in a computer system, the method comprising: Parsing words from the digitized speech of the conversation into description logic triples; determining whether the parsed triple is recorded in a universal language triple store in the computer memory; determining whether the parsed triple is recorded in an industry terminology triple store in the computer memory; as well as If the resolved triple is not recorded in either the universal language triple store or the industry term triple store, confirm whether the resolved triple appears in the definition of the industry term item recorded in the industry term triple store, wherein the confirmation process includes: Identify architectural terms in technical dictionaries, where technical dictionaries include unstructured text; determining whether some of the parsed triples belong to an industry term triple store; adding the resolved triples to the industry term triples based on user interaction using the graphical user interface; and If the resolved triple appears in the definition of the term, the resolved triple is recorded in the industry terminology triple store.
2. The method of claim 1 further comprising recognizing speech from the conversation as the digitized speech via a natural language processing speech recognition ("NLP-SR") engine.
3. The method according to claim 1, wherein: The Description Logic is a member of the family of formal knowledge representation languages, where queries of the logic are decidable.
4. The method according to claim 1, wherein: The universal language triple store includes structured definitions of words that are not specific to any particular knowledge domain, each structured definition of the universal language store including a triple of the description logic; as well as The industry term triple store includes structured definitions of words dedicated to a specific knowledge domain, and each structured definition of the industry term triple store includes a triple of the description logic.
5. The method according to claim 1, wherein: The general language triple store and the industry terminology triple store are logically connected segments of the language specific triple store. The method of claim 1 , further comprising selecting the industry term triple store from a plurality of industry term triple stores.
7. The method according to claim 1, wherein: The industry terminology triple store of the computer memory further includes an industry terminology triple store disposed within a contiguous segment of the computer memory.
8. The method according to claim 1, wherein: Determining whether the resolved triple is recorded in a common language triple store includes storing a query containing the resolved triple; and Determining whether the resolved triple is recorded in an industry terminology triple store includes storing a query containing the resolved triple.
9. The method according to claim 1, further comprising: executing, by a query engine of the computer system, a semantic query for definitions of industry terminology terms recorded in the industry terminology triple store against the industry terminology triple store, the semantic query being received in the query engine through an element of a graphical user interface; as well as Results of the semantic query are displayed via the element of the graphical user interface.
10. The method according to claim 1, further comprising: executing, by a query engine of the computer system, a semantic query for definitions of industry terminology terms recorded in the industry terminology triple store against the industry terminology triple store, the semantic query being received in the query engine through a speech-enabled user interface; as well as Results of the semantic query are displayed via the speech-enabled user interface.
11. A computer system comprising: computer memory operatively coupled to the computer processor; a universal language triple store of the computer memory, the universal language triple store comprising triples of description logic; an industry term triple store of the computer memory, the industry term triple store comprising triples of the description logic; and parsed triples of the description logic, including words from the digitized speech of the conversation parsed into parsed triples; wherein the computer processor is configured to operate to determine whether the parsed triple is recorded in the universal language store and whether the parsed triple is recorded in the industry terminology triple store, If the resolved triple is not recorded in either the universal language storage or the industry term triple storage, confirm whether the resolved triple appears in the definition of the industry term item recorded in the industry term triple storage; wherein the confirmation process includes: Identify architectural terms in technical dictionaries, where technical dictionaries include unstructured text; determining whether some of the parsed triples belong to an industry term triple store; adding the resolved triples to the industry term triples based on user interaction using the graphical user interface; and If the resolved triple appears in the definition of the term, the resolved triple is recorded in the industry terminology triple store.
12. The computer system of claim 11, further comprising a natural language processing speech recognition engine configured to operate to recognize speech from the conversation as words of digitized speech.
13. The computer system according to claim 11, wherein: The Description Logic is a member of the family of formal knowledge representation languages, where queries of the logic are decidable.
14. The computer system of claim 11, wherein: The universal language triple store includes structured definitions of words that are not specific to any particular knowledge domain, each structured definition of the universal language store including a triple of the description logic; as well as The industry term triple store includes structured definitions of words dedicated to a specific knowledge domain, and each structured definition of the industry term triple store includes a triple of the description logic.
15. The computer system according to claim 11, wherein: The general language triple store and the industry terminology triple store are logically connected segments of the language specific triple store.
16. The computer system according to claim 11, wherein: The industry term triple store includes an industry term triple store selected from a plurality of industry term triple stores.
17. The computer system according to claim 11, wherein: The industry term triple store of the computer memory includes an industry term triple store disposed within a contiguous segment of the computer memory.
18. The computer system of claim 11, wherein: determining whether the resolved triple is recorded in the common language triple store comprises storing a query containing the resolved triple, and The step of determining whether the resolved triple is recorded in the industry terminology triple store includes storing a query containing the resolved triple.
19. The computer system of claim 11, further comprising a query engine, i.e., a module of automated computing machinery, configured to operate by: executing, against the industry terminology triple store, a semantic query for definitions of industry terminology terms recorded in the industry terminology triple store, the semantic query being received in the query engine through an element of a graphical user interface; and Results of the semantic query are displayed via the element of the graphical user interface.
20. The computer system of claim 11, further comprising a query engine, i.e., a module of automated computing machinery, configured to operate by: performing a semantic query against the industry terminology triple store for definitions of industry terminology terms recorded in the industry terminology triple store, the semantic query being received in the query engine through a voice-enabled user interface; and Results of the semantic query are displayed via the speech-enabled user interface.
Citation Information
Patent Citations
Computer-implemented method of talking with user and computer system
CN108491443A