Patents by Inventor ROBERT LOVEJOY GOODWIN
ROBERT LOVEJOY GOODWIN has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20200151156Abstract: Technologies are described herein for denormalizing data instances. Schemas for data instances are embedded with annotations indicating how the denormalization is to be performed. Based on the annotations, one or more sub per object indexes (“sub POIs”) can be generated for each data instance and stored. The sub POIs can include a target sub POI containing data from the data instance, and at least one source sub POI containing data from another data instance, if the data instance depends on the other data instance. Data instance updates can be performed by identifying sub POIs that are related to the updated data instance in storage, and updating the related sub POIs according to the update to the data instance. The sub POIs can be sent to an indexing engine to generate an index for a search engine to facilitate searches on the data instances.Type: ApplicationFiled: January 10, 2020Publication date: May 14, 2020Inventors: Christopher Clayton McConnell, Weipeng Liu, Shahin Shayandeh, Robert Lovejoy Goodwin
-
Patent number: 10565198Abstract: The technology described herein provides a bit vector search index for a search system that uses shards. The bit vector search index comprises a data structure for indexing data about terms from a corpus of documents. The data structure includes a number of bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Bits in the bit vector are used to represent whether at least one document corresponding to the bit includes at least one term from the set of terms corresponding to the bit vector. The search index is provided in a number of shards. Each shard corresponds to a subset of documents having documents lengths within particular a range of document lengths.Type: GrantFiled: June 17, 2016Date of Patent: February 18, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Michael Joseph Hopcroft, Robert Lovejoy Goodwin
-
Patent number: 10540332Abstract: Technologies are described herein for denormalizing data instances. Schemas for data instances are embedded with annotations indicating how the denormalization is to be performed. Based on the annotations, one or more sub per object indexes (“sub POIs”) can be generated for each data instance and stored. The sub POIs can include a target sub POI containing data from the data instance, and at least one source sub POI containing data from another data instance, if the data instance depends on the other data instance. Data instance updates can be performed by identifying sub POIs that are related to the updated data instance in storage, and updating the related sub POIs according to the update to the data instance. The sub POIs can be sent to an indexing engine to generate an index for a search engine to facilitate searches on the data instances.Type: GrantFiled: August 3, 2016Date of Patent: January 21, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Christopher Clayton McConnell, Weipeng Liu, Shahin Shayandeh, Robert Lovejoy Goodwin
-
Patent number: 10467215Abstract: The technology described herein provides for identifying matching documents for a search query using a bit vector search index. When a search query is received, a term is identified from the search index, and a number of bit vectors corresponding to the term are identified. Each bit vector comprises an array of bits in which at least one bit in each bit vector indicates that a corresponding document includes the term. Each bit vector also includes other bits indicating other documents include other terms. The identified bit vectors are intersected to identify matching documents that contain the term.Type: GrantFiled: June 17, 2016Date of Patent: November 5, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Michael Joseph Hopcroft, Robert Lovejoy Goodwin
-
Publication number: 20190205305Abstract: The technology described herein provides for preliminary ranking of matching documents for a search query. A preliminary ranker uses score tables for scoring each matching document based on its relevant to a search query. The score table for a document stores pre-computed data used to derive a frequency of terms and other information in the document. The preliminary ranker uses the score table for each matching document and the terms from the search query to determine a score for each matching document. The lowest scoring documents are removed from further consideration by a final ranker.Type: ApplicationFiled: February 7, 2019Publication date: July 4, 2019Inventors: Michael Joseph HOPCROFT, Robert Lovejoy GOODWIN, Andrija ANTONIJEVIC
-
Patent number: 10242071Abstract: The technology described herein provides for preliminary ranking of matching documents for a search query. A preliminary ranker uses score tables for scoring each matching document based on its relevant to a search query. The score table for a document stores pre-computed data used to derive a frequency of terms and other information in the document. The preliminary ranker uses the score table for each matching document and the terms form the search query to determine a score for each matching document. The lowest scoring documents are removed from further consideration by a final ranker.Type: GrantFiled: June 17, 2016Date of Patent: March 26, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Michael Joseph Hopcroft, Robert Lovejoy Goodwin, Andrija Antonijevic
-
Patent number: 10229143Abstract: The technology described herein provides for storing and retrieving data in a bit vector search index. The bit vector search index stores data about terms from documents using bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Each bit in the bit vector is used to represent whether a document includes at least one term from the set of terms. A band table is used to store bit vector configurations for bands of terms having similar term characteristics. Each term is indexed in the bit vector search index according to a bit vector configuration for a band to which it belongs. When identifying bit vector storage locations for terms, explicit mappings are used for some terms and ad hoc approaches used for other terms. Explicit mappings provide specific locations for terms, while ad hoc approaches use mapping algorithms assigned to bands.Type: GrantFiled: June 17, 2016Date of Patent: March 12, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Michael Joseph Hopcroft, Robert Lovejoy Goodwin, Denis V. Deyneko
-
Publication number: 20180307664Abstract: A digital work may be annotated using an eBook reader device. Upon receiving an annotation relating to a specific portion of the digital work, an invariant location reference identifier corresponding to the specified portion of the digital work may be appended to the annotation. The annotation may then be stored in association with the digital work for later reference. In some instances, an annotation may be presented on an eBook reader device upon receipt of a valid authorization credential granting access to the annotation.Type: ApplicationFiled: February 22, 2016Publication date: October 25, 2018Inventors: Hilliard Bruce Siegel, John Lattyak, Thomas Aquinas Ryan, Robert Lovejoy Goodwin
-
Publication number: 20180058244Abstract: System for electrical energy generation from steam comprising at least one stage, each stage including: a steam-driven rotating toroidal ring; a housing comprising a toroidal cavity for containing the rotating toroidal ring, the housing further comprising at least one steam inlet, the housing further comprising a plurality of steam outlets for removing pressurized steam from the channels for at least a second portion of rotation of the rotating toroidal ring within the toroidal cavity; at least one bearing arrangement comprised by or attached to the housing within the toroidal cavity; and at least one pair of electrical coils, each electrical coil located on the outer surface of the housing at locations diagonally opposite from the other coil of each pair across the axis of the minor radius of the toroidal cavity and within the specific region where a time-varying magnetic field will occur as the rotating toroidal ring rotates.Type: ApplicationFiled: February 9, 2017Publication date: March 1, 2018Inventor: Robert Lovejoy Goodwin
-
Publication number: 20180039656Abstract: Technologies are described herein for denormalizing data instances. Schemas for data instances are embedded with annotations indicating how the denormalization is to be performed. Based on the annotations, one or more sub per object indexes (“sub POIs”) can be generated for each data instance and stored. The sub POIs can include a target sub POI containing data from the data instance, and at least one source sub POI containing data from another data instance, if the data instance depends on the other data instance. Data instance updates can be performed by identifying sub POIs that are related to the updated data instance in storage, and updating the related sub POIs according to the update to the data instance. The sub POIs can be sent to an indexing engine to generate an index for a search engine to facilitate searches on the data instances.Type: ApplicationFiled: August 3, 2016Publication date: February 8, 2018Inventors: Christopher Clayton McConnell, Weipeng Liu, Shahin Shayandeh, Robert Lovejoy Goodwin
-
Publication number: 20160378769Abstract: The technology described herein provides for preliminary ranking of matching documents for a search query. A preliminary ranker uses score tables for scoring each matching document based on its relevant to a search query. The score table for a document stores pre-computed data used to derive a frequency of terms and other information in the document. The preliminary ranker uses the score table for each matching document and the terms form the search query to determine a score for each matching document. The lowest scoring documents are removed from further consideration by a final ranker.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, ANDRIJA ANTONIJEVIC
-
Publication number: 20160378808Abstract: The technology described herein provides for indexing information in a bit vector search index. The bit vector search index comprises a data structure for indexing data about terms from a corpus of documents. The data structure includes a number of bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Bits in the bit vector are used to represent whether at least one document corresponding to the bit includes at least one term from the set of terms corresponding to the bit vector. The bit vector search index is stored by first indexing information about documents using bit vectors on a first accumulation buffer storage device. When a threshold is satisfied, the information is transferred to bit vectors on a subsequent storage device.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, FAN WANG, ANDRIJA ANTONIJEVIC, DENIS V. DEYNEKO, UTKARSH JAIN
-
Publication number: 20160378796Abstract: The technology described herein provides for a match fix-up stage that removes matching documents identified for a search query that don't actually contain terms from the search query. A representation of each document (e.g., a forward index storing a list of terms for each document) is used to identify valid matching documents (i.e., documents containing terms from the search query) and invalid matching documents (i.e., documents that don't contain terms from the search query). Any invalid matching documents are removed from further processing and ranking for the search query.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, FAN WANG, UTKARSH JAIN
-
Publication number: 20160378805Abstract: The technology described herein provides for identifying matching documents for a search query using a bit vector search index. When a search query is received, a term is identified from the search index, and a number of bit vectors corresponding to the term are identified. Each bit vector comprises an array of bits in which at least one bit in each bit vector indicates that a corresponding document includes the term. Each bit vector also includes other bits indicating other documents include other terms. The identified bit vectors are intersected to identify matching documents that contain the term.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN
-
Publication number: 20160378828Abstract: The technology described herein provides a bit vector search index for a search system that uses shards. The bit vector search index comprises a data structure for indexing data about terms from a corpus of documents. The data structure includes a number of bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Bits in the bit vector are used to represent whether at least one document corresponding to the bit includes at least one term from the set of terms corresponding to the bit vector. The search index is provided in a number of shards. Each shard corresponds to a subset of documents having documents lengths within particular a range of document lengths.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN
-
Publication number: 20160378804Abstract: The technology described herein provides for identifying matching documents for a search query using a bit vector search index. When a search query is received, a term is identified from the search index, and a number of bit vectors corresponding to the term are identified. Each bit vector comprises an array of bits in which at least one bit in each bit vector indicates that a corresponding document includes the term. Each bit vector also includes other bits indicating other documents include other terms. A determination is made regarding which bit vectors for the term to use for the matching process. The selected bit vectors are intersected to identify matching documents that contain the term.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN
-
Publication number: 20160378806Abstract: The technology described herein provides for identifying matching documents for a search query using a bit vector search index. When a search query is received, a term is identified from the search index, and a number of bit vectors corresponding to the term are identified. Each bit vector comprises an array of bits in which at least one bit in each bit vector indicates that a corresponding document includes the term. Each bit vector also includes other bits indicating other documents include other terms. A determination is made that an unacceptable number of possible matching documents is likely to be returned. In response to the determination, a strengthening row bit vector is selected to reduce the number of possible matching documents. The identified bit vectors and the selected strengthening row are intersected to identify matching documents that contain the term.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, FAN WANG, DENIS V. DEYNEKO, UTKARSH JAIN
-
Publication number: 20160378807Abstract: The technology described herein provides for storing and retrieving data in a bit vector search index. The bit vector search index stores data about terms from documents using bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Each bit in the bit vector is used to represent whether a document includes at least one term from the set of terms. A band table is used to store bit vector configurations for bands of terms having similar term characteristics. Each term is indexed in the bit vector search index according to a bit vector configuration for a band to which it belongs. When identifying bit vector storage locations for terms, explicit mappings are used for some terms and ad hoc approaches used for other terms. Explicit mappings provide specific locations for terms, while ad hoc approaches use mapping algorithms assigned to bands.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, DENIS V. DEYNEKO
-
Publication number: 20160378803Abstract: The technology described herein provides a bit vector search index for a search system. The bit vector search index comprises a data structure for indexing data about terms from a corpus of documents. The data structure includes a number of bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Bits in the bit vector are used to represent whether at least one document corresponding to the bit includes at least one term from the set of terms corresponding to the bit vector.Type: ApplicationFiled: June 17, 2016Publication date: December 29, 2016Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, JOHN G. BENNETT