Traversing Graph Databases with Gremlin. Marko A. Rodriguez Graph Systems Architect.

Size: px
Start display at page:

Download "Traversing Graph Databases with Gremlin. Marko A. Rodriguez Graph Systems Architect."

Transcription

1 Traversing Graph Databases with Gremlin Marko A. Rodriguez Graph Systems Architect NoSQL New York City Meetup May 16, 2011 Gremlin G =(V, E) May 10, 2011

2 Thank You Sponsors Short Slideshow + Live Demo = This Presentation

3 TinkerPop Productions 1 1 TinkerPop ( Marko A. Rodriguez ( Peter Neubauer ( Joshua Shinavier ( Pavel Yaskevich ( Darrick Wiebe ( com/), Stephen Mallette ( Alex Averbuch ( com/in/alexaverbuch)

4 TinkerPop Graph Stack RESTful Server Traversal Language Traversal Engine Graph-to-Object Mapper Generic Interface Graph Database TinkerGraph

5 TinkerPop Graph Stack Focus Traversal Language Traversal Engine Generic Interface TinkerGraph

6 Blueprints > Pipes > Groovy > Gremlin To understand Gremlin, its important to understand Groovy, Blueprints, and Pipes. Blueprints Pipes

7 Gremlin is a Domain Specific Language Gremlin 0.7+ uses Groovy as its host language. 2 Gremlin 0.7+ takes advantage of Groovy s meta-programming, dynamic typing, and closure properties. Groovy is a superset of Java and as such, natively exposes the full JDK to Gremlin. 2 Groovy available at

8 Gremlin is for Property Graphs name = "lop" lang = "java" name = "marko" age = 29 weight = knows weight = 0.4 created weight = 1.0 knows 4 3 created 11 weight = 0.4 name = "josh" age = 32 weight = 0.2 created 12 6 name = "peter" age = 35 name = "vadas" age = weight = 1.0 created 5 name = "ripple" lang = "java" A graph is composed of vertices (nodes), edges (links), and properties (keys/values).

9 Gremlin is for Blueprints-enabled Graph Databases Blueprints can be seen as the JDBC for property graph databases. 3 Provides a collection of interfaces for graph database providers to implement. Provides tests to ensure the operational semantics of any implementation are correct. Provides numerous helper utilities to make working with graph databases easy. Blueprints 3 Blueprints is available at

10 A Blueprints Detour - Implementations TinkerGraph

11 A Blueprints Detour - Ouplementations JUNG Java Universal Network/Graph Framework

12 Gremlin Compiles Down to Pipes Pipes is a data flow framework for evaluating lazy graph traversals. 4 A Pipe extends Iterator, Iterable and can be chained together to create processing pipelines. A Pipe can be embedded into another Pipe to allow for nested processing. Pipes 4 Pipes is available at

13 A Pipes Detour - Chained Iterators This Pipeline takes objects of type A and turns them into objects of type D. A A A A A Pipe1 B Pipe2 C Pipe3 D Pipeline D D D D Pipe<A,D> pipeline = new Pipeline<A,D>(Pipe1<A,B>, Pipe2<B,C>, Pipe3<C,D>)

14 A Pipes Detour - Simple Example What are the names of the people that marko knows? knows B name=peter A knows C name=pavel name=marko created created D name=gremlin

15 A Pipes Detour - Simple Example Pipe<Vertex,Edge> pipe1 = new OutEdgesPipe("knows"); Pipe<Edge,Vertex> pipe2 = new InVertexPipe(); Pipe<Vertex,String> pipe3 = new PropertyPipe<String>("name"); Pipe<Vertex,String> pipeline = new Pipeline(pipe1,pipe2,pipe3); pipeline.setstarts(new SingleIterator<Vertex>(graph.getVertex("A")); InVertexPipe() OutEdgesPipe("knows") knows B PropertyPipe("name") name=peter A knows C name=pavel name=marko created created D name=gremlin HINT: The benefit of Gremlin is that this Java verbosity is reduced to g.v( A ).oute( knows ).inv.name.

16 A Pipes Detour - Pipes Library [ FILTERS ] AndFilterPipe BackFilterPipe CollectionFilterPipe ComparisonFilterPipe DuplicateFilterPipe FutureFilterPipe ObjectFilterPipe OrFilterPipe RandomFilterPipe RangeFilterPipe [ GRAPHS ] OutEdgesPipe InEdgesPipe OutVertexPipe InVertexPip IdFilterPipe IdPipe LabelFilterPipe LabelPipe PropertyFilterPipe PropertyPipe [ SIDEEFFECTS ] AggregatorPipe GroupCountPipe CountPipe SideEffectCapPipe [ UTILITIES ] GatherPipe PathPipe ScatterPipe Pipeline...

17 A Pipes Detour - Creating Pipes public class NumCharsPipe extends AbstractPipe<String,Integer> { public Integer processnextstart() { String word = this.starts.next(); return word.length(); } } When extending the base class AbstractPipe<S,E> all that is required is an implementation of processnextstart().

18 Now onto Gremlin proper...

19 The Gremlin Architecture Neo4j OrientDB DEX

20 The Many Ways of Using Gremlin Gremlin has a REPL to be run from the shell. Gremlin can be natively integrated into any Groovy class. Gremlin can be interacted with indirectly through Java, via Groovy. Gremlin has a JSR 223 ScriptEngine as well.

21 Pipe = Step: 3 Generic Steps In general a Pipe is a step in Gremlin. Gremlin is founded on a collection of atomic steps. The syntax is generally seen as step.step.step. There are 3 categories of steps. transform: map the input to some output. S T oute, inv, paths, copysplit, fairmerge,... filter: either output the input or not. S (S ) back, except, uniqueobject, andfilter, orfilter,... sideeffect: output the input and yield a side-effect. S S aggregate, groupcount,...

22 Abstract/Derived/Inferred Adjacency oute inv oute loop(2){..} back(3) {it.salary} } friend_of_a_friend_who_earns_less_than_friend_at_work oute, inv, etc. is low-level graph speak (the domain is the graph). codeveloper is high-level domain speak (the domain is software development). 5 5 In this way, Gremlin can be seen as a DSL (domain-specific language) for creating DSL s for your graph applications. Gremlin s domain is the graph. Build languages for your domain on top of Gremlin (e.g. software development domain ).

23 Developer's FOAF Import Graph Friend-Of-A-Friend Graph Developer Imports Graph Friends at Work Graph Developer Created Graph Software Imports Graph Friendship Graph Employment Graph You need not make derived graphs explicit. You can, at runtime, compute them. Moreover, generate them locally, not globally (e.g. ``Marko's friends from work relations"). Explicit Graph This concept is related to automated reasoning and whether reasoned relations are inserted into the explicit graph or computed at query time.

24 Integrating the JDK (Java API) Groovy is the host language for Gremlin. available in a path expression. Thus, the JDK is natively gremlin> v.out( friend ){it.name.matches( M.* )}.name ==>Mattias ==>Marko ==>Matt... gremlin> x.out( rated ).transform{jsonparser.get(it.uri).stars}.mean()... gremlin> y.oute( rated ).filter{textanalysis.iselated(it.review)}.inv...

25 Time for a demo marko$ gremlin \,,,/ (o o) -----oooo-(_)-oooo----- gremlin> Gremlin G =(V, E)

26 Graph Bootcamp June th in Chicago, Illinois. August X-Y th in Denver, Colorado. Book a private gig for your organization.

Analyzing a social network using Big Data Spatial and Graph Property Graph

Analyzing a social network using Big Data Spatial and Graph Property Graph Analyzing a social network using Big Data Spatial and Graph Property Graph Oskar van Rest Principal Member of Technical Staff Gabriela Montiel-Moreno Principal Member of Technical Staff Safe Harbor Statement

More information

Graph Databases. Big Data Course. Antonio Maccioni. 24 April Rome. locatedin

Graph Databases. Big Data Course. Antonio Maccioni. 24 April Rome. locatedin ic p o t heldby wher e Big Data Course y email locatedin af fili at ed B offered Antonio Maccioni maccioni@dia.uniroma3.it Rome Of re tu 24 April 2014 lec wh en Graph Databases Graph Databases are an odd

More information

ipython-gremlin Documentation

ipython-gremlin Documentation ipython-gremlin Documentation Release 0.0.4 David M. Brown Mar 16, 2017 Contents 1 Releases 3 2 Requirements 5 3 Dependencies 7 4 Installation 9 5 Getting Started 11 5.1 Contribute................................................

More information

bjoern Documentation Release 0.1 Fabian Yamaguchi

bjoern Documentation Release 0.1 Fabian Yamaguchi bjoern Documentation Release 0.1 Fabian Yamaguchi June 24, 2016 Contents 1 Overview 3 1.1 Octopus.................................................. 3 1.2 Bjoern-Radare..............................................

More information

Cypher for Gremlin. ocim 4

Cypher for Gremlin. ocim 4 Cypher for Gremlin ocim 4 Apache TinkerPop Apache TinkerPop is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is a graph traversal language developed

More information

A Highly Efficient Runtime and Graph Library for Large Scale Graph Analytics

A Highly Efficient Runtime and Graph Library for Large Scale Graph Analytics A Highly Efficient Runtime and Graph Library for Large Scale Graph Analytics Ilie Gabriel Tanase Research Staff Member, IBM TJ Watson Yinglong Xia, Yanbin Liu, Wei Tan, Jason Crawford, Ching-Yung Lin IBM

More information

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012 The Art of Metaprogramming in Java Falguni Vyas Dec 08, 2012 Metadata What is Metadata? Data that describes other data Defined as data providing information about one or more aspects of the data, such

More information

Eclipse JNoSQL. Otávio

Eclipse JNoSQL. Otávio Eclipse JNoSQL Otávio Santana @otaviojava NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types Key Value AmazonDynamo AmazonS3 Redis Apollo Sun Ares War Aphrodite

More information

CS260 Intro to Java & Android 02.Java Technology

CS260 Intro to Java & Android 02.Java Technology CS260 Intro to Java & Android 02.Java Technology CS260 - Intro to Java & Android 1 Getting Started: http://docs.oracle.com/javase/tutorial/getstarted/index.html Java Technology is: (a) a programming language

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

What is Groovy? Almost as cool as me!

What is Groovy? Almost as cool as me! What is Groovy? Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing. From http://groovy.codehaus.org/

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

Visual Analysis of Heterogeneous Networks

Visual Analysis of Heterogeneous Networks 2013 European Intelligence and Security Informatics Conference Visual Analysis of Heterogeneous Networks Bisharat Rasool Memon The Maersk Mc-Kinney Moller Institute University of Southern Denmark Campusvej

More information

Modeling and Discovering Vulnerabilities with Code Property Graphs

Modeling and Discovering Vulnerabilities with Code Property Graphs Modeling and Discovering Vulnerabilities with Code Property Graphs Fabian Yamaguchi, Nico Golde (Qualcomm), Daniel Arp, and Konrad Rieck Security & Privacy 2014 GEORG-AUGUST-UNIVERSITÄT GÖTTINGEN Implementation

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Big Data, Complex Data

Big Data, Complex Data Big Data, Complex Data Managing Data and Complexity in Graph Databases Peter Neubauer Neo Technology #neo4j @peterneubauer peter@neotechnology.com Data size NOSQL data models Key-value stores Bigtable

More information

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore

More information

Java SE 8 Programming

Java SE 8 Programming Java SE 8 Programming Training Calendar Date Training Time Location 16 September 2019 5 Days Bilginç IT Academy 28 October 2019 5 Days Bilginç IT Academy Training Details Training Time : 5 Days Capacity

More information

2 ADT Programming User-defined abstract data types

2 ADT Programming User-defined abstract data types Preview 2 ADT Programming User-defined abstract data types user-defined data types in C++: classes constructors and destructors const accessor functions, and inline functions special initialization construct

More information

La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards

La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards Michael Vitrano Matt Jesuele Charles Williamson Jared Pochtar 1. Introduction La Mesa is a language

More information

Building Grails Applications with PostgreSQL. Brent Baxter and Ken Rimple PostgreSQL East - March 25, 2010

Building Grails Applications with PostgreSQL. Brent Baxter and Ken Rimple PostgreSQL East - March 25, 2010 Building Grails Applications with PostgreSQL Brent Baxter and Ken Rimple About Brent and Ken Brent Baxter: bbaxter@chariotsolutions.com Consultant and Applications Architect Grails, Java, and Spring developer

More information

PGQL: a Property Graph Query Language

PGQL: a Property Graph Query Language PGQL: a Property Graph Query Language Oskar van Rest Sungpack Hong Jinha Kim Xuming Meng Hassan Chafi Oracle Labs June 24, 2016 Safe Harbor Statement The following is intended to outline our general product

More information

building dsl s in static & dynamic languages

building dsl s in static & dynamic languages ThoughtWorks building dsl s in static & dynamic languages NEAL FORD thoughtworker / meme wrangler ThoughtWorks 14 Wall St, Suite 2019, New York, NY 10005 nford@thoughtworks.com www.nealford.com www.thoughtworks.com

More information

Apply Graph and Deep Learning to Recommendation and Network Intrusion Detection

Apply Graph and Deep Learning to Recommendation and Network Intrusion Detection Apply Graph and Deep Learning to Recommendation and Network Intrusion Detection Zhe Wu, Ph.D. Architect alan.wu@oracle.com Oracle Spatial and Graph June 22, 2017 Outline Introduction and overview of graph

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features

More information

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc.

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Introduction About Me Longtime Jenkins core contributor Primary developer on Jenkins Pipeline Meet Jenkins Pipeline

More information

Frustrated by all the hype?

Frustrated by all the hype? Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People

More information

joern Documentation Release Fabian Yamaguchi

joern Documentation Release Fabian Yamaguchi joern Documentation Release 0.2.5 Fabian Yamaguchi Apr 12, 2017 Contents 1 Installation 3 1.1 System Requirements and Dependencies................................ 3 1.2 Testing the server.............................................

More information

15-418, Spring 2008 OpenMP: A Short Introduction

15-418, Spring 2008 OpenMP: A Short Introduction 15-418, Spring 2008 OpenMP: A Short Introduction This is a short introduction to OpenMP, an API (Application Program Interface) that supports multithreaded, shared address space (aka shared memory) parallelism.

More information

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming

More information

NoSQL systems: introduction and data models. Riccardo Torlone Università Roma Tre

NoSQL systems: introduction and data models. Riccardo Torlone Università Roma Tre NoSQL systems: introduction and data models Riccardo Torlone Università Roma Tre Leveraging the NoSQL boom 2 Why NoSQL? In the last fourty years relational databases have been the default choice for serious

More information

Transformations on Graph Databases for Polyglot Persistence with NotaQL

Transformations on Graph Databases for Polyglot Persistence with NotaQL B. Mitschang et al. (Hrsg.): Datenbanksysteme für Business, Technologie und Web (BTW 2017), Lecture Notes in Informatics (LNI), Gesellschaft für Informatik, Bonn 2017 83 Transformations on Graph Databases

More information

Jaql. Kevin Beyer, Vuk Ercegovac, Eugene Shekita, Jun Rao, Ning Li, Sandeep Tata. IBM Almaden Research Center

Jaql. Kevin Beyer, Vuk Ercegovac, Eugene Shekita, Jun Rao, Ning Li, Sandeep Tata. IBM Almaden Research Center Jaql Running Pipes in the Clouds Kevin Beyer, Vuk Ercegovac, Eugene Shekita, Jun Rao, Ning Li, Sandeep Tata IBM Almaden Research Center http://code.google.com/p/jaql/ 2009 IBM Corporation Motivating Scenarios

More information

Recursion. Comp Sci 1575 Data Structures. Introduction. Simple examples. The call stack. Types of recursion. Recursive programming

Recursion. Comp Sci 1575 Data Structures. Introduction. Simple examples. The call stack. Types of recursion. Recursive programming Recursion Comp Sci 1575 Data Structures Outline 1 2 3 4 Definitions To understand, you must understand. Familiar of recursive definitions Natural numbers are either: n+1, where n is a natural number 1

More information

Jakarta EE Meets NoSQL at the Cloud Age

Jakarta EE Meets NoSQL at the Cloud Age Jakarta EE Meets NoSQL at the Cloud Age Elder Moraes, Developer Advocate, Oracle Otavio Santana, Sr Software Engineer, Tomitribe October, 2018 Safe Harbor Statement The following is intended to outline

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This is the second of two courses that cover the Java Standard Edition

More information

Neo4j. Neo4j's Cypher. Samstag, 27. April 13

Neo4j. Neo4j's Cypher.  Samstag, 27. April 13 Neo4j Neo4j's Cypher Michael Hunger @mesirii @neo4j 1 (Michael)-[:WORKS_ON]-> (Neo4j) console Cypher Community Michael Server Neo4j.org Spring Cloud 2 3 is a 4 NOSQL 5 Graph Database 6 Some Ways to Learn

More information

Principles of Programming Languages Topic: Scope and Memory Professor Louis Steinberg Fall 2004

Principles of Programming Languages Topic: Scope and Memory Professor Louis Steinberg Fall 2004 Principles of Programming Languages Topic: Scope and Memory Professor Louis Steinberg Fall 2004 CS 314, LS,BR,LTM: Scope and Memory 1 Review Functions as first-class objects What can you do with an integer?

More information

Recap: Functions as first-class values

Recap: Functions as first-class values Recap: Functions as first-class values Arguments, return values, bindings What are the benefits? Parameterized, similar functions (e.g. Testers) Creating, (Returning) Functions Iterator, Accumul, Reuse

More information

Building a Recommendation Engine with Java EE EE4J

Building a Recommendation Engine with Java EE EE4J Building a Recommendation Engine with Java EE EE4J Otávio Santana @otaviojava osantana@tomitribe.com otaviojava@apache.org Hilmer Chona @hchona hilac@msn.com MedellinJUG.org Evolution Goods Land Gold Oil

More information

BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE. Sample Final Exam

BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE. Sample Final Exam BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE CSI33 Sample Final Exam NAME Directions: Solve problems 1 through 5 of Part I and choose 5 of the

More information

Module 4. Implementation of XQuery. Part 0: Background on relational query processing

Module 4. Implementation of XQuery. Part 0: Background on relational query processing Module 4 Implementation of XQuery Part 0: Background on relational query processing The Data Management Universe Lecture Part I Lecture Part 2 2 What does a Database System do? Input: SQL statement Output:

More information

Getting Started with OrientDB

Getting Started with OrientDB Getting Started with OrientDB Claudio Tesoriero Chapter No. 1 "Installing OrientDB" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter NO.1 "Installing

More information

New Developments in Spark

New Developments in Spark New Developments in Spark And Rethinking APIs for Big Data Matei Zaharia and many others What is Spark? Unified computing engine for big data apps > Batch, streaming and interactive Collection of high-level

More information

An Oracle White Paper March Introduction to Groovy Support in JDeveloper and Oracle ADF 11g

An Oracle White Paper March Introduction to Groovy Support in JDeveloper and Oracle ADF 11g An Oracle White Paper March 2009 Introduction to Groovy Support in JDeveloper and Oracle ADF 11g Oracle White Paper Introduction to Groovy support in JDeveloper and Oracle ADF 11g Introduction... 2 Introduction

More information

RECODER - The Architecture of a Refactoring System

RECODER - The Architecture of a Refactoring System RECODER - The Architecture of a Refactoring System Andreas Ludwig Prof. U. Aßmann http://recoder.sf.net Overview ➊Programming in the Large Problems, Concepts, The Approach ➋The Architecture of RECODER

More information

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd.

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd. Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB Marc Stampfli Oracle Software (Switzerland) Ltd. Underestimation According to customers about 20-50% percent

More information

Unifying Big Data Workloads in Apache Spark

Unifying Big Data Workloads in Apache Spark Unifying Big Data Workloads in Apache Spark Hossein Falaki @mhfalaki Outline What s Apache Spark Why Unification Evolution of Unification Apache Spark + Databricks Q & A What s Apache Spark What is Apache

More information

Neo4j. Spatial. Peter Neubauer Neo Technology. GIS for the rest of us.

Neo4j. Spatial. Peter Neubauer Neo Technology. GIS for the rest of us. Neo4j Spatial GIS for the rest of us Peter Neubauer Neo Technology #neo4j @peterneubauer peter@neotechnology.com Data size NOSQL data models Key-value stores Bigtable clones Document databases Graph databases

More information

Java SE 8 New Features

Java SE 8 New Features Java SE 8 New Features Duration 2 Days What you will learn This Java SE 8 New Features training delves into the major changes and enhancements in Oracle Java SE 8. You'll focus on developing an understanding

More information

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline :: Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience

More information

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs.

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs. Java SE11 Development Java is the most widely-used development language in the world today. It allows programmers to create objects that can interact with other objects to solve a problem. Explore Java

More information

CS 314 Midterm 2 Fall 2012

CS 314 Midterm 2 Fall 2012 Points off 1 2 3 4 5 Total off Net Score CS 314 Midterm 2 Fall 2012 Your Name_ Your UTEID Circle yours TA s name: John Zihao Instructions: 1. There are 5 questions on this test. 2. You have 2 hours to

More information

Data Modeling with Neo4j. Stefan Armbruster, Neo Technology (slides from Michael Hunger)

Data Modeling with Neo4j. Stefan Armbruster, Neo Technology (slides from Michael Hunger) Data Modeling with Neo4j Stefan Armbruster, Neo Technology (slides from Michael Hunger) 1 1 33 is a 44 NOSQL 55 Graph Database 66 A graph database... NO: not for charts & diagrams, or vector artwork YES:

More information

Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench

Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS Project 1 Agenda > Extending languages. Why bother?

More information

Graph Databases. Graph Databases. May 2015 Alberto Abelló & Oscar Romero

Graph Databases. Graph Databases. May 2015 Alberto Abelló & Oscar Romero Graph Databases 1 Knowledge Objectives 1. Describe what a graph database is 2. Explain the basics of the graph data model 3. Enumerate the best use cases for graph databases 4. Name two pros and cons of

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: +40 21 3678820 Java SE 7 Programming Duration: 5 Days What you will learn This Java Programming training covers the core Application Programming Interfaces (API) you'll use

More information

Java 8 Programming for OO Experienced Developers

Java 8 Programming for OO Experienced Developers www.peaklearningllc.com Java 8 Programming for OO Experienced Developers (5 Days) This course is geared for developers who have prior working knowledge of object-oriented programming languages such as

More information

The GQL Manifesto. 1. References [DM ]

The GQL Manifesto. 1. References [DM ] The GQL Manifesto Title Author Status Date The GQL Manifesto Alastair Green, Individual Expert, Neo4j Inc. Discussion Paper Date of original publication, 13 May 2018, at https://gql.today Referenced in

More information

Richard Mallion. Swift for Admins #TEAMSWIFT

Richard Mallion. Swift for Admins #TEAMSWIFT Richard Mallion Swift for Admins #TEAMSWIFT Apple Introduces Swift At the WWDC 2014 Keynote, Apple introduced Swift A new modern programming language It targets the frameworks for Cocoa and Cocoa Touch

More information

Functional Programming and the Web

Functional Programming and the Web June 13, 2011 About Me Undergraduate: University of Illinois at Champaign-Urbana PhD: Penn State University Retrofitting Programs for Complete Security Mediation Static analysis, type-based compiler Racker:

More information

enum Types 1 1 The keyword enum is a shorthand for enumeration. Zheng-Liang Lu Java Programming 267 / 287

enum Types 1 1 The keyword enum is a shorthand for enumeration. Zheng-Liang Lu Java Programming 267 / 287 enum Types 1 An enum type is an reference type limited to an explicit set of values. An order among these values is defined by their order of declaration. There exists a correspondence with string names

More information

Easier than Excel: Social Network Analysis of DocGraph with Gephi

Easier than Excel: Social Network Analysis of DocGraph with Gephi Easier than Excel: Social Network Analysis of DocGraph with Gephi Janos G. Hajagos Stony Brook School of Medicine Fred Trotter fredtrotter.com DocGraph Based on FOIA request to CMS by Fred Trotter Pre-released

More information

ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ

ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ ΠΑΡΑΡΤΗΜΑ «Β» ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ Α/Α ΠΕΡΙΓΡΑΦΗ ΕΚΠΑΙΔΕΥΣΗΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ 1. Java SE8 Fundamentals What Is a Java Program? Introduction to Computer Programs Key Features of the Java Language

More information

CS 307 Final Fall 2009

CS 307 Final Fall 2009 Points off 1 2 3 4 5 6 Total off Net Score CS 307 Final Fall 2009 Name UTEID login name Instructions: 1. Please turn off your cell phones. 2. There are 6 questions on this test. 3. You have 3 hours to

More information

Domain-Specific Languages Language Workbenches

Domain-Specific Languages Language Workbenches Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang

More information

Practical DSL Design. Groovy Sydney Meetup May 4th, Peter Bell CEO/CTO SystemsForge

Practical DSL Design. Groovy Sydney Meetup May 4th, Peter Bell CEO/CTO SystemsForge Practical DSL Design Groovy Sydney Meetup May 4th, 2010 Peter Bell CEO/CTO SystemsForge Overview Before DSLs... What is a DSL? Creating a DSL Good DSL Design Key Concepts Implementing DSLs in Groovy Testing

More information

The Java Memory Model

The Java Memory Model Jeremy Manson 1, William Pugh 1, and Sarita Adve 2 1 University of Maryland 2 University of Illinois at Urbana-Champaign Presented by John Fisher-Ogden November 22, 2005 Outline Introduction Sequential

More information

This tutorial is designed for all those software professionals who are keen on learning the basics of Clojure and how to put it into practice.

This tutorial is designed for all those software professionals who are keen on learning the basics of Clojure and how to put it into practice. About the Tutorial Clojure is a high level, dynamic functional programming language. It is designed, based on the LISP programming language, and has compilers that makes it possible to be run on both Java

More information

Java Concepts: Compatible With Java 5, 6 And 7 By Cay S. Horstmann

Java Concepts: Compatible With Java 5, 6 And 7 By Cay S. Horstmann Java Concepts: Compatible With Java 5, 6 And 7 By Cay S. Horstmann Java Concepts: Compatible with Java 5, 6 and 7 by Horstmann, Cay S. and a great selection of similar Used, New and Collectible Books available

More information

Eclipse Command Language

Eclipse Command Language Cracow, Poland Eclipse Day 2012, September 13 Bartosz Czerwiński bczerwinski@luxoft.com 2 Agenda DSL Scripting in Eclipse ECL Core Concepts Architecture Applicability Future Live Demo 3 DSL 4 Domain Specific

More information

Magento Technical Guidelines

Magento Technical Guidelines Magento Technical Guidelines Eugene Shakhsuvarov, Software Engineer @ Magento 2018 Magento, Inc. Page 1 Magento 2 Technical Guidelines Document which describes the desired technical state of Magento 2

More information

Gregor Bethlen

Gregor Bethlen Universität Karlsruhe 27.05.2010 Slide 1 of 22 Outline 1 Motivation Examples Conclusions 2 BGGA CICE FCM 3 Slide 2 of 22 Motivation Motivation Examples Conclusions treat functions/methods as values for

More information

How to Use NoSQL in Enterprise Java Applications

How to Use NoSQL in Enterprise Java Applications How to Use NoSQL in Enterprise Java Applications Patrick Baumgartner NoSQL Roadshow Basel 30.08.2012 Agenda Speaker Profile New Demands on Data Access New Types of Data Stores Integrating NoSQL Data Stores

More information

DataSToRM: Data Science and Technology Research Environment

DataSToRM: Data Science and Technology Research Environment The Future of Advanced (Secure) Computing DataSToRM: Data Science and Technology Research Environment This material is based upon work supported by the Assistant Secretary of Defense for Research and Engineering

More information

A brief introduction to OpenMP

A brief introduction to OpenMP A brief introduction to OpenMP Alejandro Duran Barcelona Supercomputing Center Outline 1 Introduction 2 Writing OpenMP programs 3 Data-sharing attributes 4 Synchronization 5 Worksharings 6 Task parallelism

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Computer Programming: C++

Computer Programming: C++ The Islamic University of Gaza Engineering Faculty Department of Computer Engineering Fall 2017 ECOM 2003 Muath i.alnabris Computer Programming: C++ Experiment #7 Arrays Part II Passing Array to a Function

More information

How Graphs and Java make GraphHopper efficient and fast. By Berlin Buzzwords,

How Graphs and Java make GraphHopper efficient and fast. By Berlin Buzzwords, How Graphs and Java make GraphHopper efficient and fast By Peter @timetabling Berlin Buzzwords, 2014-05-27 _ Available at graphhopper.com/public/slides How int[][] helped GraphHopper scaling How Graphs

More information

Scala : an LLVM-targeted Scala compiler

Scala : an LLVM-targeted Scala compiler Scala : an LLVM-targeted Scala compiler Da Liu, UNI: dl2997 Contents 1 Background 1 2 Introduction 1 3 Project Design 1 4 Language Prototype Features 2 4.1 Language Features........................................

More information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

Where We Are. Lexical Analysis. Syntax Analysis. IR Generation. IR Optimization. Code Generation. Machine Code. Optimization.

Where We Are. Lexical Analysis. Syntax Analysis. IR Generation. IR Optimization. Code Generation. Machine Code. Optimization. Where We Are Source Code Lexical Analysis Syntax Analysis Semantic Analysis IR Generation IR Optimization Code Generation Optimization Machine Code Where We Are Source Code Lexical Analysis Syntax Analysis

More information

Bash command shell language interpreter

Bash command shell language interpreter Principles of Programming Languages Bash command shell language interpreter Advanced seminar topic Louis Sugy & Baptiste Thémine Presentation on December 8th, 2017 Table of contents I. General information

More information

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical Name of faculty: Gaurav Gambhir Discipline: Computer Science Semester: 6 th Subject: CSE 304 N - Essentials of Information Technology Lesson Plan Duration: 15 Weeks (from January, 2018 to April, 2018)

More information

xtc Robert Grimm Making C Safely Extensible New York University

xtc Robert Grimm Making C Safely Extensible New York University xtc Making C Safely Extensible Robert Grimm New York University The Problem Complexity of modern systems is staggering Increasingly, a seamless, global computing environment System builders continue to

More information

Another IS-A Relationship

Another IS-A Relationship Another IS-A Relationship Not all classes share a vertical relationship. Instead, some are supposed to perform the specific methods without a vertical relationship. Consider the class Bird inherited from

More information

String Computation Program

String Computation Program String Computation Program Reference Manual Scott Pender scp2135@columbia.edu COMS4115 Fall 2012 10/31/2012 1 Lexical Conventions There are four kinds of tokens: identifiers, keywords, expression operators,

More information

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008 Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread

More information

Semantic Analysis. Compiler Architecture

Semantic Analysis. Compiler Architecture Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Source Compiler Architecture Front End Scanner (lexical tokens Parser (syntax Parse tree Semantic Analysis

More information

Points off Total off Net Score. CS 314 Final Exam Spring 2016

Points off Total off Net Score. CS 314 Final Exam Spring 2016 Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Spring 2016 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.

More information

Intel Thread Building Blocks

Intel Thread Building Blocks Intel Thread Building Blocks SPD course 2015-16 Massimo Coppola 08/04/2015 1 Thread Building Blocks : History A library to simplify writing thread-parallel programs and debugging them Originated circa

More information

CS 314 Exam 2 Fall 2017

CS 314 Exam 2 Fall 2017 Points off 1 2 3 4 5 Total off CS 314 Exam 2 Fall 2017 Your Name Your UTEID Circle your TAs Name: Gilbert Jacob Jorge Joseph Lucas Rebecca Shelby Instructions: 1. There are 5 questions on this test. 100

More information

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Advanced Topics on Heterogeneous System Architectures HSA Foundation! Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Antonio R. Miele! Marco D. Santambrogio! Politecnico di Milano! 2

More information

NOSQL Databases and Neo4j

NOSQL Databases and Neo4j NOSQL Databases and Neo4j Database and DBMS Database - Organized collection of data The term database is correctly applied to the data and their supporting data structures. DBMS - Database Management System:

More information

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First

More information

Database Assignment 2

Database Assignment 2 Database Assignment 2 Java Database Connection using the JDBC API March 13, 2008 1 Objectives Create and run a JDBC program using the client driver and Network Server. This assignment demonstrates the

More information

CS 314 Exam 2 Spring

CS 314 Exam 2 Spring Points off 1 2 3 4 5 Total off CS 314 Exam 2 Spring 2017 Your Name Your UTEID Instructions: 1. There are 5 questions on this test. 100 points available. Scores will be scaled to 200 points. 2. You have

More information

CSE 307: Principles of Programming Languages

CSE 307: Principles of Programming Languages 1 / 26 CSE 307: Principles of Programming Languages Names, Scopes, and Bindings R. Sekar 2 / 26 Topics Bindings 1. Bindings Bindings: Names and Attributes Names are a fundamental abstraction in languages

More information

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including:

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Abstraction Encapsulation Inheritance and Polymorphism Object-Oriented

More information