Querying Property Graphs Using SPARQL Via Gremlinator

Total Page:16

File Type:pdf, Size:1020Kb

Querying Property Graphs Using SPARQL Via Gremlinator Killing Two Birds with One Stone – erying Property Graphs using SPARQL via Gremlinator Harsh Thakkar Dharmen Punjani University of Bonn National and Kapodistrian University of Athens Bonn, Germany 53117 Athens, Greece 10679 [email protected] [email protected] Jens Lehmann Sören Auer University of Bonn & Fraunhofer IAIS TIB & Leibniz University of Hannover Bonn, Germany 53117 Hannover, Germany 30167 [email protected] [email protected] ABSTRACT of queries eciently and can serve as a foundation for a range Knowledge graphs have become popular over the past decade and of Articial Intelligence applications. The Resource Description frequently rely on the Resource Description Framework (RDF) or Framework (RDF) and Property Graphs (PGs) are popular languages Property Graph (PG) databases as data models. However, the query for knowledge graphs. For RDF, the SPARQL query language was languages for these two data models – SPARQL for RDF and the standardized by W3C, whereas for PGs several languages are fre- PG traversal language Gremlin – are lacking interoperability. We quently used, including Gremlin [11]. present Gremlinator, the rst translator from SPARQL – the W3C PGs and RDF have evolved from dierent origins and still have standardised language for RDF – and Gremlin – a popular property largely disjoint user communities. RDF is part of the Semantic graph traversal language. Gremlinator translates SPARQL queries Web initiative with a focus on expressive data modelling as well to Gremlin path traversals for executing graph pattern matching as data publication and linking. PGs originate from the database queries over graph databases. This allows a user, who is well versed community with a focus on ecient execution of graph traversals. in SPARQL, to access and query a wide variety of Graph Data With Gremlinator, we build a bridge between both communi- Management Systems (DMSs) avoiding the steep learning curve ties and research the interoperability of RDF and PG query lan- for adapting to a new Graph Query Language (GQL). Gremlin is guages [16]. Moreover, we allow combining the best of both worlds: a graph computing system-agnostic traversal language (covering Powerful modelling capabilities as well as data publication and both OLTP graph database or OLAP graph processors), making it a interlinking methods combined with ecient graph traversal ex- desirable choice for supporting interoperability for querying Graph ecution. In particular, Gremlinator has the following advantages: DMSs. Gremlinator currently supports the translation of a subset (1) Existing SPARQL-based applications can switch to property of SPARQL 1.0, specically the SPARQL SELECT queries. graphs in a non-intrusive way. (2) It provides the foundation for a hybrid use of RDF triple stores and property graph DMS – a system KEYWORDS could detect which DMS is more ecient for answering a particular query [5] and redirect the query accordingly. In particular, property Property Graph, SPARQL, Gremlin, Graph Traversal, Gremlinator graph databases have been shown to work very well for a wide ACM Reference format: range of queries which benet from locality in a graph. Rather Harsh Thakkar, Dharmen Punjani, Jens Lehmann, and Sören Auer. 2016. than performing expensive joins, property graph databases use Killing Two Birds with One Stone – Querying Property Graphs using micro indices to perform traversals. (3) Users familiar with the SPARQL via Gremlinator. In Proceedings of ACM Conference, Washington, W3C standardized SPARQL query language do not need to learn DC, USA, July 2017 (Conference’17), 4 pages. DOI: 10.1145/nnnnnnn.nnnnnnn another query language. arXiv:1801.09556v1 [cs.DB] 25 Jan 2018 Overall, we make the following contributions: • A novel approach for mapping SPARQL queries to Grem- 1 INTRODUCTION lin pattern matching traversals, Gremlinator, which is the Knowledge graphs model the real world in terms of entities and rst work converting an RDF to a property graph query relations between them. They became popular as they are an intu- language to the best of our knowledge. itive and simple data model, which allows to execute many types • An openly available implementation for executing SPARQL queries over a plethora of third party graph DMS such as Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed Neo4J, Sparksee, OrientDB, etc. using the Apache TinkerPop for prot or commercial advantage and that copies bear this notice and the full citation framework. on the rst page. Copyrights for components of this work owned by others than ACM The remainder of the article is organized as follows: Section2 must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specic permission and/or a summarizes the related work. Section3 sheds light on the impor- fee. Request permissions from [email protected]. tance of Gremlin, briey discusses the Gremlinator approach and Conference’17, Washington, DC, USA its limitations. Section4 presents the demonstration details and © 2016 ACM. 978-x-xxxx-xxxx-x/YY/MM...$15.00 DOI: 10.1145/nnnnnnn.nnnnnnn Conference’17, July 2017, Washington, DC, USA H. Thakkar et al. the value Gremlinator will cater to its users. Finally, Section5 Gremlin is more general than, e.g. ,CYPHER, as it provides in concludes the article and describes the future work. addition to a query language a common execution platform for supporting any graph computing system (including both OLTP and 2 RELATED WORK OLAP graph processors), for addressing the querying interoperabil- We present a brief summary of related work with regard to tech- ity issue (see Figure1 (a)). Together with Apache TinkerPop frame- niques and tools that support the translation and execution of work, Gremlin is a language and a virtual machine, it is possible formal query languages, addressing the interoperability issue. to design another traversal language that compiles to the Gremlin SPARQL ! SQL: There is a substantial amount of work been traversal machine (analogous to how Scala compiles to the JVM), done for conversion of SPARQL queries to SQL queries, such as – ref. Figure1 (b). Gremlin provides the declarative (SPARQL style) Ontop [3], R2RML [12], Elliot et al. [6], Chebotko et al. [4], Zemke pattern matching querying construct using the .match()-step. et al. [18], Priyanka et al. [9]. Ontop [3], one of the most popular For brevity, we abstain from dwelling into the denitions and system, exposes relational databases as virtual RDF graphs by link- formal semantics of Gremlin, rather point the interested reader ing the terms (classes and properties) in the ontology to the data to the literature [11, 17]. Furthermore, one may also refer to [16], sources through mappings. This virtual RDF graph can then be where the complete SPARQL to Gremlin translation approach is queried using SPARQL. discussed in detail. SQL ! SPARQL: RETRO [10] presents a formal semantics pre- serving the translation from SQL to SPARQL. It follows a schema 3.2 Gremlinator Pipeline and query mapping approach rather than to transform the data We now present the architectural overview of Gremlinator in Fig- physically. The schema mapping derives a domain-specic rela- ure2 and discuss each of the four steps of its execution pipeline. tional schema from RDF data. Query mapping transforms an SQL Step 1. The input SPARQL query is rst parsed using the Jena query over the schema into an equivalent SPARQL query, which in ARQ module, thereby: (i) validating the query and (ii) generating turn is executed against the RDF store. its abstract syntax tree (AST) representation. SQL ! CYPHER: CYPHER1 is the graph query language used Step 2. From the obtained AST of the parsed SPARQL query, to query the Neo4j2 graph database. There has been no work yet to Gremlinator then visits each basic graph pattern (BGP), mapping use SQL on top of CYPHER. However, there are some examples3 them to the corresponding Gremlin single step traversals (SSTs). A that show the equivalent CYPHER queries for certain SQL queries. SST in Gremlin is an atomic traversal step (ψs ) we describe in [16] in detail. 3 GREMLINATOR APPROACH Step 3. Thereafter, depending on the operator precedence ob- In this section we discuss the why we choose Gremlin as a prop- tained from the AST of the parsed SPARQL query, each of the cor- erty graph query language and briey describe the Gremlinator responding SPARQL keywords are mapped to their corresponding approach. instruction steps from the Gremlin instruction library. Thereafter a nal conjunctive traversal (Ψ) is generated appending the SSTs and 3.1 Why Apache TinkerPop Gremlin? instruction steps. This can be perceived analogous to the SPARQL query language, wherein a set of BGPs form a single complex graph Gremlin is a system-agnostic query language developed by Apache pattern (CGP). 4 TinkerPop . It supports both – pattern matching (declarative) and Step 4. This nal conjunctive traversal (Ψ) is used to generate graph traversal (imperative) style of querying over property graphs. bytecode5 which can be used on multiple language and platform variants of the Apache TinkerPop Gremlin family. Figure 2: The architectural overview of Gremlinator. Figure 1: The Gremlin Traversal Language and Machine. 3.3 Pre-dened Queries Considerations. We encode the prexes of SPARQL queries within 1 CYPHER Query Language (https://neo4j.com/developer/cypher-query-language/) the Gremlinator implementation. In order to aid the SPARQL to 2Neo4j (https://neo4j.com/) 3SQL to CYPHER (https://neo4j.com/developer/guide-sql-to-cypher/) 4Gremlin: Apache TinkerPop’s graph traversal language and machine (https:// 5Bytecode is simply serialized representation of a traversal, i.e. a list of ordered instruc- tinkerpop.apache.org/) tions where an instruction is a string operator and a (attened) array of arguments. Killing Two Birds with One Stone via Gremlinator Conference’17, July 2017, Washington, DC, USA Table 1: Query feature and description Query Id.
Recommended publications
  • Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects
    Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects Philipp Seifer Johannes Härtel Martin Leinberger University of Koblenz-Landau University of Koblenz-Landau University of Koblenz-Landau Software Languages Team Software Languages Team Institute WeST Koblenz, Germany Koblenz, Germany Koblenz, Germany [email protected] [email protected] [email protected] Ralf Lämmel Steffen Staab University of Koblenz-Landau University of Koblenz-Landau Software Languages Team Koblenz, Germany Koblenz, Germany University of Southampton [email protected] Southampton, United Kingdom [email protected] Abstract including project and domain specific ones. Common applica- Graph data models are interesting in various domains, in tion domains are management systems and data visualization part because of the intuitiveness and flexibility they offer tools. compared to relational models. Specialized query languages, CCS Concepts • General and reference → Empirical such as Cypher for property graphs or SPARQL for RDF, studies; • Information systems → Query languages; • facilitate their use. In this paper, we present an empirical Software and its engineering → Software libraries and study on the usage of graph-based query languages in open- repositories. source Java projects on GitHub. We investigate the usage of SPARQL, Cypher, Gremlin and GraphQL in terms of popular- Keywords Empirical Study, GitHub, Graphs, Query Lan- ity and their development over time. We select repositories guages, SPARQL, Cypher, Gremlin, GraphQL based on dependencies related to these technologies and ACM Reference Format: employ various popularity and source-code based filters and Philipp Seifer, Johannes Härtel, Martin Leinberger, Ralf Lämmel, ranking features for a targeted selection of projects.
    [Show full text]
  • Towards an Integrated Graph Algebra for Graph Pattern Matching with Gremlin
    Towards an Integrated Graph Algebra for Graph Pattern Matching with Gremlin Harsh Thakkar1, S¨orenAuer1;2, Maria-Esther Vidal2 1 Smart Data Analytics Lab (SDA), University of Bonn, Germany 2 TIB & Leibniz University of Hannover, Germany [email protected], [email protected] Abstract. Graph data management (also called NoSQL) has revealed beneficial characteristics in terms of flexibility and scalability by differ- ently balancing between query expressivity and schema flexibility. This peculiar advantage has resulted into an unforeseen race of developing new task-specific graph systems, query languages and data models, such as property graphs, key-value, wide column, resource description framework (RDF), etc. Present-day graph query languages are focused towards flex- ible graph pattern matching (aka sub-graph matching), whereas graph computing frameworks aim towards providing fast parallel (distributed) execution of instructions. The consequence of this rapid growth in the variety of graph-based data management systems has resulted in a lack of standardization. Gremlin, a graph traversal language, and machine provide a common platform for supporting any graph computing sys- tem (such as an OLTP graph database or OLAP graph processors). In this extended report, we present a formalization of graph pattern match- ing for Gremlin queries. We also study, discuss and consolidate various existing graph algebra operators into an integrated graph algebra. Keywords: Graph Pattern Matching, Graph Traversal, Gremlin, Graph Alge- bra 1 Introduction Upon observing the evolution of information technology, we can observe a trend arXiv:1908.06265v2 [cs.DB] 7 Sep 2019 from data models and knowledge representation techniques being tightly bound to the capabilities of the underlying hardware towards more intuitive and natural methods resembling human-style information processing.
    [Show full text]
  • Licensing Information User Manual
    Oracle® Database Express Edition Licensing Information User Manual 18c E89902-02 February 2020 Oracle Database Express Edition Licensing Information User Manual, 18c E89902-02 Copyright © 2005, 2020, Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or “commercial computer software documentation” pursuant to the applicable Federal
    [Show full text]
  • Large Scale Querying and Processing for Property Graphs Phd Symposium∗
    Large Scale Querying and Processing for Property Graphs PhD Symposium∗ Mohamed Ragab Data Systems Group, University of Tartu Tartu, Estonia [email protected] ABSTRACT Recently, large scale graph data management, querying and pro- cessing have experienced a renaissance in several timely applica- tion domains (e.g., social networks, bibliographical networks and knowledge graphs). However, these applications still introduce new challenges with large-scale graph processing. Therefore, recently, we have witnessed a remarkable growth in the preva- lence of work on graph processing in both academia and industry. Querying and processing large graphs is an interesting and chal- lenging task. Recently, several centralized/distributed large-scale graph processing frameworks have been developed. However, they mainly focus on batch graph analytics. On the other hand, the state-of-the-art graph databases can’t sustain for distributed Figure 1: A simple example of a Property Graph efficient querying for large graphs with complex queries. Inpar- ticular, online large scale graph querying engines are still limited. In this paper, we present a research plan shipped with the state- graph data following the core principles of relational database systems [10]. Popular Graph databases include Neo4j1, Titan2, of-the-art techniques for large-scale property graph querying and 3 4 processing. We present our goals and initial results for querying ArangoDB and HyperGraphDB among many others. and processing large property graphs based on the emerging and In general, graphs can be represented in different data mod- promising Apache Spark framework, a defacto standard platform els [1]. In practice, the two most commonly-used graph data models are: Edge-Directed/Labelled graph (e.g.
    [Show full text]
  • A Comparison Between Cypher and Conjunctive Queries
    A comparison between Cypher and conjunctive queries Jaime Castro and Adri´anSoto Pontificia Universidad Cat´olicade Chile, Santiago, Chile 1 Introduction Graph databases are one of the most popular type of NoSQL databases [2]. Those databases are specially useful to store data with many relations among the entities, like social networks, provenance datasets or any kind of linked data. One way to store graphs is property graphs, which is a type of graph where nodes and edges can have attributes [1]. A popular graph database system is Neo4j [4]. Neo4j is used in production by many companies, like Cisco, Walmart and Ebay [4]. The data model is like a property graph but with small differences. Its query language is Cypher. The expressive power is not known because currently Cypher does not have a for- mal definition. Although there is not a standard for querying graph databases, this paper proposes a comparison between Cypher, because of the popularity of Neo4j, and conjunctive queries which are arguably the most popular language used for pattern matching. 1.1 Preliminaries Graph Databases. Graphs can be used to store data. The nodes represent objects in a domain of interest and edges represent relationships between these objects. We assume familiarity with property graphs [1]. Neo4j graphs are stored as property graphs, but the nodes can have zero or more labels, and edges have exactly one type (and not a label). Now we present the model we work with. A Neo4j graph G is a tuple (V; E; ρ, Λ, τ; Σ) where: 1. V is a finite set of nodes, and E is a finite set of edges such that V \ E = ;.
    [Show full text]
  • Introduction to Graph Database with Cypher & Neo4j
    Introduction to Graph Database with Cypher & Neo4j Zeyuan Hu April. 19th 2021 Austin, TX History • Lots of logical data models have been proposed in the history of DBMS • Hierarchical (IMS), Network (CODASYL), Relational, etc • What Goes Around Comes Around • Graph database uses data models that are “spiritual successors” of Network data model that is popular in 1970’s. • CODASYL = Committee on Data Systems Languages Supplier (sno, sname, scity) Supply (qty, price) Part (pno, pname, psize, pcolor) supplies supplied_by Edge-labelled Graph • We assign labels to edges that indicate the different types of relationships between nodes • Nodes = {Steve Carell, The Office, B.J. Novak} • Edges = {(Steve Carell, acts_in, The Office), (B.J. Novak, produces, The Office), (B.J. Novak, acts_in, The Office)} • Basis of Resource Description Framework (RDF) aka. “Triplestore” The Property Graph Model • Extends Edge-labelled Graph with labels • Both edges and nodes can be labelled with a set of property-value pairs attributes directly to each edge or node. • The Office crew graph • Node �" has node label Person with attributes: <name, Steve Carell>, <gender, male> • Edge �" has edge label acts_in with attributes: <role, Michael G. Scott>, <ref, WiKipedia> Property Graph v.s. Edge-labelled Graph • Having node labels as part of the model can offer a more direct abstraction that is easier for users to query and understand • Steve Carell and B.J. Novak can be labelled as Person • Suitable for scenarios where various new types of meta-information may regularly
    [Show full text]
  • Handling Scalable Approximate Queries Over Nosql Graph Databases: Cypherf and the Fuzzy4s Framework
    Castelltort, A. , & Martin, T. (2017). Handling scalable approximate queries over NoSQL graph databases: Cypherf and the Fuzzy4S framework. Fuzzy Sets and Systems. https://doi.org/10.1016/j.fss.2017.08.002 Peer reviewed version License (if available): CC BY-NC-ND Link to published version (if available): 10.1016/j.fss.2017.08.002 Link to publication record in Explore Bristol Research PDF-document This is the author accepted manuscript (AAM). The final published version (version of record) is available online via Elsevier at https://www.sciencedirect.com/science/article/pii/S0165011417303093?via%3Dihub . Please refer to any applicable terms of use of the publisher. University of Bristol - Explore Bristol Research General rights This document is made available in accordance with publisher policies. Please cite only the published version using the reference above. Full terms of use are available: http://www.bristol.ac.uk/pure/about/ebr-terms *Manuscript 1 2 3 4 5 6 7 8 9 Handling Scalable Approximate Queries over NoSQL 10 Graph Databases: Cypherf and the Fuzzy4S Framework 11 12 13 Arnaud Castelltort1, Trevor Martin2 14 1 LIRMM, CNRS-University of Montpellier, France 15 2Department of Engineering Mathematics, University of Bristol, UK 16 17 18 19 20 21 Abstract 22 23 NoSQL databases are currently often considered for Big Data solutions as they 24 25 offer efficient solutions for volume and velocity issues and can manage some of 26 complex data (e.g., documents, graphs). Fuzzy approaches are yet often not 27 28 efficient on such frameworks. Thus this article introduces a novel approach to 29 30 define and run approximate queries over NoSQL graph databases using Scala 31 by proposing the Fuzzy4S framework and the Cypherf fuzzy declarative query 32 33 language.
    [Show full text]
  • The Query Translation Landscape: a Survey
    The Query Translation Landscape: a Survey Mohamed Nadjib Mami1, Damien Graux2,1, Harsh Thakkar3, Simon Scerri1, Sren Auer4,5, and Jens Lehmann1,3 1Enterprise Information Systems, Fraunhofer IAIS, St. Augustin & Dresden, Germany 2ADAPT Centre, Trinity College of Dublin, Ireland 3Smart Data Analytics group, University of Bonn, Germany 4TIB Leibniz Information Centre for Science and Technology, Germany 5L3S Research Center, Leibniz University of Hannover, Germany October 2019 Abstract Whereas the availability of data has seen a manyfold increase in past years, its value can be only shown if the data variety is effectively tackled —one of the prominent Big Data challenges. The lack of data interoperability limits the potential of its collective use for novel applications. Achieving interoperability through the full transformation and integration of diverse data structures remains an ideal that is hard, if not impossible, to achieve. Instead, methods that can simultaneously interpret different types of data available in different data structures and formats have been explored. On the other hand, many query languages have been designed to enable users to interact with the data, from relational, to object-oriented, to hierarchical, to the multitude emerging NoSQL languages. Therefore, the interoperability issue could be solved not by enforcing physical data transformation, but by looking at techniques that are able to query heterogeneous sources using one uniform language. Both industry and research communities have been keen to develop such techniques, which require the translation of a chosen ’universal’ query language to the various data model specific query languages that make the underlying data accessible. In this article, we survey more than forty query translation methods and tools for popular query languages, and classify them according to eight criteria.
    [Show full text]
  • Full-Graph-Limited-Mvn-Deps.Pdf
    org.jboss.cl.jboss-cl-2.0.9.GA org.jboss.cl.jboss-cl-parent-2.2.1.GA org.jboss.cl.jboss-classloader-N/A org.jboss.cl.jboss-classloading-vfs-N/A org.jboss.cl.jboss-classloading-N/A org.primefaces.extensions.master-pom-1.0.0 org.sonatype.mercury.mercury-mp3-1.0-alpha-1 org.primefaces.themes.overcast-${primefaces.theme.version} org.primefaces.themes.dark-hive-${primefaces.theme.version}org.primefaces.themes.humanity-${primefaces.theme.version}org.primefaces.themes.le-frog-${primefaces.theme.version} org.primefaces.themes.south-street-${primefaces.theme.version}org.primefaces.themes.sunny-${primefaces.theme.version}org.primefaces.themes.hot-sneaks-${primefaces.theme.version}org.primefaces.themes.cupertino-${primefaces.theme.version} org.primefaces.themes.trontastic-${primefaces.theme.version}org.primefaces.themes.excite-bike-${primefaces.theme.version} org.apache.maven.mercury.mercury-external-N/A org.primefaces.themes.redmond-${primefaces.theme.version}org.primefaces.themes.afterwork-${primefaces.theme.version}org.primefaces.themes.glass-x-${primefaces.theme.version}org.primefaces.themes.home-${primefaces.theme.version} org.primefaces.themes.black-tie-${primefaces.theme.version}org.primefaces.themes.eggplant-${primefaces.theme.version} org.apache.maven.mercury.mercury-repo-remote-m2-N/Aorg.apache.maven.mercury.mercury-md-sat-N/A org.primefaces.themes.ui-lightness-${primefaces.theme.version}org.primefaces.themes.midnight-${primefaces.theme.version}org.primefaces.themes.mint-choc-${primefaces.theme.version}org.primefaces.themes.afternoon-${primefaces.theme.version}org.primefaces.themes.dot-luv-${primefaces.theme.version}org.primefaces.themes.smoothness-${primefaces.theme.version}org.primefaces.themes.swanky-purse-${primefaces.theme.version}
    [Show full text]
  • An Efficient and Scalable Platform for Java Source Code Analysis Using Overlaid Graph Representations
    Received March 10, 2020, accepted April 7, 2020, date of publication April 13, 2020, date of current version April 29, 2020. Digital Object Identifier 10.1109/ACCESS.2020.2987631 An Efficient and Scalable Platform for Java Source Code Analysis Using Overlaid Graph Representations OSCAR RODRIGUEZ-PRIETO1, ALAN MYCROFT2, AND FRANCISCO ORTIN 1,3 1Department of Computer Science, University of Oviedo, 33007 Oviedo, Spain 2Department of Computer Science and Technology, University of Cambridge, Cambridge CB2 1TN, U.K. 3Department of Computer Science, Cork Institute of Technology, Cork 021, T12 P928 Ireland Corresponding author: Francisco Ortin ([email protected]) This work was supported in part by the Spanish Department of Science, Innovation and Universities under Project RTI2018-099235-B-I00. The work of Oscar Rodriguez-Prieto and Francisco Ortin was supported by the University of Oviedo through its support to official research groups under Grant GR-2011-0040. ABSTRACT Although source code programs are commonly written as textual information, they enclose syntactic and semantic information that is usually represented as graphs. This information is used for many different purposes, such as static program analysis, advanced code search, coding guideline checking, software metrics computation, and extraction of semantic and syntactic information to create predictive models. Most of the existing systems that provide these kinds of services are designed ad hoc for the particular purpose they are aimed at. For this reason, we created ProgQuery, a platform to allow users to write their own Java program analyses in a declarative fashion, using graph representations. We modify the Java compiler to compute seven syntactic and semantic representations, and store them in a Neo4j graph database.
    [Show full text]
  • Neo4j.Com Daniel Howard – Senior Researcher 111 E 5Th Avenue, San Mateo, CA 94401, USA Tel: +1 855 636 4532 Email: [email protected] Neo4j
    InPhilip Howard – ResearchBrief Director, Information Management www.neo4j.com Daniel Howard – Senior Researcher 111 E 5th Avenue, San Mateo, CA 94401, USA Tel: +1 855 636 4532 Email: [email protected] Neo4j The company CREATIVITY SCALE Neo4j Inc (previously Neo Technologies) was founded in 2000 in Sweden although it is now based in the United States. Outside of these two countries the company also has offices in the UK, Germany, France and Japan. The company’s eponymous product is available in both Community and Enterprise Editions and is available both on-premises and via Google, Amazon and Microsoft Azure cloud platforms. The company has a significant partner base, as illustrated in Figure 1. Notable amongst these are Pitney Bowes, which embeds Neo4j within its EXECUTION TECHNOLOGY MDM offering. It is also worth mentioning Structr. org, which is an open source graph-based (Neo4j) The image in this Mutable Quadrant is derived from 13 high level metrics, the more the image covers a section the better. low code development and runtime environment for Execution metrics relate to the company, Technology to the mobile and web applications. product, Creativity to both technical and business innovation and Scale covers the potential business and market impact. supports immediate consistency. Most users (see below) employ Cypher or OpenCypher (the open source version), which is the declarative language developed by Neo4j. It is notable that SAP, Redis, Memgraph and others have adopted OpenCypher and it is also being used within several open source projects including Cypher for Apache Spark, and Cypher for Gremlin, as well as in research projects like InGraph for streaming queries.
    [Show full text]
  • Evaluating a Graph Query Language for Human-Robot Interaction Data in Smart Environments
    Evaluating a Graph Query Language for Human-Robot Interaction Data in Smart Environments Norman K¨oster1, Sebastian Wrede12, and Philipp Cimiano1 1 Cluster of Excellence Center in Cognitive Interactive Technology (CITEC) 2 Research Institute for Cognition and Robotics (CoR-Lab), Bielefeld University, Bielefeld Germany fnkoester,swrede,[email protected], Abstract. Solutions for efficient querying of long-term human-robot in- teraction data require in-depth knowledge of the involved domains and represents a very difficult and error prone task due to the inherent (sys- tem) complexity. Developers require detailed knowledge with respect to the different underlying data schemata, semantic mappings, and most im- portantly the query language used by the storage system (e.g. SPARQL, SQL, or general purpose language interfaces/APIs). While for instance database developers are familiar with technical aspects of query lan- guages, application developers typically lack the specific knowledge to efficiently work with complex database management systems. Addressing this gap, in this paper we describe a model-driven software development based approach to create a long term storage system to be employed in the domain of embodied interaction in smart environments (EISE). The targeted EISE scenario features a smart environment (i.e. smart home) in which multiple agents (a mobile autonomous robot and two virtual agents) interact with humans to support them in daily activities. To support this we created a language using Jetbrains MPS to model the high level EISE domain w.r.t. the occurring interactions as a graph com- posed of nodes and their according relationships. Further, we reused and improved capabilities of a previously created language to represent the graph query language Cypher.
    [Show full text]