Patents by Inventor Geary Eppley

Geary Eppley 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: 20160203199
    Abstract: One or more transformations are determined between a first, a second, and nth coordinate systems; the transformations are used to transform coordinates between the coordinate systems. The transformed coordinates may be used to provide maps and location services to end users, without inaccuracies which can occur when a user's location is provided in the first coordinate system but the user's location needs to be output to a map which uses the second or nth coordinate system.
    Type: Application
    Filed: January 12, 2016
    Publication date: July 14, 2016
    Inventors: Geary Eppley, Howard Fain
  • Publication number: 20080040381
    Abstract: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (eXtensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.
    Type: Application
    Filed: October 22, 2007
    Publication date: February 14, 2008
    Applicant: Microsoft Corporation
    Inventors: Umesh Madan, Geary Eppley, David Wortendyke
  • Publication number: 20080040333
    Abstract: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (eXtensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.
    Type: Application
    Filed: October 22, 2007
    Publication date: February 14, 2008
    Applicant: Microsoft Corporation
    Inventors: Umesh Madan, Geary Eppley, David Wortendyke
  • Publication number: 20070089115
    Abstract: Example embodiments provide a high performance navigator configured to lightly touch on the elements or input of a message, without necessarily having to build an entire tree structure for each input within the message. In addition, as portions of the inputs are identified as requiring further details, only those stub nodes representing that particular input will be created; thus avoiding the setup cost associated with loading an entire tree. Other example embodiments also provide for other optimizations such as reducing the class types of node allocations needed for navigating a particular message. For instance, a single class is defined that holds enough fields to store all of the information needed for numerous input nodes. Further, these common node structures can simultaneously generate as an array that further allows for more efficient navigation of the inputs.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 19, 2007
    Inventors: Aaron Stern, Geary Eppley, Umesh Madan
  • Publication number: 20070078840
    Abstract: In an inverse query environment, exemplary embodiments describe a set of shortcut keys that can be used to augment common query functions making it easier for developers to write query expressions. Further, these shortcut keys can be used to more efficiently execute equivalent functionality of the common query expressions, without evaluating large query strings against the message. In addition, embodiments described herein allow for automatic versioning of query functions, allowing for more maintainability of query expression sets. For example, a custom query library is provided with information about standard query functions based on industry wisdom of those functions most commonly referenced and/or versioned. Developers can use abbreviated query function shortcut keys in executing equivalent functionality of the lengthier string values for common query functions.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Aaron Stern, Geary Eppley, Umesh Madan
  • Publication number: 20070078816
    Abstract: Provided herein are optimizations for an instruction tree of an inverse query engine. Secondary sub-expression elimination trees are provided, which are data structures configured to include nodes that allow for temporary variables that hold processing context or state for idempotent fragments of query expression(s). As such, when sub-paths for a query expression are processed against a message, the processing context may be stored within nodes of one or more sub-expression elimination trees. The next time this same fragment is processed, regardless of where it appears within the instruction tree, the data structure is accessed to identify and retrieve the state information such that the idempotent fragment is only calculated or evaluated once.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Aaron Stern, Pompiliu Diplan, Geary Eppley, Umesh Madan
  • Publication number: 20070078829
    Abstract: Embodiments herein prevent or mitigate attacks on inverse query engines by providing safe mode routines that allow for the acceptance of third party messages and/or query expressions, as well as prevent trusted sources from accidental attacks. The mitigations fall into two categories: compile-time and runtime. Compile-time mitigations prevent query expressions from being accepted and compiled that are susceptible to known attacks. For example, the complexity of query expressions may be limited to functions with linear runtimes; constant memory usage; or ones that do not create large strings. Further, language constructs for the criteria in the query expression may not allow for nested predicates complexities. Runtime mitigations, on the other hand, monitor the data size and processing lengths of messages against the various query expressions. If these runtime quotas are exceeded, an exception or other violation indication may be thrown (e.g., abort), deeming the evaluation as under attack.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Aaron Stern, Geary Eppley, Pompiliu Diplan, Umesh Madan
  • Publication number: 20070078874
    Abstract: Embodiments provide for select indexing, which uses an array to simultaneously construct output sets for instructions that operate on input nodesets with common axes. During evaluation of a message against an instruction tree, when a branching node with a large “splay” is iterated over, rather than iterating over an input nodeset with a common axis once per branch, the select indexing described herein iterates over the nodeset once in total. More specifically, the select index data structure includes an array of empty node sets for instructions that both, branch from a branching node, and evaluate input nodes that share a common axis. Identifiers for the input nodeset are compared to indices within the select index, and matches for the input nodes are added to the corresponding nodeset for the appropriate instruction. The results of the evaluation may then be passed to the branches of the select instructions for further processing.
    Type: Application
    Filed: October 5, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Aaron Stern, Geary Eppley, Umesh Madan
  • Publication number: 20060150200
    Abstract: A web services namespace pertains to an infrastructure for enabling creation of a wide variety of applications. The infrastructure provides a foundation for building message-based applications of various scale and complexity. The infrastructure or framework provides APIs for basic messaging, secure messaging, reliable messaging and transacted messaging. In some embodiments, the associated APIs are factored into a hierarchy of namespaces in a manner that balances utility, usability, extensibility and versionability.
    Type: Application
    Filed: December 3, 2004
    Publication date: July 6, 2006
    Applicant: Microsoft Corporation
    Inventors: Shy Cohen, Geary Eppley, Douglas Purdy, James Johnson, Stephen Millet, Stephen Swartz, Vijay Gajjala, Aaron Stern, Alexander DeJarnatt, Alfred Lee, Anand Rjagopalan, Anastasios Kasiolas, Chaitanya Upadhyay, Christopher Kaler, Craig Critchley, David Levin, David Driver, David Wortendyke, Douglas Walter, Elliot Waingold, Erik Christensen, Erin Honeycutt, Eugene Shvets, Evgeny Osovetsky, Giovanni Della-Libera, Jesus Ruiz-Scougall, John Doty, Jonathan Wheeler, Kapil Gupta, Kenneth Wolf, Krishnan Srinivasan, Lance Olson, Matthew Tavis, Mauro Ottaviani, Max Feingold, Michael Coulson, Michael Marucheck, Michael Vernal, Michael Dice, Mohamed-Hany Ramadan, Mohammad Makarechian, Natasha Jethanandani, Richard Dievendorff, Richard Hill, Ryan Sturgell, Saurab Nog, Scott Seely, Serge Sverdlov, Siddhartha Puri, Sowmyanarayanan Srinivasan, Stefan Batres, Stefan Pharies, Tirunelveli Vishwanath, Tomasz Janczuk, Uday Hegde, Umesh Madan, Vaithialingam Balayogan, Vipul Modi, Yaniv Pessach, Yasser Shohoud
  • Patent number: 7062482
    Abstract: In a network providing for electronic commerce, a computer system provides a user with access to a set of electronic commerce pages, category pages and databases for locating products electronically. To locate products electronically, the user performs a search using multiple words. The search terms in the search request are converted to canonical phonetic forms, and a phonetic keyword search based on the canonical phonetic forms is performed. The phonetic keyword search is then used to generate search results.
    Type: Grant
    Filed: September 26, 2001
    Date of Patent: June 13, 2006
    Assignee: Drugstore. com
    Inventors: Umesh Madan, Geary Eppley
  • Publication number: 20050203949
    Abstract: Systems and methods for using endpoint references in a publish-subscribe system are described. In one aspect, an endpoint reference is created by a component of the pub-sub system. The endpoint reference includes an endpoint address and one or more contexts. Each context is directed to a respective component of the pub-sub system. Each context is transparent to the respective component, and selectively opaque to all other pub-sub system components.
    Type: Application
    Filed: March 15, 2004
    Publication date: September 15, 2005
    Inventors: Luis Felipe Cabrera, Geary Eppley, Jeffrey Schlimmer, David Wortendyke, Bradford Lovering, Craig Critchley
  • Publication number: 20050204051
    Abstract: Systems and methods for open content model Web service messaging in a networked computing environment are described. In one aspect, a transport neutral message is generated that includes message recipient, endpoint addressing information, and one or more reference properties. The reference properties include selectively opaque message context. The transport neutral message is bound to a transport protocol for communication to the message recipient. At least a portion of the selectively opaque message context is. not directed to the message recipient.
    Type: Application
    Filed: March 15, 2004
    Publication date: September 15, 2005
    Inventors: Donald Box, Christopher Kaler, David Langworthy, Steven Lucco, John Shewchuk, Luis Cabrera, Craig Critchley, Geary Eppley, Bradford Lovering, Jeffrey Schlimmer, David Wortendyke, Henrik Nielsen
  • Publication number: 20050198065
    Abstract: At least one implementation described herein relates to using multiple filter engines to optimize query processing. A filter engine comprises a general matcher and at least one optimized matcher, a matcher being a filter engine in its own right. When the filter engine receives an input, the input is analyzed to determine if it can be handled by the optimized matcher. While the general matcher is fully compliant with a query language, the optimized matcher only handles a subset of the query language. Therefore, inputs that can be processed in the optimized matcher are compared against fewer filters, making the filtering process more efficient. The filter engine may also process only a portion of an input in the optimized matcher and another portion of the input in the general matcher, which reduces processing overhead.
    Type: Application
    Filed: February 19, 2004
    Publication date: September 8, 2005
    Inventors: Geary Eppley, Umesh Madan, David Wortendyke
  • Publication number: 20050187907
    Abstract: Implementations described herein relate to using a filter engine opcode tree for evaluating multiple queries. The opcode tree includes opcode nodes and branch nodes. Each opcode node includes one or more computer instructions resulting from compiling a query. Executing the opcode tree a single time evaluates each of multiple queries represented in the opcode tree. When a new opcode node is added to the tree, the context of the opcode tree and the structure of the new opcode are taken into account when modifying a branch node or an opcode node. In certain situation, a branch node is optimized to include an indexed lookup function such as a hash function, to optimize processing of opcode nodes that depend from the branch node. Adding and removing nodes to/from the opcode tree can be handled by a filter engine component or by an opcode object being added to/removed from the tree.
    Type: Application
    Filed: February 20, 2004
    Publication date: August 25, 2005
    Inventors: David Wortendyke, Umesh Madan, Geary Eppley
  • Publication number: 20050187908
    Abstract: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (extensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.
    Type: Application
    Filed: February 20, 2004
    Publication date: August 25, 2005
    Inventors: Umesh Madan, Geary Eppley, David Wortendyke
  • Publication number: 20050187906
    Abstract: An inverse query engine that uses an instruction tree to represents the queries to be applied against input, instead of applying each query individually. Each node in the instruction tree represents executable code. Each branch of the instruction tree when executed from the root node to a terminating branch node represents the instructions to be executed to process that query against the input. The instruction tree is forward-only in that once a node in a tree is processed against an input, that executable code associated with that node is not ever processed again for that node. Accordingly, processing resources and time is conserved.
    Type: Application
    Filed: February 20, 2004
    Publication date: August 25, 2005
    Inventors: Umesh Madan, David Wortendyke, Geary Eppley
  • Publication number: 20050187947
    Abstract: Implementations described herein relate to using a filter engine opcode tree for evaluating multiple queries. The opcode tree includes opcode nodes and branch nodes. Each opcode node includes one or more computer instructions resulting from compiling a query. Executing the opcode tree a single time evaluates each of multiple queries represented in the opcode tree. When a new opcode node is added to the tree, the context of the opcode tree and the structure of the new opcode are taken into account when modifying a branch node or an opcode node. In certain situation, a branch node is optimized to include an indexed lookup function such as a hash function, to optimize processing of opcode nodes that depend from the branch node. Adding and removing nodes to/from the opcode tree can be handled by a filter engine component or by an opcode object being added to/removed from the tree.
    Type: Application
    Filed: February 20, 2004
    Publication date: August 25, 2005
    Inventors: David Wortendyke, Umesh Madan, Geary Eppley
  • Publication number: 20050182754
    Abstract: An inverse query engine system having a cache integrated therein and methods for maintaining the cache are described herein. Entities storing filters in the inverse query engine cache thus do not have to maintain an individual cache to maintain the filters. The inverse query engine system cache is maintained within a bounded size by removing expired filters from the cache and trimming the cache to an optimal size when the cache reaches a maximum size. In the event that filter size cannot be determined efficiently, weights may be associated with filters stored in the cache, each weight identifying an estimate of a filter size. The weights are used to determine cache size and to maintain the cache size within particular bounds.
    Type: Application
    Filed: February 13, 2004
    Publication date: August 18, 2005
    Inventors: Umesh Madan, Geary Eppley, David Wortendyke
  • Patent number: 6778980
    Abstract: Methods and apparatuses for searching electronically-stored information are described. Specifically, in a network providing for electronic commerce, a computer system provides a user with access to a set of electronic commerce pages, category pages and databases for locating products electronically. To locate products electronically, the user performs a search using multiple words. Different forms of the words in the search request are used to generate search hits, and hit vectors containing bits corresponding to the words comprising each search hit are used to indicate the search hits.
    Type: Grant
    Filed: September 27, 2001
    Date of Patent: August 17, 2004
    Assignee: Drugstore.com
    Inventors: Umesh Madan, Geary Eppley