Machine Identification of Grammar Rules That Match a Search Query

US2017193099A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017193099-A1
Application numberUS-201615396643-A
CountryUS
Kind codeA1
Filing dateDec 31, 2016
Priority dateDec 31, 2015
Publication dateJul 6, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A search server receives a first grammar rule and a second grammar rule via a network communication device. The first grammar rule specifies a first set of entity types and the second grammar rule specifies a second set of entity types. The intersection of the first and second sets includes at least one entity type. The search server generates a first grammar tree to represent the first grammar rule and a second grammar tree to represent the second grammar rule. The first root node of the first grammar tree and a second root node of the second grammar tree are identical. The search server merges the first and second grammar trees to form a merged grammar tree that represents a union of the first and second sets of entity types. The search server optimizes the merged grammar tree by purging duplicate nodes from each level of the merged grammar tree.

First claim

Opening claim text (preview).

What is claimed is: 1 . A search server comprising: a network communication device; and a processing device that executes computer-readable instructions that, when executed by the processing device, cause the processing device to: receive a first grammar rule and a second grammar rule via the network communication device, wherein the first grammar rule specifies a first set of entity types and the second grammar rule specifies a second set of entity types, and wherein the intersection of the first set and the second set comprises at least one entity type; generate a first grammar tree to represent the first grammar rule and a second grammar tree to represent the second grammar rule, wherein a first root node of the first grammar tree and a second root node of the second grammar tree are identical; merge the first grammar tree and the second grammar tree to form a merged grammar tree that represents a union of the first set of entity types and the second set of entity types; and optimize the merged grammar tree by purging duplicate nodes from each level of the merged grammar tree. 2 . The search server of claim 1 , wherein generating the first grammar tree comprises: instantiating a tree data structure; identifying the first set of entity types; instantiating a tree node for each entity type in the first set of entity types; and instantiating tree edges to connect the tree nodes that correspond with adjacent entity types. 3 . The search server of claim 1 , wherein the first root node of the first grammar tree represents a starting point for the first grammar rule and the second root node of the second grammar tree represents a starting point for the second grammar rule. 4 . The search server of claim 1 , wherein merging the first grammar tree and the second grammar tree comprises: purging the second root node of the second grammar tree; and appending child nodes of the second root node to the first root node of the first grammar tree as child nodes of the first root node. 5 . The search server of claim 4 , wherein merging the first grammar tree and the second grammar tree further comprises: determining a first value that represents a size of the first grammar tree; determining a second value that represents a size of the second grammar tree; and determining that the second value is smaller than the first value. 6 . The search server of claim 1 , wherein optimizing the merged grammar tree comprises: determining that a first node and a second node on a particular level of the merged grammar tree are identical; purging the second node; and appending child nodes of the second node to the first node as child nodes of the first node. 7 . The search server of claim 1 , wherein the computer-readable instructions further cause the processing device to: receive a search query via the network communication device; and utilize the merged grammar tree to determine whether the search query satisfies the first grammar rule and/or the second grammar rule. 8 . The search server of claim 7 , wherein determining whether the search query satisfies the first grammar rule and/or the second grammar rule comprises: tokenizing the search query to generate tokens; utilizing the tokens to form n-grams; identifying entity types associated with the n-grams; generating a mapping of the entity types and token start positions of the entity types to token end positions of the entity types; and utilizing the mapping to determine whether the search query matches the first grammar rule and/or the second grammar rule. 9 . The search server of claim 8 , wherein generating the mapping comprises: generating a first mapping mechanism that maps the token start positions and token end positions to the entity types; generating a second mapping mechanism by inverting the first mapping mechanism, wherein the second mapping mechanism maps the entity types to the token start positions and the token end positions; and generating a third mapping mechanism by transforming the second mapping mechanism, wherein the third mapping mechanism maps the entity types and the token start positions of the entity types to the token end positions of the entity types. 10 . The search server of claim 8 , wherein utilizing the mapping comprises: initiating a token index and setting the token index to zero; initiating a level index and setting the level index to one; querying the mapping with the token index to identify the entity type that starts at the token index; determining that the merged grammar tree includes a node for the identified entity type at a level indicated by the level index; retrieving the end token position of the entity type from the mapping; setting the token index to one plus the end token position; incrementing the level index by one; and determining that the token index points to null and the level index points to the end of the first grammar rule or the second grammar rule. 11 . The search server of claim 7 , wherein the computer-readable instructions further cause the processing device to: determine a set of entity types that the search query must include in order to utilize the merged grammar tree for grammar matching; and store the entity types in the set as a list in a storage device. 12 . The search server of claim 11 , wherein utilizing the merged grammar tree comprises: retrieving the list from the storage device; and determining that the search query includes the entity types specified in the list. 13 . A computer program product encoded on a non-transitory computer readable storage medium comprising instructions that when executed by a processing device cause the processing device to perform operations comprising: receiving a first grammar rule and a second grammar rule via a network communication device, wherein the first grammar rule specifies a first set of entity types and the second grammar rule specifies a second set of entity types, and wherein the intersection of the first set and the second set comprises at least one entity type; generating a first grammar tree to represent the first grammar rule and a second grammar tree to represent the second grammar rule, wherein a first root node of the first grammar tree and a second root node of the second grammar tree are identical; merging the first grammar tree and the second grammar tree to form a merged grammar tree that represents a union of the first set of entity types and the second set of entity types; optimizing the merged grammar tree by purging duplicate nodes from each level of the merged grammar tree; receiving a search query via the network communication device; and utilizing the merged grammar tree to determine whether the search query satisfies the first grammar rule and/or the second grammar rule. 14 . The computer program product of claim 13 , wherein generating the first grammar tree comprises: instantiating a tree data structure; identifying the first set of entity types; instantiating a tree node for each entity type in the first set of entity types; and instantiating tree edges to connect the tree nodes that correspond with adjacent entity types. 15 . The computer program product of claim 13 , wherein merging the first grammar tree and the second grammar tree comprises: purging the second root node of the second grammar tree; and appending child nodes of the second root node to the first root node of the first grammar tree as child nodes of the first root node. 16 . The computer program product of claim 13 , wherein determining whether the

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017193099A1 cover?
A search server receives a first grammar rule and a second grammar rule via a network communication device. The first grammar rule specifies a first set of entity types and the second grammar rule specifies a second set of entity types. The intersection of the first and second sets includes at least one entity type. The search server generates a first grammar tree to represent the first grammar…
Who is the assignee on this patent?
Quixey Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/332. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 06 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).