32,047 research outputs found

    Object Graph Programming

    Full text link
    We introduce Object Graph Programming (OGO), which enables reading and modifying an object graph (i.e., the entire state of the object heap) via declarative queries. OGO models the objects and their relations in the heap as an object graph thereby treating the heap as a graph database: each node in the graph is an object (e.g., an instance of a class or an instance of a metadata class) and each edge is a relation between objects (e.g., a field of one object references another object). We leverage Cypher, the most popular query language for graph databases, as OGO's query language. Unlike LINQ, which uses collections (e.g., List) as a source of data, OGO views the entire object graph as a single "collection". OGO is ideal for querying collections (just like LINQ), introspecting the runtime system state (e.g., finding all instances of a given class or accessing fields via reflection), and writing assertions that have access to the entire program state. We prototyped OGO for Java in two ways: (a) by translating an object graph into a Neo4j database on which we run Cypher queries, and (b) by implementing our own in-memory graph query engine that directly queries the object heap. We used OGO to rewrite hundreds of statements in large open-source projects into OGO queries. We report our experience and performance of our prototypes.Comment: 13 pages, ICSE 202

    Designing an Aspect-Oriented Persistence Layer Supporting Object-Oriented Query Using the .NET Framework 3.5

    Get PDF
    In this article, we discuss aspect persistence, how it can be implemented in the .NET framework, and how to use the .NET framework to provide object-oriented queries for aspect-oriented persistence layers. The manner in which aspect-orientation can be available in the .NET framework is investigated in the first part of this article. Then the procedure through which adding persistence concepts to the .NET framework as aspects will be explained. In the next step, providing object-oriented querying is discussed, which is the main part of this article. Having object-oriented querying ability helps processes query in the same object-oriented domain in which objects are defined (not in the relation entities' domain). Language Integrated Query (LINQ) is used to provide the ability of querying in an object-oriented manner. Then, the translation of queries from the real objects' domain to the storage-objects' domain is explained. After such translation, the queries can be run by using the existing LINQ providers (for example LINQ to SQL). Finally, translating the result of queries back into the real objects' domain is discussed

    The design and implementation of a compiler for the object-oriented data manipulation language

    Get PDF
    Object-oriented relationships, such as inheritance and covering can not be readily incorporated in classic data models. This thesis addresses this problem by the design and implementation of an object-oriented data model (O- ODM), that incorporates the object-oriented paradigm. A Multimodel and Multilingual Database System called M2DBS has been developed at the Naval Postgraduate School. This system incorporates the classic database data models along with a recently developed object-oriented data model (O-ODM). The problem addressed by this work is to design a new object-oriented data manipulation language (O-ODML) for the O-ODM. The approach is to develop and construct an O- ODML Compiler. Then assimilate the compiler with the Kernel Mapping System (KMS) of the M2DBS. The result of this thesis is a compiler for the O-ODML of the O- ODM. This O-ODML compiler takes an O-ODM query converts it into a low level intermediate language before translating it into a format that the Real Time Monitor can execute on the M2DBS. (AN)http://archive.org/details/thedesignndimple109457556U.S. Navy (U.S.N.) author.;Turkish Navy author

    Ontology-based semantic interpretation of cylindricity specification in the next-generation GPS

    Get PDF
    Cylindricity specification is one of the most important geometrical specifications in geometrical product development. This specification can be referenced from the rules and examples in tolerance standards and technical handbooks in practice. These rules and examples are described in the form of natural language, which may cause ambiguities since different designers may have different understandings on a rule or an example. To address the ambiguous problem, a categorical data model of cylindricity specification in the next-generation Geometrical Product Specifications (GPS) was proposed at the University of Huddersfield. The modeling language used in the categorical data model is category language. Even though category language can develop a syntactically correct data model, it is difficult to interpret the semantics of the cylindricity specification explicitly. This paper proposes an ontology-based approach to interpret the semantics of cylindricity specification on the basis of the categorical data model. A scheme for translating the category language to the OWL 2 Web Ontology Language (OWL 2) is presented in this approach. Through such a scheme, the categorical data model is translated into a semantically enriched model, i.e. an OWL 2 ontology for cylindricity specification. This ontology can interpret the semantics of cylindricity specification explicitly. As the benefits of such semantic interpretation, consistency checking, inference procedures and semantic queries can be performed on the OWL 2 ontology. The proposed approach could be easily extended to support the semantic interpretations of other kinds of geometrical specifications
    • 

    corecore