The present application relates in general to information retrieval and repository management system and in particular to composite storage that efficiently and compactly stores all grammatical information, including text and non-text information, about a document or a set of documents, as well as various measures based on the language used within such documents to allow any size device to manage the information that it requires to perform its functions.
|
7. A non-transitory computer-readable medium storing programming instructions that are executed by a processor of a computer to:
receive at the computer input data comprising at least one document;
parse the input data to form a term unit matrix, the term unit matrix comprising a plurality of term units, wherein at least one of the plurality of term units comprises a linguistic word, the linguistic word comprises plural characters, each term unit is one of a functional term unit or a content term unit, and the term unit matrix is a substantially lossless representation of the input data;
form, based on processing the term unit matrix to transform the input data, a Windex, wherein the Windex comprises a plurality of integer values that are determined based on grammar-embedded rules, wherein at least one of the plurality of integer values numerically encodes an entirety of the linguistic word as a single integer value, wherein the Windex is an ordered index with each entry mapped to one of a plurality of ranges of numbers based on determined grammar function, wherein a first range of the numbers is related with functional term units, and a second range of the numbers is related with content term units;
form, based on the processing the term unit matrix to transform the input data, an isetm index, wherein the isetm index is a listing of integer value entries of the Windex;
form, based on the Windex, a Windex block index from the transformed data, wherein the Windex block index comprises a listing of integer value entries of the Windex and theft respective locations in the input data;
store the Windex, the isetm index, and the Windex block index in a memory of the computer;
process the Windex, the isetm index, and the Windex block index from the memory to form a composite storage of the input data as a model for retrieving natural language information and other types of information found in any type of documentation, wherein the composite storagae is comprised of data in at least two basic sections: a number of extra grammatical length or lengths that contain other kinds of information outside the range of language and a isetm length, which can be divided into sub lengths, that contains most or all the grammar elements from a set of at least one language, wherein the Windex is different from the isetm index, the isetm index is different from the Windex block index, and the Windex is different from the Windex block index; and
perform a search on the input data using the composite storage of the input data to retrieve, based on classifications, a portion of the input data in response to user's input without requiring a full grammatical interpretation of the user's input, wherein the retrieving further includes the filtering the isetm to determine whether the isetm is responsive to the user's input, if the isetm does not contain a value within the first range, regardless of the alphanumeric order of the terms, the isetm is not responsive to the user's input.
4. A computing device comprising:
one or more processors; and
a non-transitory computer-readable medium storing programming instructions that are executed by the one or more processors to:
receive at a computer input data comprising at least one document;
parse the input data to form a term unit matrix, the term unit matrix comprising a plurality of term units, wherein at least one of the plurality of term units comprises a linguistic word, the linguistic word comprises plural characters, each term unit is one of a functional term unit or a content term unit, and the term unit matrix is a substantially lossless representation of the input data;
form, based on processing the term unit matrix to transform the input data, a Windex, wherein the Windex comprises a plurality of integer values that are determined based on grammar-embedded rules, wherein at least one of the plurality of integer values numerically encodes an entirety of the linguistic word as a single integer value, wherein the Windex is an ordered index with each entry mapped to one of a plurality of ranges of numbers based on determined grammar function, wherein a first range of the numbers is related with functional term units, and a second range of the numbers is related with content term units;
form, based on the process the term unit matrix to transform the input data, an isetm index, wherein the isetm index is a listing of integer value entries of the Windex;
form, based on the Windex, a Windex block index from the transformed input data, wherein the Windex block index comprises a listing of integer value entries of the Windex and their respective locations in the input data;
store the Windex, the isetm index, and the Windex block index in a memory a the computer;
process the Windex, the isetm index, and the Windex block index from the memory to form a composite storage of the input data as a model for retrieving natural language information and other types of information found in any type of documentation, wherein the composite storage is comprised of data in at least two basic sections: a number of extra grammatical lenght or lenghts that contain other kinds of information outside the range of language and a isetm length, which can be divided into sub lengths, that contains most or all the grammar elements from a set of at least one language, wherein the Windex is different from the isetm index, the isetm index is different from the Windex block index, and the Windex is different from the Windex block index; and
perform a search on the input data using the composite storage of the input data to retrieve, based on classifications, a portion of the input data in response to user's input without requiring a full grammatical interpreatition of the user's input, wherein the retrieving further includes the filtering the isetm to determine whether the isetm is resoonsive to the user's input, if the isetm does not contain a value within the first range, regardless of the alphanumeric order of the terms, the isetm is not responsive to the user's input.
1. A method of storing data, including natural language information, the method comprising:
receiving at a computer, input data as an input text stream;
parsing, by the computer, the input data to form a term unit matrix, the term unit matrix comprising a plurality of term units, wherein at least one of the plurality of term units comprises a linguistic word, the linguistic word comprises text content of the input text stream, the linguistic word comprises plural characters, each term unit is one of a functional term unit or a content term unit, and the term unit matrix is a substantially lossless representation of the input data;
forming, based on processing the term unit matrix to transform the data, by the computer, a Windex, the Windex having a plurality of inteaer values corresponding to the plurality of term units of the term unit matrix, wherein the Windex is an ordered index with each entry mapped to respective ones of a plurality of ranges of numbers based on grammar-embedded rules, wherein at least one of the plurality of integer values numerically encodes an entirety of the linguistic word as a single integer value, wherein a first range of the numbers is related with functional term units, and a second range of the numbers is related with content term units;
transforming, based on the term unit matrix, by the computer, the input data to form an isetm index wherein the isetm index is a listing of the plurality of integer values;
forming based on the Windex, by the computer, a Windex block index from the transformed input data, wherein the Windex block index is a listing of the plurality of integer values and their respective locations in the input data;
storing, by the computer, the Windex, the isetm index, and the Windex block index in a memory of the computer, wherein the Windex is different from the isetm index, the isetm index is different from the Windex block index, and the Windex is different from the Windex block index;
processing, by the computer, the Windex, the isetm index, and the Windex block index from the memory to form a composite storage of the input data as a model for retrieving natural language information and other types of information found in any type of documentation, wherein the composite storage includes two sections: a number of extra grammatical length or lengths that contain other kinds of information outside the range of language and a isetm length, which can be divided into sub lengths, that contains most or all the grammar elements from a set of at least one language; and
performing, by the computer, a search on the input data using the composite storage of the input data to retrieve, based on classifications, a portion of the input data in response to user's input without requiring a full grammatical interpretation of the user's input, wherein the retrieving further includes the filtering the isetm to determine whether the isetm is responsive to the user's input, if the isetm does not contain a value within the first range, regardless of the alphanumeric order of the terms, the isetm is not responsive to the user's input.
2. The method of
3. The method of
a computer, a laptop computer, a personal computer, a personal data assistant, a camera, a phone, a cell phone, a mobile phone, a computer server, a media server, a music player, a game box, a smart phone, a data storage device, a measuring device, a handheld scanner, a scanning device, a barcode reader, a point-of-sale (POS) device, a digital assistant, a desk phone, an internet protocol (IP) phone, a solid-state memory device, a tablet, or a memory card.
5. The computing device of
6. The computing device of
8. The non-transitory computer-readable medium of
9. The non-transitory computer-readable medium of
10. The non-transitory computer-readable medium of
11. The non-transitory computer-readable medium of
12. The non-transitory computer-readable medium of
13. The non-transitory computer-readable medium of
|
This application claims priority from Provisional Application No. 61/597,243, entitled “Composite Storage”, filed 10 Feb. 2012, the disclosure of which is hereby incorporated herein by reference.
The present application relates in general to information retrieval and repository management system and in particular to composite storage that efficiently and compactly stores all grammatical information, including text and non-text information, about a document or a set of documents, as well as various measures based on the language used within such documents to allow any size device to manage the information that it requires to perform its functions.
The accompanying drawings are incorporated in and are a part of this specification. Understanding that these drawings illustrate only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained more fully through the use of these accompanying drawings in which:
Composite Storage is a knowledge model designed to effectively store and retrieve natural language information and other types of information found in any type of documentation, including messaging, word-processing documents, email, graphics, speech, multimedia, and any other kind of file. To encompass these terms, the information set member (ISetM) is used and is defined as the set of data stored in a finite amount of time. From a small robotic device to a large data center, any size data set can be used with the system. Natural language in this context refers to any human-based written or oral mode of a specific language, such as English, while other types of information include items such as codes, computer programs, and other graphical and aural forms. For any implementation using composite storage, any file or data structure similar to a file that contains information can be used to model that file into an analytical language and information model that is searchable and retrievable. Composite in this context refers to the total amount of information that is considered usable for a given implementation. Any information set (ISet) or a repository, without regard to underlying information domains, can be used with this system. In addition, a composite storage system may be employed as part of an application for information retrieval, natural language processing, or may be part of a file system that supports natural language as part of an operating system. In a file system, the composite storage would be augmented by input/output (I/O) interfaces and include hardware storage requirements. Any input that requires persistent or temporary storage may use this system. The methods described can work with existing file systems or be used alone.
The construction of Composite Storage begins with the input being sent to the system. Any communications method can be used to deliver the input, so long as the file, message, or other such data can be reliably sent. The file, once in the system goes through a parsing operation. An example of the output of such a parsing system is illustrated in
This general framework for parsing may be modified based on implementation requirements for the type of possible data retrieval or language representations. For instance, consider the message input “The XYZ Company email system (Esys) is operational.” The general parsing method would separate the terms as: the, XYZ, Company, email, system, Esys, is, operational. Additional requirements may need to determine the relation between different characters in the term, denoted as Identifiable Units (IUs). A system tasked to locate delivery methods context would need to locate “email” and recognize that the “e” in email stands for electronic. The character “e” would be considered an IU, and contains an additional meaning that can be extracted and expressed within the language of the message, in this case English. The storage of an IU is nested under the TU storage and should be mappable. Depending on the future request of the system, it may not be used or may be used, as in this example to relate it to other expressions of electronic mail, such as “e-mail”.
Item 201 illustrates a possible encoding of the terms in the example illustrated in
There are several ways to separate terms using a simple integer comparison, and one such way is shown in item 203. In this case, the terms are considered to be related to a specific language, and the language can further be separated into functional term units (FTU) and content term units (CTU). An FTU represents terms such as “an, the” that have no specific meaning except their relation to a CTU, which represents terms that have a unique set of meanings for a specific language. The FTU starts at 1000 in the figure, and the CTU starts at 5000. Note that this division is not required to be stored directly into the Windex, and therefore any number of divisions can be supported by a single Windex and can be determined using any numeric function. If other files are added to this repository's Windex, then the same process is done for each file that is added. Note that each term is added only once, and if there is a supported version for the form of the input, such as the term “DOG” is found, then if it found to be related to “dog”, then it is not added to the Windex directly as it can be solved for and covered by the increment variable for the entry “dog”.
The Windex has several uses for information retrieval and natural-language-specific tasks. First, the system only has to look at the Windex value to determine, using the FTU/CTU example found in 203, this division. It is simply calculated and therefore can be used to isolate keywords, objects, and other information without requiring any cumbersome storage such as POS taggers, etc. In addition, any related forms, such as capitalization forms, can be related to other forms without an additional storage penalty. This may also be expanded to store IU data, such as the email example above, by grouping related terms similar to the method used for discerning FTU/CTUs by reserving a group of Windexes for this purpose. Also, the integer values allow for standard sorting algorithms to be used so that any linear order can be applied to either the entire ISetM or any subset of the ISetM, which represent a significant savings. Further, the assignment of the Windex values is arbitrary, and one ISet may have “dog” assigned to Windex 39090, whereas in this example “dog” is assigned to Windex 5020.
The Windex process can operate while the ISetM Index process in
As Windexes are identified, the CTU List Block 302 contains the Windex values that are, in the example Windexes illustrated in
These three structures: Windex, ISetM Index, and Windex Block Index, form the basis for most or all composite storage data. These provide several uses for information retrieval and analysis that do not require a full grammatical interpretation of the input, and where simple classifications are all that is required to respond to a user input. For instance, Boolean searches are common and may form the basis for many analysis methods. These three structures support these types of features as well as being able to be expanded to support various grammatical information that is required for what is considered higher-level grammatical input types. In addition, this basic indexing composite storage system can also be expanded to use non-text files and isolate data that is usable for a particular implementation. For instance, it may not be necessary for some implementations to be able to access text data found in tables and graphics; other implementations may require this as well as speech and other multimedia data. In other uses, such as a file system implementation, all such information, both textual and nontextual, will generally be stored using these three basic structures.
Once the optional division has been established, the modeling of the data can be performed to completion, including persistent storage if required by an implementation. The composite storage is comprised of data in at least two basic sections: a ISetM length, which can be divided into sub lengths, that contains most or all the grammar elements from a set of at least one language; and second, any number of extragrammatical length or lengths that contain other kinds of information outside the range of that language. Each ISetM within any ISet is stored using this method, so that there is one entry that corresponds to each ISetM of any ISet. The range of a language is defined as the alphabet, words based on that alphabet, and acceptable symbols, punctuation, and associated sounds. This separation serves to illustrate the major components that are used to determine what is properly in a language from what is not in the language. For instance, to separate the recording of a voicemail greeting from the message itself, an extragrammatical beep is heard. This then illustrates the two main elements that are language oriented: the voicemail greeting and the voicemail message.
To accomplish this, several steps are needed to process the input. Each input for composite storage should be broken down into a set of regions, usually based on file form elements such as a header, footer, text, table, graphic, multimedia, caption, address, speech, music, and other such parts that make up a particular file. Some areas, like a header, may contain other regions, such as a graphic in combination with text. This is referred to as nesting, and is a common occurrence. Region boundaries indicate a grouping of elements to define, for instance, a page of text, but do not define the grammatical content. In some cases like text regions, the grammatical and the extragrammatical division may occur inside the same region. In other regions, like a specific caption, its grammatical value may be determined along with its position in the input. Some areas, like graphics, generally contain both text and lines and other geometric shapes that may or may not have any grammatical value.
In order to determine one region from another region from a grammar perspective, a stop indicator point set member is located in item 503. This varies from implementation to implementation, and may contain all the possible language values for the various ways in which language can be communicated. For instance, if an implementation does not use speech, then the phonemes that correspond to a language, be it in waveform or other signal processing-related form, is not required. However, if the speech of a language is required to be accessed from the ISet, then the phonemes that comprise the language have to be known, so that the continuous language elements can be identified. Using the voice mail example above, the ability to distinguish between a phoneme and a nonphoneme is required so that the beep is considered a stop indicator point.
Another type of stop indicator point is a table, including databases, that have a cell or field instance. A table is used to divide data into parts, and that is indicated by a field break or a line as it is when presented to a user. They both have the same purpose: they stop the grammatical stream of text. A database also can be identified in the same manner by isolating each specific instance of a field and recognizing that there are different regions. Each region corresponds to a specific stream of grammatical information that needs to be separated in order for higher-level processes to properly analyze the grammatical content of the ISetM's region. These regions also maintain the atomicity and isolation required for large-scale data processing. A file system implementation of the regions may also include considerations of the varying data storage requirements that a region has, and may segment processing of such information.
With the regions having been identified, the sub dLen can be found in item 504. A sub dLen is the location of the grammatical portions of the text and its surrounding data. There is a correlation between the sub dLen and the regions of an ISetM, as illustrated in
Sub dLens make up a dLen, or the language ordering of most or all the data that is considered part of the grammatical data used by the implementation in any number of ways and also determines the posit number for each term in each sub dLen in the input. For most implementations, a sub dLen delimiter should be used to separate the sub dLens as they represent boundaries that many information retrieval and language analysis processes depend on for their correctness. The simple example ISetM shown in
If necessary, an optional set of one or more Microindexes 505 can be formed at this time. These can be arranged, depending on implementation requirements, in sub dLen or regions for each ISetM that is in the ISet or repository. These may be comprised of a format index, which contains the text decoration and other details within each ISetM, and can be isolated to a region or an sub dLen. Another type is the table display and other such information, which indicates the structured portions of a document that contain extragrammatical data within the range of a region or an sub dLen. Sometimes these are shown by a single character, such as a pipe (|). Other types of microindexes involve storing data that has formats that either need to be converted into text for processing for a specific implementation, and the original needs to be stored; or they contain data that cannot be used by a specific implementation but need to be added to an ISetM when reconstructed. For instance, if Picture 901 were analyzed for grammar, the original picture may or may not need to be stored. The optional graphic microindex would be used to store the original graphical information so that the picture could be reconstructed for transmission of the ISetM back to the user. Microindexes may also form the basis for the organization of a file system that maps each microindex to its set of associated bytes that can be located on a hardware or firmware deivce.
Depending on the size of the repository, there may be a need to consider if the composite storage files are to be persistently stored. In most cases, a fault tolerant system will require that the files may be stored at least once in this manner and maybe more times. In this case, it is also likely that as the repository increases in size, there is a need to partition the repository into smaller logical chunks, each with their own index files (ISetM Index, Windex Block Index, Windex). If that is the case, the Create Logical Partition 506 should be built. This can be done in any number of ways, depending on the information and the implementation details. The process is comprised of a few basic steps: identify the likely divisions that retrieval and analysis processes will require; correlate those divisions to users, groups, and possibly their IDs; determine if there are special groups or users that will require multiple parameters to identify the ISet that they will have access to. In one example, a security parameter can be used to subdivide the ISet or repository into separate blocks that relate to users, so that a user's visible repository and the security parameter can be correlated to make retrieval and analysis processes more efficient and accurate. Logical partitions can also be formed along geographical or business lines, such as partitioning data associated with the different regions of the US or partitioning engineering data across different business units engaged in different types of engineering. Any number of logical partitions can be associated with the division, and can contain their own user groups and other such information. For instance, a company may want to divide the repository into business units, each containing its own security parameter so that only users that are in that business unit that need access to a specific set of data and allows a more efficient network implementation. These may be built in concert with the input-based divisions 502.
Once the optional partition has been determined, then the composite storage for a specific ISetM can be built 507, using the ISetM Index, Windex Block Index, and Windex formats. As illustrated in
At this point, the composite storage is considered in its basic level. This form can support a number of information retrieval and access functions. All required information is used to solve search problems that use either Boolean or keywords or flex fetch as shown in SYSTEMS AND METHODS FOR SEARCHING AN INDEX, filed on 15 Aug. 2008, Ser. No. 12/192,834, which is incorporated herein by reference in its entirety. These types of searches benefit from the ability to count on a per document basis frequency of keywords and other such information without any information loss so that the document can be reconstructed to form most relevant parts (MRPs) and the entire document just from the data in this set of files. Also, repository information is easily obtained, such as the relation of each ISetM to a search term because the ISetM boundary is respected inside each index. This allows for even simple searches to show how popular a term is in the repository or how many ISetMs the search term appears in. Since this boundary is known, a flex fetch or a search that is based on some simple grammatical pattern can be done since the term order is preserved in this system. The flex fetch requires that most or all the terms, not just keywords, be accessible so that the order of the terms can be restricted using grammar rules dependent on word order within each ISetM, and also within each sub dLen.
At this point, the second level of the composite storage system can take place. This level determines the general grammatical form of the dLen for each ISetM in the ISet or repository. An optional Bucket Finder 508 may be run to map each term to a specific grammar function using any definable part-of-speech method. Buckets can identify an object, a subject, a modifier, a verb, and other such functions that equate or relate in some manner to a part of speech used to identify function. Each grammar function is considered a bucket, and has a starting and ending point. Most grammar functions are considered contiguous; however, a discontinuous bucket can be used. It indicates that there are several subintervals or (group of terms) that map to the same grammatical function. The purpose of the bucket is to illustrate the interval, in posits, which is covered by each grammar function. Any additional information may be stored as flags that are directly related to a specific bucket instance. Common flags include the end of a sentence, the end of a clause, the use of punctuation, and other such data. In addition, it is possible to encode for storage purposes the specific bucket values. Based on language requirements, a bucket may be encoded using an integer or an alphanumeric string to determine what values are contained within an interval, such as a code equal to twenty-seven that indicates a noun phrase that contains an interval length of two and one modifier and one object as one example when a bucket is defined as a noun phrase. Such encodings could use any length of definition of a bucket dependent on language and implementation concerns. It is possible to use existing language tools to derive the grammar so that the intervals and any additional encodings can be calculated; so long as the buckets can be formed and stored appropriately, such tools can be used with the system.
Concurrently with bucket building, if used, or after another process performs a similar function, the optional grammar level 509 can be added to the composite storage system. This mapping is shown in
At this point, the grammar level for the ISetM is known, such as the objects that exist in the entry or the location of verbs. This information can be used in a variety of language-based analysis functions. For instance, an object search can be performed by looking up most or all the buckets that correspond to an object, including relations such as a subject can be considered equivalent to an object. Since the search term can be converted into a set of Windexes, then each posit value in the Windex can map to see if acceptable bucket value occurs at that posit. If so, then this posit value can be used as part of an object search answer. In addition, most or all the MRPs and other reconstructions may be done on the document. With this information, all sorts of language analysis is possible. For instance, a request could be made to locate all the possible functions of a specific object, which can be found using an object search. For instance, the object search locates all the places where “hammer” is used as an object, and then can locate the functions based on the bucket membership of members the current sentence or related sentences, especially when the term “hammer” might be an object in several sentences. More information about the objects that a “hammer” can be used is also available, especially when the verb buckets can be related to a parent object that either is equal to “hammer” or considered an object of “hammer”.
The next level of the composite storage system is also optional 510, and if used, it quantifies an ISetM. If there is no further processing required, then the system terminates 511, which means that the ISetM has gone as far as necessary for a given implementation. Otherwise, this Quantification Process 512 is performed, and it refers to isolating specific intervals within the ISetM using a specific set of rules to determine the focus terms that are used for the identification of the intervals. Once such intervals are established, they are normally organized on a per-ISetM basis into a hierarchy or multiple hierarchies, depending on number of quantifications used, to present to the user or another system. There are several types of quantification, and they include: topics, dates, locations, among others. Quantification works by identifying the focus terms using a set of rules for that type of quantification. For instance, the topic generally uses those terms that mapped to the object and subject buckets, and therefore also requires that the grammar level having been done. The actual interval then is determined once all the related terms that can comprise a quantification focus term or set of terms based on grammar are known. In addition, different implementations might require that different quantification types have different rules for an interval; for example some intervals may be closed, or may have an one or more open ends.
Once the intervals are known, each term that comprises an endpoint or an internal mention of the quantification focus term can be identified and added to the composite storage system. In addition, other flags that contain information about the focus term instance can also be identified, such as a common form for a topic, the current mention is different from what is the common form, or the quantification ID for that interval. For instance, “dog house” may be the quantification ID, but the current instance may equal “canine house”. The process then is as follows. A focus term is identified 701, and its posit located 702, and it's automatically mapped to a grammar level value 704. Then, it is mapped to the quantification level 706 using an optional hash function 705. Again, depending on the data structures used, this may be a linked structure or may be an additional matrix element. A set of variables may need to be used if the common form of the topic contains a variation from the original, which in this case is equal to “dog”.
If required, an optional Quantification Hierarchy Universe Generation 513 can be performed. Depending on the type of quantification required, a set of rules can be applied to relate ISetM quantifications to an entire ISet or any arbitrary group of ISetMs that can constitute a universe. Once such rules are applied, a new hierarchy can be formed showing the interrelations between more than one ISetM. The process that manages relations between ISetM is comprised of the following steps. First, each ISet that is required is expressed in terms of its hierarchical tree, including at which the level that each Quantification ID (QID) appeared. This is constructed by the data in
A hierarchy generation that contains multiple documents is a form of an overlay, which contains information from several different sources based on a focus set, usually a set of TUs, to form new relations. In other cases they can be used to partition one data set from another data set, such as a security overlay used to partition documents based on a security parameter. Examples of overlays are shown in
In some cases, an overlay may be used to isolate a set of data found in
Embodiments described herein operate on or with any network attached storage (NAS), storage array network (SAN), blade server storage, rack server storage, jukebox storage, cloud, storage mechanism, flash storage, solid-state drive, magnetic disk, read only memory (ROM), random access memory (RAM), or any conceivable computing device including scanners, embedded devices, mobile, desktop, server, etc. Such devices may comprise one or more of : a computer, a laptop computer, a personal computer, a personal data assistant, a camera, a phone, a cell phone, mobile phone, a computer server, a media server, music player, a game box, a smart phone, a data storage device, measuring device, handheld scanner, a scanning device, a barcode reader, a POS device, digital assistant, desk phone, IP phone, solid-state memory device, tablet, and a memory card.
Note that any of the functions described herein may be implemented in hardware, software, and/or firmware, and/or any combination thereof. When implemented in software, the elements of the present invention are essentially the code segments to perform the necessary tasks. The program or code segments can be stored in a processor readable medium. The “processor readable medium” may include any physical medium that can store or transfer information. Examples of the processor readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a compact disk CD-ROM, an optical disk, a hard disk, a fiber optic medium, etc. The code segments may be downloaded via computer networks such as the Internet, Intranet, etc.
Bus 1002 is also coupled to input/output (I/O) controller card 1005, communications adapter card 1011, user interface card 1008, and display card 1009. The I/O adapter card 1005 connects to storage devices 1006, such as one or more of a hard drive, a CD drive, a floppy disk drive, a tape drive, to the computer system. The I/O adapter 1005 is also connected to printer (not shown), which would allow the system to print paper copies of information such as document, photographs, articles, etc. Note that the printer may a printer (e.g. inkjet, laser, etc.), a fax machine, or a copier machine. Communications card 1011 is adapted to couple the computer system 1000 to a network 1012, which may be one or more of a telephone network, a local (LAN) and/or a wide-area (WAN) network, an Ethernet network, and/or the Internet network. User interface card 1008 couples user input devices, such as keyboard 1013, pointing device 1007, and microphone (not shown), to the computer system 1000. User interface card 1008 also provides sound output to a user via speaker(s) (not shown). The display card 1009 is driven by CPU 1001 to control the display on display device 1010.
Smyros, Constantine John, Smyros, Athena Ann
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5809502, | Aug 09 1996 | R2 SOLUTIONS LLC | Object-oriented interface for an index |
5873076, | Sep 15 1995 | BHW INFO EDCO COM, LLC | Architecture for processing search queries, retrieving documents identified thereby, and method for using same |
7079056, | Jan 15 2003 | DELPHI TECHNOLOGIES IP LIMITED | Method of encoding and storing in a machine control computer a compressed data lookup table |
8473523, | Oct 31 2008 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Deterministic finite automata graph traversal with nodal bit mapping |
20100017400, | |||
20160062954, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 10 2013 | Intelligent Language, LLC | (assignment on the face of the patent) | / | |||
May 12 2017 | SMYROS, ATHENA ANN | Intelligent Language, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 042433 | /0097 | |
May 12 2017 | SMYROS, CONSTANTINE JOHN | Intelligent Language, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 042433 | /0097 |
Date | Maintenance Fee Events |
Nov 08 2021 | REM: Maintenance Fee Reminder Mailed. |
Apr 25 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 20 2021 | 4 years fee payment window open |
Sep 20 2021 | 6 months grace period start (w surcharge) |
Mar 20 2022 | patent expiry (for year 4) |
Mar 20 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 20 2025 | 8 years fee payment window open |
Sep 20 2025 | 6 months grace period start (w surcharge) |
Mar 20 2026 | patent expiry (for year 8) |
Mar 20 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 20 2029 | 12 years fee payment window open |
Sep 20 2029 | 6 months grace period start (w surcharge) |
Mar 20 2030 | patent expiry (for year 12) |
Mar 20 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |