WO2004079631A2 - Method and arrangement for searching for strings - Google Patents
Method and arrangement for searching for strings Download PDFInfo
- Publication number
- WO2004079631A2 WO2004079631A2 PCT/IB2004/050148 IB2004050148W WO2004079631A2 WO 2004079631 A2 WO2004079631 A2 WO 2004079631A2 IB 2004050148 W IB2004050148 W IB 2004050148W WO 2004079631 A2 WO2004079631 A2 WO 2004079631A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- strings
- string
- database
- query
- exact
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Definitions
- This invention relates to a method of searching for a final number of result strings having a partial or an exact mach with a query string in a database comprised of many long strings or of a long string.
- the present invention also relates to a search engine.
- the present invention also relates to a tool.
- the present invention also relates to a computer system for performing the method.
- the present invention further relates to a computer program product for performing the method. Additionally, the present invention further relates to an arrangement.
- US 5,963,957 discloses an information processing system having a music database.
- Said music database stores homophonic reference sequences of music notes.
- the reference sequences are all normalized to the same scale degree in order to be stored lexicographically.
- a so called N-ary is applied to find a match between a string of input music notes and a particular reference sequence.
- said information processing system provides bibliographic information associated with the matching reference sequence.
- the query string is cut into said first number of small pieces of substrings, i.e. into said input query strings. determining a second number of neighboring strings for each string in said first number of input query strings, wherein each string in said second number of neighboring strings has a predetermined first number of errors;
- the second number of neighboring strings depends of the length of the query string, the size of different discrete symbols in the string alphabet applied and the numbers of errors allowed in the neighboring strings.
- said second number of neighboring strings are detennined. Each of these, individually has a predetermined first number of errors, which is greater than or equal to zero.
- the search method can be a q-gram index method, a suffix tree method or a hash method. concatenating said searched exact matched strings from the database into a fourth number of intermediate strings wherein said searched exact matched strings comprised in each of said intermediate strings are in succession to one another in said database; and determining the final number of result strings based on said fourth number of intermediate strings, wherein each string in the final number of result strings has a maximum of a predetermined second number of errors compared to said query string.
- step 400 and 500 are explained in figure 5, i.e. step 400 and 500.
- said final number of result strings each is an exact or a partial match to said query string (mentioned in the opening paragraph).
- the method can search large databases (for perfect or partial matches) fast with a relative low use of processing power.
- Fig. 1 shows a general discussion of the art
- Fig. 2 shows a way of partitioning the query string
- Fig. 3 shows a practical detailed example way of partitioning the query string and a subsequent search
- Fig. 4 shows a general example way of partitioning and searching the query string
- Fig. 5 shows a method of searching for a final number of result strings
- Fig. 6 shows an arrangement for searching.
- Figure 1 shows a general discussion of the art.
- the figure shows a query string 'abacababc' searched for in a string database, reference numeral 80.
- the database positions of the four approximate matches of the query string allowing at most one error (k 1) are indicated.
- the query string, reference numeral 34, 'abacababc' which is composed from a 3- letter alphabet ⁇ 'a','b','c' ⁇ .
- an approximate match is found containing an added symbol (e.g., reference numeral 30: 'abacadabbc'), an approximate match containing a deleted symbol (e.g., reference numeral 31: 'abcababc'), an approximate match containing a substituted symbol (e.g., reference numeral 32: 'abacadcbc') and an exact match (i.e., reference numeral 33: 'abacadabc'). It is generally acknowledged in the art to search for a string whereby the entire query string is searched for at once.
- Figure 2 shows a way of partitioning the query string.
- Specialized index structures such as suffix trees or -grams need to be build off-line (as a pre-processor) from the string database, reference numeral 80 to enable the implementation of fast exact matching algorithms. Essentially, these structures keep hold of all positions of each small sub-string that occur in the database. Effectively, this means that the retrieval process can immediately jump to the relevant spots in the database while discarding the irrelevant parts.
- the g-gram index method is used, since it is more space-efficient (i.e., uses less memory) than other methods and can be easily adapted to our purpose.
- Similar sub-strings such as 'abab' in the example, end up at the same index (called a bucket).
- a q- gram allows us to obtain the database positions of all exact matches of a query of length m ⁇ q by computing the index function and retrieve the members of a bucket. Queries that are longer than q need an additional check because only the prefixes of length q of the query can be in a bucket.
- the standard way to work with -grams is described by Myers, 1994.
- a suffix tree method or a hash method may be applied.
- a workaround has to be found for the errors allowed. For instance, according to the invention a set of strings can be generated that differ on a limited number of locations in the original query (string). These strings are called neighbors of the query. Neighbors thus represent the errors in a query.
- a ⁇ -neighborhood of a string S is defined as the set of strings with at most k errors with respect to &
- the complete set of neighbors with at most one error i.e., error level k ⁇ 1
- the complete set of neighbors with at most one error consists of the original 'abba', all strings with a deletion 'abb', 'aba' and 'bba', all strings with a addition 'aabba', 'babba', 'abbba', 'ababa', 'abbaa' and 'abbab' and all strings with a substitution 'bbba', 'aaba', 'abaa' and 'abbb'.
- Neighbors of a given string can be efficiently generated (Myers, 1994). If the neighbors are located in the database using the g-gram method, these exact matches correspond to approximate matches of the original query.
- the number of neighbors to be investigated is exponential when longer queries are investigated, a larger alphabet and a higher error level.
- the query is first partitioned in smaller sub-strings and for each sub-string its set of neighbors is generated. Then all these neighbors are searched exactly using q-grams or the other search methods mentioned. Their exact matches in the database correspond now to partial approximate matches of the original query.
- the errors can be all at the start (e.g., 'ccccababc' can then be the string you are actually looking for), all in the middle (e.g. 'ababbcabc'), all at the end (e.g., 'abacabbca') or uniformly distributed in the query (e.g., 'abccacabb').
- the query is partitioned into three parts (p ⁇ 3, which results in the substrings 'aba', 'cab' and 'abc' for our example query 'abacababc')
- a set of neighbors is generated for each part and each neighbor is searched individually in the database, context is lost about how the original query looks like.
- the neighbors can occur anywhere in the database. Neighbors do not necessarily appear close together or in a sequence, which is required to form an approximate match of the original query. In other words, when an exact match is found for a neighbor for our example query 'abacababc', it cannot be known whether it reflect the first, second or third part of the query and what kind of neighbors are found for the other parts.
- the lemma is used as a filtration condition in the invention with A being the query string and B the database string.
- P C ⁇ k t + p - k to be still part of an approximate match of the query.
- k is the number of errors allowed in each sub-string
- k is the maximum total number of errors (error level).
- Bucket[b] ⁇ lndices[j] : j e [Header [b] , Header[b + 1] - 1] ⁇ .
- Myers' algorithm computes a condensed k-neighborhood of a string efficiently by generating words from an alphabet and computing the corresponding rows of the dynamic programming matrix of the currently generated word and P. If a word whose last entry of the current row equals k, then a word in the condensed k-neighborhood has been reached. If all entries are larger than k, the algorithm can backtrack. The use of failure links prevents the algorithm from missing words that are in the k-neighborhood but are not in the condensed one. As the present invention needs the complete k-neighborhood of a string to find all exact matches of the partitions in the database, Myers's algorithm has been adapted. Figure 3 shows a practical detailed example way of partitioning the query string and a subsequent search.
- the query string, reference numeral 34, again is searched for in the database, reference numeral 80.
- said query string is partitioned into a number of input query strings, the number three is here chosen for conciseness, it may be any other number greater than one.
- said input query strings are represented by reference numeral 35, 36 and 37, respectively for the beginning part, the middle part and the "end part" - part.
- a number of neighboring strings - here four - is defined for each input query string. I.e. for the input query string of reference numeral 35, corresponding four neighboring strings, reference numeral 38, 39, 40 and 41 are determined.
- reference numeral 80 To the right of the dotted line, reference numeral 80, it is implied that in this section of the figure, the database - previously also indicated by the same reference numeral - is searched into, i.e. said neighboring strings, reference numeral 38 - 49, each is searched for in order to find exact (sub string) match(es).
- reference numeral 38 a first part neighboring string gives the exact match of reference numeral 50; as another example, reference numeral 47, an end part neighboring string gives the match of reference numerals 58 and 61, and reference numeral 45, a mid part neighboring string gives the "none- useful" result of reference numeral 72.
- each of said final search results is always comprised of one of the searched beginning substrings, reference numeral 50-53, one of the mid searched substrings, reference numeral 54-57 and one of the "end part" searched substrings, reference numeral 58-61. How these are put in succession and by which criterions will be explained by means of figure 5.
- Figure 4 shows a general example way of partitioning and searching the query string.
- Figure 4 corresponds to figure 3, however, generally the "..” 's indicate that any string of any reference numeral may comprise fewer or more letters, i.e. the invention can be applied for very short strings and for very long sequence of letters as well.
- the letters of the western alphabet - as shown - may alternatively be a sequence of elements in a pitch alphabet, a sequence of elements in a musical pitch interval alphabet, a sequence of elements in a musical time interval alphabet, a sequence of binary digits, words or bytes, a sequence of amino acids or a sequence of DNA/RNA.
- Said sequence of elements in a musical pitch interval alphabet and sequence of elements in a musical time interval alphabet represents the essence of a musical score.
- Figure 5 shows a method of searching for a final number of result strings. The method searches for a final number of result strings as indicated by means of reference numerals 30 through 33 (in the foregoing figures). I.e. each of said final number of result strings will have a partial or an exact mach with the query string, reference numeral 34 in the database, if possible.
- the database, reference numeral 80 is comprised of a long string. Said method comprises the following steps:
- the query string is partitioned in a first number of input query strings.
- said query string is partitioned in three input query strings, reference numerals 35, 36 and 37, i.e. the first number is here three.
- Said first number may be any number greater than or equal to one.
- the first number equaling exact three is only shown for illustrative purposes, i.e. any higher or lower number may be chosen as well.
- the query string is cut into (said first number) small pieces of substrings, i.e. into said input query strings.
- a second number of neighboring strings are determined.
- said second number of neighboring strings is four, i.e. reference numerals 38-41 for the first input query string reference numeral 35, reference numerals 42-45 for the second or mid input query string, reference numeral 36 and reference numerals 44-49 for the third or last input query string, reference numeral 37.
- the second number equaling exact four is only shown for illustrative purposes, i.e. any higher or lower number than four may be chosen as well.
- the number of neighboring strings depends of the length of the query string, the size of different discrete symbols in the string alphabet applied and the numbers of errors allowed in the neighboring strings.
- the predetermined first number of errors (which is greater than or equal to zero) is here 0, 1 or 2.
- the first number of predetermined of errors in the example equaling zero, one or two, is only shown for illustrative purposes, i.e. any higher number may be chosen as well.
- step 300 the database is searched for a third number of exact matches for each string in said second number of neighboring strings. Said search is based on a given search method.
- reference numerals 50-61 and 70-74 Said third number of exact matches is illustrated by means of reference numerals 50-61 and 70-74. It is important to note that there may be one or more matches, e.g.: firstly, reference numeral 38 "aba..” - as an example of a neighboring string - leads to the exact match of reference numeral 50 and 52, i.e. "aba..”; secondly, reference numeral 39 “abc.” - as another example of a neighboring string - leads also to its exact match of reference numeral 51 “abc", - thirdly, reference numeral 40 "abb” ..” leads also to no match, i.e. reference numeral 70 “abd..”, and finally, reference numeral 41 "acb” ..” also leads to no match, i.e. reference numeral 71 "abc”.
- reference numerals 53-61 and 72-74 are search results from the neighboring strings indicated by means of reference numerals 42 - 49.
- the search results, reference numerals 50-61 and 70-74, with corresponding string content and corresponding positions in the database are kept for later use in the subsequent step.
- the given search method may be the q-gram index method or any other appropriate method known to be useful in the art, e.g. a suffix tree method or a hash method.
- step 400 said searched exact matched strings from the database are concatenated into a fourth number of intermediate strings. Said searched exact matched strings (when comprised in each of said intermediate strings) are in succession to one another in said database.
- Said fourth number of intermediate strings is indicated by means of reference numerals 29 - 33, the fourth number in the example given is five. Further, said searched exact matched strings - indicated by means of reference numerals 50-61 and 70-74 - comprised in each of said intermediate strings are determined to be in succession to one another in said database: this will be explained in the following:
- reference numeral 35 "aba..” having corresponding beginning neighboring strings, reference numeral 38 - 41 lead to corresponding beginning substrings, reference numeral 50-53.
- reference numeral 36 "cab..” having corresponding "middle” neighboring strings
- reference numeral 42 - 45 lead to corresponding mid substrings, reference numeral 54-57.
- reference numeral 37 "abc" having corresponding "end part” neighboring strings
- reference numeral 46 - 49 lead to corresponding "end part” substrings, reference numeral 58-61.
- the exact matched strings, reference numerals 50-61 and 70-74 as corresponding part of each of said intermediate strings are in fact in succession to one another in the database, i.e. one of the beginning substrings, reference numeral 50-53, one of the mid substrings, reference numeral 54-57 and one of the end part substrings, reference numeral 58-61 are concatenated into one of said fourth number of intermediate strings, i.e. one of reference numerals 29-33.
- step 500 the final number of result strings is determined. The determination is based on said fourth number of intermediate strings from the foregoing step, and here - in this step - each string in the final number of result strings is determined to have a maximum of a predetermined second number of errors compared to said query string of reference numeral 34.
- the final number of result strings, reference numerals 30-33, is four, whereas said fourth number of intermediate strings was five.
- reference numeral 29 is discarded or left out since this in particular does not satisfy the criterion of having error(s) less than or equal to said second number of errors. This is seen when compared to said query string, of reference numeral 34.
- reference numeral 29 is discarded for having too many errors (compared the initial query string of reference numeral 34), whereas reference numerals 30 through 33, individually had less errors and thus satisfied the criterion. That is, in the example reference numerals 30 through 33 comprise the final number of result strings. As a result of the method, said final number of result strings, reference numerals 30 - 33, each is an exact or a partial match to said query string, reference numeral 34.
- step - in connection with the foregoing step - is also called “Cross- cutting", i.e. the idea of considering only those exact matches of neighbors (when searched for) that, when concatenated, can contain an approximate match with the original query string of reference numeral 34.
- any of said "first number”, “second number of neighboring strings”, “third number”, “fourth number of intermediate strings” and “first and second number of errors may be fine tuned individually or in relation to one another or in relation to the content of the query string and / or the database.
- speed of search may be decreased and / or another matching (fewer/less) errors may be obtained.
- the given examples are illustrative and may also be expanded with another string length for the query string, neighboring strings, intermediate strings, another sequential content (of discrete symbols) of the strings, etc.
- Figure 6 shows an arrangement for searching.
- Reference numeral 660 indicates said arrangement.
- the arrangement processes - according to the invention - the query string, reference numeral 34 as discussed in the foregoing figure.
- the arrangement processes said string as input and therefore comprises calculation means 661, e.g. a sufficient fast microprocessor.
- the microprocessor searches for matches in the database, reference numeral 80.
- the calculation means for carrying out the steps of the matching method can also be e.g. a part of a dedicated ASIC.
- Reference numeral 662 denotes a computer program product.
- Said computer program product comprising program code means stored on a computer readable medium for performing said method when the computer program is run on a computer.
- the present invention may be applied in various fields, such as melody retrieval for music systems ('query by humming'), finding keywords in a search engine or in a text file, finding DNA/RNA sequences in a molecular biology database, bits, bytes or word codes, error control, etc.
- melody retrieval application it can be imagined that only a small fragment of a melody is remembered without recalling the complete melody or song. Once provided in the appropriate representation as a string of discrete symbols, this melody fragment can then be input to the search method to reveal the identity of the song or melody using said database.
- the search method thereby allows for errors in the input.
- the arrangement may be e.g. a jukebox -implemented as a stand alone audio apparatus or on a PC. It may also be a portable audio apparatus, which contains an interface enabling e.g. a jogger to quickly change his accompanying music by whistling the beginning or refrain.
- the arrangement may e.g. also be a service on an internet server for quickly selecting a particular MP3 from the web, or the arrangement may be a portable phone running the method, for retrieving e.g. a ring tone.
- keywords as a query similar to previously mentioned query string
- a search engine e.g.
- the database can be best seen as one very long string (e.g., a long text, all melodies in the world put into sequence, etc).
- the strings may be constructed from a finite collection (e.g. western or pitch alphabet, binary digits, bytes, words, amino acids, DNA/RNA, words, etc).
- the 26 letters from the Western alphabet may be used.
- melodies can be constructed from a 9- element pitch interval alphabet.
- Molecular biology applications use the twenty amino acids or the four nucleotides as the alphabet. Coding applications use the binary symbols, word, bits or bytes.
- any information which is sufficient for retrieving a melody E.g. tone intervals, or just time intervals in case a person is not very musical or wants to search a piece of music by e.g. tapping his foot, or both. These are converted into string characters by a predetermined mapping function.
- a computer readable medium may be magnetic tape, optical disc, digital versatile disk (DVD), compact disc (CD record-able or CD write-able), mini-disc, hard disk, floppy disk, smart card, PCMCIA card, etc.
- any reference signs placed between parentheses shall not be constructed as limiting the claim.
- the word “comprising” does not exclude the presence of elements or steps other than those listed in a claim.
- the word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements.
- the invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer.
- the device claim enumerating several means several of these means can be embodied by one and the same item of hardware.
- the mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006506641A JP4538449B2 (en) | 2003-03-03 | 2004-02-25 | String search method and equipment |
US10/547,328 US7756847B2 (en) | 2003-03-03 | 2004-02-25 | Method and arrangement for searching for strings |
EP04714404A EP1602039A2 (en) | 2003-03-03 | 2004-02-25 | Method and arrangement for searching for strings |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03100517 | 2003-03-03 | ||
EP03100517.6 | 2003-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004079631A2 true WO2004079631A2 (en) | 2004-09-16 |
WO2004079631A3 WO2004079631A3 (en) | 2004-10-28 |
Family
ID=32946911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2004/050148 WO2004079631A2 (en) | 2003-03-03 | 2004-02-25 | Method and arrangement for searching for strings |
Country Status (6)
Country | Link |
---|---|
US (1) | US7756847B2 (en) |
EP (1) | EP1602039A2 (en) |
JP (1) | JP4538449B2 (en) |
KR (1) | KR101068678B1 (en) |
CN (1) | CN100557606C (en) |
WO (1) | WO2004079631A2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1748367A1 (en) * | 2005-06-30 | 2007-01-31 | Broadcom Corporation | System and method for matching chip and package terminals |
US7668054B2 (en) | 2002-12-11 | 2010-02-23 | Lg Electronics Inc. | Method of managing overwrite and method of recording management information on an optical disc write once |
US7764581B2 (en) | 2003-02-17 | 2010-07-27 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc |
US7849372B2 (en) | 2003-03-13 | 2010-12-07 | Lg Electronics Inc. | Write-once recording medium and defective area management method and apparatus for write-once recording medium |
US7911900B2 (en) | 2003-09-08 | 2011-03-22 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for recording management information on the write-once optical disc |
US7929391B2 (en) | 2003-02-21 | 2011-04-19 | Lg Electronics Inc. | Write-once optical recording medium and defect management information management method thereof |
US8045430B2 (en) | 2002-09-30 | 2011-10-25 | Lg Electronics Inc. | Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc using TDMA information |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8588729B2 (en) * | 1994-11-21 | 2013-11-19 | Bgc Partners, Inc. | Method for retrieving data stored in a database |
US6876309B1 (en) | 1994-11-21 | 2005-04-05 | Espeed, Inc. | Bond trading system |
KR20040027259A (en) | 2002-09-26 | 2004-04-01 | 엘지전자 주식회사 | Method for managing a defect area on optical disc write once |
US7233550B2 (en) | 2002-09-30 | 2007-06-19 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for recording management information on write-once optical disc |
US7355934B2 (en) | 2003-01-27 | 2008-04-08 | Lg Electronics Inc. | Optical disc of write once type, method, and apparatus for managing defect information on the optical disc |
TWI334595B (en) | 2003-01-27 | 2010-12-11 | Lg Electronics Inc | Optical disc, method and apparatus for managing a defective area on an optical disc |
US7499383B2 (en) | 2003-02-21 | 2009-03-03 | Lg Electronics Inc. | Write-once optical disc and method for managing spare area thereof |
US7675828B2 (en) | 2003-02-25 | 2010-03-09 | Lg Electronics Inc. | Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses |
WO2004079740A1 (en) | 2003-03-04 | 2004-09-16 | Lg Electronics Inc. | Method for recording on optical recording medium and apparatus using the same |
JP4846566B2 (en) | 2003-05-09 | 2011-12-28 | エルジー エレクトロニクス インコーポレイティド | Optical disk that can be recorded only once, and method and apparatus for restoring management information from an optical disk that can be recorded only once |
MXPA05012044A (en) | 2003-05-09 | 2006-02-03 | Lg Electronics Inc | Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc. |
KR20050009031A (en) | 2003-07-15 | 2005-01-24 | 엘지전자 주식회사 | Method for recording management information on optical disc write once |
US7313065B2 (en) | 2003-08-05 | 2007-12-25 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc |
ES2341859T3 (en) | 2003-08-05 | 2010-06-29 | Lg Electronics, Inc. | OPTICAL DISK WRITE AND METHOD AND APPARATUS FOR RECORDING / PLAYING MANAGEMENT INFORMATION ON / FROM THE OPTICAL DISK. |
BRPI0414213A (en) | 2003-09-08 | 2006-10-31 | Lg Electronics Inc | method and apparatus of managing physical recording medium and physical recording medium |
CA2537895A1 (en) | 2003-09-08 | 2005-03-17 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for recording management information thereon |
KR100964685B1 (en) | 2003-10-20 | 2010-06-21 | 엘지전자 주식회사 | Method and apparatus for recording and reproducing data on/from optical disc write once |
US7283999B1 (en) * | 2003-12-19 | 2007-10-16 | Ncr Corp. | Similarity string filtering |
KR101024916B1 (en) | 2004-03-19 | 2011-03-31 | 엘지전자 주식회사 | Method for writing data in high density optical write once disc and Apparatus for the same |
KR101049117B1 (en) | 2004-06-08 | 2011-07-14 | 엘지전자 주식회사 | Method and apparatus for recording management information on optical write once disc |
KR101014727B1 (en) | 2004-06-23 | 2011-02-16 | 엘지전자 주식회사 | Method and Apparatus for managing a overwrite in Optical write once disc |
KR101012378B1 (en) | 2004-08-16 | 2011-02-09 | 엘지전자 주식회사 | Method and Apparatus for recording / reproducing in Optical storage |
WO2006031052A2 (en) | 2004-09-14 | 2006-03-23 | Lg Electronics Inc. | Recording medium, and method and apparatus of recording and reproducing data on the same |
US7747635B1 (en) * | 2004-12-21 | 2010-06-29 | Oracle America, Inc. | Automatically generating efficient string matching code |
KR101227485B1 (en) | 2005-11-25 | 2013-01-29 | 엘지전자 주식회사 | Recording mdium, Method and Apparatus for recording defect management information on the recording medium |
US7509339B2 (en) * | 2006-01-03 | 2009-03-24 | International Business Machines Corporation | System and method of implementing personalized alerts utilizing a user registry in instant messenger |
US7406479B2 (en) * | 2006-02-10 | 2008-07-29 | Microsoft Corporation | Primitive operator for similarity joins in data cleaning |
US7395270B2 (en) | 2006-06-26 | 2008-07-01 | International Business Machines Corporation | Classification-based method and apparatus for string selectivity estimation |
US7945627B1 (en) | 2006-09-28 | 2011-05-17 | Bitdefender IPR Management Ltd. | Layout-based electronic communication filtering systems and methods |
US8283546B2 (en) * | 2007-03-28 | 2012-10-09 | Van Os Jan L | Melody encoding and searching system |
US7962530B1 (en) * | 2007-04-27 | 2011-06-14 | Michael Joseph Kolta | Method for locating information in a musical database using a fragment of a melody |
US8572184B1 (en) | 2007-10-04 | 2013-10-29 | Bitdefender IPR Management Ltd. | Systems and methods for dynamically integrating heterogeneous anti-spam filters |
US8010614B1 (en) | 2007-11-01 | 2011-08-30 | Bitdefender IPR Management Ltd. | Systems and methods for generating signatures for electronic communication classification |
EP2235836A4 (en) * | 2008-01-24 | 2012-08-29 | Sra International Inc | System and method for variant string matching |
US20090234852A1 (en) * | 2008-03-17 | 2009-09-17 | Microsoft Corporation | Sub-linear approximate string match |
US8126913B2 (en) * | 2008-05-08 | 2012-02-28 | International Business Machines Corporation | Method to identify exact, non-exact and further non-exact matches to part numbers in an enterprise database |
US9569528B2 (en) | 2008-10-03 | 2017-02-14 | Ab Initio Technology Llc | Detection of confidential information |
US8504580B2 (en) * | 2009-03-03 | 2013-08-06 | Ilya Geller | Systems and methods for creating an artificial intelligence |
US8516013B2 (en) | 2009-03-03 | 2013-08-20 | Ilya Geller | Systems and methods for subtext searching data using synonym-enriched predicative phrases and substituted pronouns |
US8447789B2 (en) * | 2009-09-15 | 2013-05-21 | Ilya Geller | Systems and methods for creating structured data |
US20100274755A1 (en) * | 2009-04-28 | 2010-10-28 | Stewart Richard Alan | Binary software binary image analysis |
US20100325136A1 (en) * | 2009-06-23 | 2010-12-23 | Microsoft Corporation | Error tolerant autocompletion |
CN104484381B (en) * | 2010-02-26 | 2018-05-22 | 电子湾有限公司 | For searching for the method and system of multiple strings |
WO2011137368A2 (en) | 2010-04-30 | 2011-11-03 | Life Technologies Corporation | Systems and methods for analyzing nucleic acid sequences |
KR101638594B1 (en) | 2010-05-26 | 2016-07-20 | 삼성전자주식회사 | Method and apparatus for searching DNA sequence |
US9268903B2 (en) | 2010-07-06 | 2016-02-23 | Life Technologies Corporation | Systems and methods for sequence data alignment quality assessment |
CN102479191B (en) | 2010-11-22 | 2014-03-26 | 阿里巴巴集团控股有限公司 | Method and device for providing multi-granularity word segmentation result |
CN103425691B (en) | 2012-05-22 | 2016-12-14 | 阿里巴巴集团控股有限公司 | A kind of searching method and system |
KR101452638B1 (en) | 2013-06-21 | 2014-10-22 | 서울대학교산학협력단 | Method and apparatus for recommending contents |
US9934217B2 (en) | 2013-07-26 | 2018-04-03 | Facebook, Inc. | Index for electronic string of symbols |
US9400845B2 (en) * | 2013-09-03 | 2016-07-26 | Ferrandino & Son Inc. | Providing intelligent service provider searching and statistics on service providers |
CN104008119B (en) * | 2013-12-30 | 2017-09-26 | 西南交通大学 | A kind of one-to-many mixed characters string fusion comparison method |
CN105653567A (en) * | 2014-12-04 | 2016-06-08 | 南京理工大学常熟研究院有限公司 | Method for quickly looking for feature character strings in text sequential data |
US9953065B2 (en) * | 2015-02-13 | 2018-04-24 | International Business Machines Corporation | Method for processing a database query |
CN104750846B (en) * | 2015-04-10 | 2017-12-08 | 浪潮集团有限公司 | A kind of substring lookup method and device |
KR101910491B1 (en) * | 2016-12-07 | 2018-10-22 | 전북대학교 산학협력단 | A method and apparatus for efficient string similarity search based on generating inverted list of variable length grams |
KR20230152172A (en) | 2017-03-19 | 2023-11-02 | 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 | System and method for generating filters for k-mismatch search |
US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US10747819B2 (en) | 2018-04-20 | 2020-08-18 | International Business Machines Corporation | Rapid partial substring matching |
US10169451B1 (en) | 2018-04-20 | 2019-01-01 | International Business Machines Corporation | Rapid character substring searching |
US10732972B2 (en) | 2018-08-23 | 2020-08-04 | International Business Machines Corporation | Non-overlapping substring detection within a data element string |
US10782968B2 (en) | 2018-08-23 | 2020-09-22 | International Business Machines Corporation | Rapid substring detection within a data element string |
US10996951B2 (en) | 2019-09-11 | 2021-05-04 | International Business Machines Corporation | Plausibility-driven fault detection in string termination logic for fast exact substring match |
US11042371B2 (en) | 2019-09-11 | 2021-06-22 | International Business Machines Corporation | Plausability-driven fault detection in result logic and condition codes for fast exact substring match |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2880199B2 (en) * | 1989-10-18 | 1999-04-05 | 株式会社日立製作所 | Symbol string search method and search device |
US6370479B1 (en) * | 1992-02-06 | 2002-04-09 | Fujitsu Limited | Method and apparatus for extracting and evaluating mutually similar portions in one-dimensional sequences in molecules and/or three-dimensional structures of molecules |
GB9220404D0 (en) * | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
US5852821A (en) * | 1993-04-16 | 1998-12-22 | Sybase, Inc. | High-speed data base query method and apparatus |
US5553272A (en) * | 1994-09-30 | 1996-09-03 | The University Of South Florida | VLSI circuit structure for determining the edit distance between strings |
EP0709801B1 (en) * | 1994-10-28 | 1999-12-29 | Hewlett-Packard Company | Method for performing string matching |
US5778361A (en) * | 1995-09-29 | 1998-07-07 | Microsoft Corporation | Method and system for fast indexing and searching of text in compound-word languages |
US5963957A (en) | 1997-04-28 | 1999-10-05 | Philips Electronics North America Corporation | Bibliographic music data base with normalized musical themes |
US6026398A (en) * | 1997-10-16 | 2000-02-15 | Imarket, Incorporated | System and methods for searching and matching databases |
JP3622503B2 (en) * | 1998-05-29 | 2005-02-23 | 株式会社日立製作所 | Feature character string extraction method and apparatus, similar document search method and apparatus using the same, storage medium storing feature character string extraction program, and storage medium storing similar document search program |
US6144958A (en) * | 1998-07-15 | 2000-11-07 | Amazon.Com, Inc. | System and method for correcting spelling errors in search queries |
US6556984B1 (en) * | 1999-01-19 | 2003-04-29 | International Business Machines Corporation | Hierarchical string matching using multi-path dynamic programming |
FR2797067B1 (en) * | 1999-06-09 | 2005-07-29 | Ricoh Kk | METHOD, DEVICE AND COMPUTER-READABLE MEDIUM FOR PERFORMING A DOCUMENT SEARCH |
US6757675B2 (en) * | 2000-07-24 | 2004-06-29 | The Regents Of The University Of California | Method and apparatus for indexing document content and content comparison with World Wide Web search service |
US6654734B1 (en) * | 2000-08-30 | 2003-11-25 | International Business Machines Corporation | System and method for query processing and optimization for XML repositories |
JP2002189747A (en) * | 2000-12-19 | 2002-07-05 | Hitachi Ltd | Retrieving method for document information |
US6775666B1 (en) * | 2001-05-29 | 2004-08-10 | Microsoft Corporation | Method and system for searching index databases |
US6681222B2 (en) * | 2001-07-16 | 2004-01-20 | Quip Incorporated | Unified database and text retrieval system |
US7152056B2 (en) * | 2002-04-19 | 2006-12-19 | Dow Jones Reuters Business Interactive, Llc | Apparatus and method for generating data useful in indexing and searching |
US7010522B1 (en) * | 2002-06-17 | 2006-03-07 | At&T Corp. | Method of performing approximate substring indexing |
US7734565B2 (en) * | 2003-01-18 | 2010-06-08 | Yahoo! Inc. | Query string matching method and apparatus |
US7313554B2 (en) * | 2003-09-29 | 2007-12-25 | International Business Machines Corporation | System and method for indexing queries, rules and subscriptions |
US7299126B2 (en) * | 2003-11-03 | 2007-11-20 | International Business Machines Corporation | System and method for evaluating moving queries over moving objects |
US7283999B1 (en) * | 2003-12-19 | 2007-10-16 | Ncr Corp. | Similarity string filtering |
US7346625B2 (en) * | 2004-11-05 | 2008-03-18 | International Business Machines Corporation | Methods and apparatus for performing structural joins for answering containment queries |
-
2004
- 2004-02-25 US US10/547,328 patent/US7756847B2/en not_active Expired - Fee Related
- 2004-02-25 EP EP04714404A patent/EP1602039A2/en not_active Withdrawn
- 2004-02-25 CN CNB2004800058740A patent/CN100557606C/en not_active Expired - Fee Related
- 2004-02-25 KR KR1020057016418A patent/KR101068678B1/en not_active IP Right Cessation
- 2004-02-25 JP JP2006506641A patent/JP4538449B2/en not_active Expired - Fee Related
- 2004-02-25 WO PCT/IB2004/050148 patent/WO2004079631A2/en active Application Filing
Non-Patent Citations (2)
Title |
---|
LUIS GRAVANO AND OTHERS: "Using q-grams in a DBMS for Approximate String Processing" IEEE DATA ENGINEERING BULLETIN, [Online] vol. 24, no. 4, 2001, pages 28-34, XP002291636 Retrieved from the Internet: URL:http://citeseer.ist.psu.edu/cache/papers/cs/27618/http:zSzzSzwww1.cs.columbia.eduzSz~pirotzSzpublicationszSzdeb-dec2001.pdf/gravano01using.pdf> [retrieved on 2004-08-06] * |
MYERS E. W.: "A Sublinear Algorithm for approximate keyword searching" ALGORITHMICA, vol. 12, no. 4-5, October 1994 (1994-10), pages 345-374, XP008033755 GERMANY cited in the application * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8045430B2 (en) | 2002-09-30 | 2011-10-25 | Lg Electronics Inc. | Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc using TDMA information |
US7668054B2 (en) | 2002-12-11 | 2010-02-23 | Lg Electronics Inc. | Method of managing overwrite and method of recording management information on an optical disc write once |
US7936649B2 (en) | 2002-12-11 | 2011-05-03 | Lg Electronics Inc. | Method of managing overwrite and method of recording management information on an optical disc write once |
US7764581B2 (en) | 2003-02-17 | 2010-07-27 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc |
US7929391B2 (en) | 2003-02-21 | 2011-04-19 | Lg Electronics Inc. | Write-once optical recording medium and defect management information management method thereof |
US7849372B2 (en) | 2003-03-13 | 2010-12-07 | Lg Electronics Inc. | Write-once recording medium and defective area management method and apparatus for write-once recording medium |
US7911900B2 (en) | 2003-09-08 | 2011-03-22 | Lg Electronics Inc. | Write-once optical disc, and method and apparatus for recording management information on the write-once optical disc |
EP1748367A1 (en) * | 2005-06-30 | 2007-01-31 | Broadcom Corporation | System and method for matching chip and package terminals |
US7338819B2 (en) | 2005-06-30 | 2008-03-04 | Broadcom Corporation | System and method for matching chip and package terminals |
Also Published As
Publication number | Publication date |
---|---|
KR20060002792A (en) | 2006-01-09 |
US7756847B2 (en) | 2010-07-13 |
JP4538449B2 (en) | 2010-09-08 |
EP1602039A2 (en) | 2005-12-07 |
US20060179052A1 (en) | 2006-08-10 |
WO2004079631A3 (en) | 2004-10-28 |
JP2006519445A (en) | 2006-08-24 |
KR101068678B1 (en) | 2011-09-30 |
CN1761958A (en) | 2006-04-19 |
CN100557606C (en) | 2009-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7756847B2 (en) | Method and arrangement for searching for strings | |
US7756859B2 (en) | Multi-segment string search | |
US7783660B2 (en) | System and method for enhanced text matching | |
JP2009512099A (en) | Method and apparatus for restartable hashing in a try | |
Bhukya et al. | Exact multiple pattern matching algorithm using DNA sequence and pattern pair | |
Bachteler et al. | Similarity filtering with multibit trees for record linkage | |
Ganguly et al. | Space–time trade-offs for finding shortest unique substrings and maximal unique matches | |
Lin et al. | All-against-all circular pattern matching | |
Qian et al. | Dynamic indexing for multidimensional non-ordered discrete data spaces using a data-partitioning approach | |
Al-Ssulami et al. | LsHASHq: A string matching algorithm exploiting longer q-gram shifting | |
Gollapudi et al. | A dictionary for approximate string search and longest prefix search | |
Belazzougui et al. | Compressed string dictionary look-up with edit distance one | |
Kang et al. | Mining frequent contiguous sequence patterns in biological sequences | |
Lo et al. | True suffix tree approach for discovering non-trivial repeating patterns in a music object | |
CN113065419B (en) | Pattern matching algorithm and system based on flow high-frequency content | |
JP3370787B2 (en) | Character array search method | |
Mahmud et al. | An improved hashing approach for biological sequence to solve exact pattern matching problems | |
Petri et al. | Efficient indexing algorithms for approximate pattern matching in text | |
Monostori et al. | Efficiency of data structures for detecting overlaps in digital documents | |
Loukides et al. | Bidirectional String Anchors for Improved Text Indexing and Top-$ K $ Similarity Search | |
JP4347086B2 (en) | Pattern matching apparatus and method, and program | |
KR20070003488A (en) | Regular expression representing method for efficient pattern matching in tcam and pattern matching method | |
Campbell | The Design of Text Signatures for Text Retrieval Systems | |
Haj Rachid | Two efficient techniques to find approximate overlaps between sequences | |
Kim et al. | Fast, Flexible Text Search Using Genomic Short‐Read Mapping Model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2004714404 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2006179052 Country of ref document: US Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10547328 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006506641 Country of ref document: JP Ref document number: 2111/CHENP/2005 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020057016418 Country of ref document: KR Ref document number: 20048058740 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2004714404 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020057016418 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 10547328 Country of ref document: US |