| Patent application number | Description | Published |
| 20080306617 | CORE OBJECT-ORIENTED TYPE SYSTEM FOR SEMI-STRUCTURED DATA - A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced. | 12-11-2008 |
| 20080313609 | CORE OBJECT-ORIENTED TYPE SYSTEM FOR SEMI-STRUCTURED DATA - A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced. | 12-18-2008 |
| 20090102805 | Three-dimensional object simulation using audio, visual, and tactile feedback - A multi-sensory experience is provided to a user of a device that has a touch screen through an arrangement in which audio, visual, and tactile feedback is utilized to create a sensation that the user is interacting with a physically-embodied, three-dimensional (“3-D”) object. Motion having a particular magnitude, duration, or direction is imparted to the touch screen so that the user may locate objects displayed on the touch screen by feel. In an illustrative example, when combined with sound and visual effects such as animation, the tactile feedback creates a perception that a button on the touch screen moves when it is pressed by the user like a real, physically-embodied button. The button changes its appearance, an audible “click” is played by the device, and the touch screen provides a tactile feedback force against the user's finger. | 04-23-2009 |
| 20090125880 | POLYMORPHIC SOFTWARE ARCHITECTURE - A polymorphic software architecture is provided by which the shape of the architecture is enabled to be dynamically changed by splitting and fusing various architectural components (which may also be called “elements”) responsively to the environment in which the software executes, without changing the application's code. The splitting and fusing points determine, for example, the partitioning of functionality and data across architecture components, communication among the components, and the allocation of resources to the components. A profile of an end-user, or a profile of the runtime environment that supports the end-user, may be used to drive the shape of the software architecture so that overall design goals are met upon initial software deployment, and maintained as the profiles change. | 05-14-2009 |
| 20090150422 | REPRESENTING POINTERS AND BOXING IN ENVIRONMENTS USING ONLY REFERENCE TYPES - An arrangement by which pointers may be represented in a restricted software execution environment that provides access to only reference types but not pointers is realized by modeling both pointers and value type boxing using a set of boxes (i.e., containers) which describe how to retrieve the value associated with the pointer, and emitting code for accessing the set of boxes. A decompiling and recompiling process is utilized in which code arranged to run in an execution environment that supports pointers is scanned to reveal pointer and boxing usage. In one illustrative example, code is responsively emitted to create one or more specific boxes. At runtime in the restricted execution environment, an instance of a box class is created to thus emulate a pointer to the value. | 06-11-2009 |
| 20090150907 | MAPPING BETWEEN DISPARATE DATA MODELS VIA ANONYMOUS FUNCTIONS - Systems and methods that transform an input stream to an output stream by employing a hybrid of declarative features and procedural features. A transformation component includes a declaration component that identifies data types, which enables users to define customized event(s) whereupon user functions can be called, and a procedural component that executes the logic of the functions that are called to perform operations of the functions. | 06-11-2009 |
| 20090235282 | APPLICATION REMOTE CONTROL - Application remote control is affected across execution contexts. In one instance, input can be acquired from controlled applications and employed by other applications. Additionally or alternatively, remote control can be employed to test applications while minimizing unintended changes to applications under test caused by observation. | 09-17-2009 |
| 20090319496 | DATA QUERY TRANSLATING INTO MIXED LANGUAGE DATA QUERIES - Data source queries may be specified in various languages, such as SQL, XQuery, and object-oriented languages, and each language may have various linguistic features that enable different types of queries. It may be advantageous to formulate mixed language queries having portions specified in a first language and portions specified in a second language, and to provide mixed language query evaluation components that can parse portions of queries of different languages. It may also be advantageous to permit the translation of single language queries into multiple languages to be parsed by such mixed language query evaluation components. Such techniques may permit queries to utilize linguistic features and processing techniques of one language that are less efficient, less direct, or simply unavailable in another language. | 12-24-2009 |
| 20090319497 | AUTOMATED TRANSLATION OF SERVICE INVOCATIONS FOR BATCH PROCESSING - The utilization of data services (such as web services) may involve the invocation of services, which may reduce performance and overburden the server. In some scenarios, the invocation may be specified in a language that does not support batch invocation, but it may not be feasible to re-code the invocations in a language that supports batching. Instead, the service invocations may be automatically translated into a batch logic specified in a batch-capable language and sent to the service as a batch. For example, a local proxy may receive a language-integrated query having two or more service invocations, compile the query into an expression tree including the two or more invocations, and send the expression tree to the service host to achieve the batch processing of the service invocations. | 12-24-2009 |
| 20090319498 | QUERY PROCESSING PIPELINES WITH SINGLE-ITEM AND MULTIPLE-ITEM QUERY OPERATORS - Queries against data sources (such as language-integrated queries to be applied against relational databases) may be prepared for processing by a query processing pipeline. This pipeline performs services including transforming the query into a form more easily applied by the data source, e.g., into SQL, by matching query terms with query operators configured to handle various query operations. Many query processing pipelines include single-item query operators that perform individual operations (e.g., an updating query operator that specifies an updating of individual records of a table.) An integrated query pipeline may be devised that includes both single-item query operators and multiple-item query operators that specify operations on sets of data items. An integrated query processing pipeline may analyze the query to determine whether a single-item or multiple-item operation is specified in order to select an appropriate query operator, which may improve the efficiency and performance of the data source querying. | 12-24-2009 |
| 20090319499 | QUERY PROCESSING WITH SPECIALIZED QUERY OPERATORS - Queries targeting various data sources are processed in a query processing pipeline that parses the query into a set of operations (e.g., an expression tree or a translated SQL query) using a set of query operators, each handling a particular type of operation. The query operators are often designed in an unspecialized manner, such that each query operator handles one query operation in an atomic, generic manner (e.g., sorting generic data items for an ORDER BY clause.) More efficient queries may be devised by including specialized queries that operate in common but special cases, such as a sorting of a particular data type (e.g., a floating-point number sort) or a sequence of two or more operations that are often performed together (e.g., a WHERE test of an attribute followed by a SELECT of the same attribute.) The use of specialized operators may result in the formulation of more efficient queries. | 12-24-2009 |
| 20090327220 | AUTOMATED CLIENT/SERVER OPERATION PARTITIONING - An operation (such as a relational query) may be processed on a processing engine (such as a relational database server) on behalf of a client. A conventional processing involves the delivery of the operation to the processing engine, which executes the entire operation to completion and returns a result data set. It may be more efficient to allocate part of the operation to be performed on the client, but a developer may be unable or unavailable to rewrite the operation in a distributed manner. Instead, the operation may be automatically partitioned into a pre-engine client portion, a processing engine portion, and a client portion, and the instructions of each portion may be automatically allocated respectively to the client, the server, and the client. The partitioning may be adjusted to conserve computing resources, such as bandwidth and storage, and the instructions may be reordered to improve the processing of the operation. | 12-31-2009 |
| 20100057772 | AUTOMATIC DETERMINATION OF AN ENTITY'S SEARCHABLE SOCIAL NETWORK USING ROLE-BASED INFERENCES - Techniques and systems for determining a first entity's social network are provided herein. Data is extracted from one or more data sources associated with the first entity. Once data is extracted, a role of a second entity may be inferred using inference algorithms, rules, keywords, and/or tags in the data extracted. The first entity's social network may be determined by linking the first entity to the second entity and the second entity's role(s) in relation to the first entity. It will be appreciated that the first entity may also search his/her/its network and/or other entities' social networks if the first entity has been granted access by the other entities, for example. Additionally, information about entities found during the first entity's search may be added to a data source associated with the first entity. | 03-04-2010 |
| 20100325607 | Generating Code Meeting Approved Patterns - A compiler deployed as a component of an integrated development environment (“IDE”) is adapted to transform source code into target code that is correct by construction by complying with approved patterns described by an external configuration file which is utilized to parameterize the generation of the target code by a code generator. The approved patterns can express various design requirements, guidelines, policies, and the like that are acceptable for the target code to include as well as those which are unacceptable. A rules generator that applies regular tree grammar is configured to encapsulate the approved patterns in the external configuration file using a formal description that is machine-readable by the code generator. A source code translator is alternatively utilized to transform non-compliant source code into compliant source code that adheres to the approved patterns. | 12-23-2010 |