Presentation about Graph databases that I gave at the Yourstory Progate Developer Summit. Useful for anyone who wants to get a glimpse into graph databases
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)Ankur Dave
GraphX is a graph processing framework built into Apache Spark. This talk introduces GraphX, describes key features of its API, and gives an update on its status.
Accessing loosely structured data from F# and C#Tomas Petricek
Slides from my talk at GOTO 2011. The presentation discusses how to bridge the impedance mismatch between the structure used in programming languages (classes, records, unions, ...) and structure used in data sources (database schema, XML file or JSON document). The talk shows how to solve this problem at three scales - using dynamic typing, by defining structure explicitly and using F# type providers.
This document discusses linguistic abstraction as a software engineering tool, specifically for web languages. It describes how domain-specific languages (DSLs) can bridge the gap between problem domains and solution domains by allowing for more specialization. The document outlines research into software language engineering to automatically derive efficient compilers and IDEs from high-level language definitions. It provides examples of DSLs like WebDSL for server-side web applications and Mobl for client-side mobile applications. In summary, the document advocates for DSLs and linguistic integration to improve software engineering for web and mobile platforms by separating concerns and enabling static analysis.
A small presentation with some quick explanation of what D3.js is and a few examples of what it can do for you. It can be used for a quick presentation (20-30 mins) after which you should have an idea of whether you can use D3.js for your project.
HBaseCon 2015: S2Graph - A Large-scale Graph Database with HBaseHBaseCon
As the operator of the dominant messenger application in South Korea, KakaoTalk has more than 170 million users, and our ever-growing graph has more than 10B edges and 200M vertices. This scale presents several technical challenges for storing and querying the graph data, but we have resolved them by creating a new distributed graph database with HBase. Here you'll learn the methodology and architecture we used to solve the problems, compare it another famous graph database, Titan, and explore the HBase issues we encountered.
VelocityGraph allows storing .NET objects as graph data without an ORM layer. It implements standard graph interfaces and adds features like vertex and edge types, polymorphism, and storing any .NET type as a property value. The document provides examples of creating a graph database with VelocityGraph and performing queries like recommending profiles or calculating supplier contributions.
This document provides an overview of social network analysis using R. It discusses graph construction, visualization, querying, and centrality measures. Various R packages that support social network analysis are also presented, including igraph for network analysis and visualization, and visNetwork for interactive visualization. Finally, further readings and online resources on social network analysis and related R packages are listed.
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)Ankur Dave
GraphX is a graph processing framework built into Apache Spark. This talk introduces GraphX, describes key features of its API, and gives an update on its status.
Accessing loosely structured data from F# and C#Tomas Petricek
Slides from my talk at GOTO 2011. The presentation discusses how to bridge the impedance mismatch between the structure used in programming languages (classes, records, unions, ...) and structure used in data sources (database schema, XML file or JSON document). The talk shows how to solve this problem at three scales - using dynamic typing, by defining structure explicitly and using F# type providers.
This document discusses linguistic abstraction as a software engineering tool, specifically for web languages. It describes how domain-specific languages (DSLs) can bridge the gap between problem domains and solution domains by allowing for more specialization. The document outlines research into software language engineering to automatically derive efficient compilers and IDEs from high-level language definitions. It provides examples of DSLs like WebDSL for server-side web applications and Mobl for client-side mobile applications. In summary, the document advocates for DSLs and linguistic integration to improve software engineering for web and mobile platforms by separating concerns and enabling static analysis.
A small presentation with some quick explanation of what D3.js is and a few examples of what it can do for you. It can be used for a quick presentation (20-30 mins) after which you should have an idea of whether you can use D3.js for your project.
HBaseCon 2015: S2Graph - A Large-scale Graph Database with HBaseHBaseCon
As the operator of the dominant messenger application in South Korea, KakaoTalk has more than 170 million users, and our ever-growing graph has more than 10B edges and 200M vertices. This scale presents several technical challenges for storing and querying the graph data, but we have resolved them by creating a new distributed graph database with HBase. Here you'll learn the methodology and architecture we used to solve the problems, compare it another famous graph database, Titan, and explore the HBase issues we encountered.
VelocityGraph allows storing .NET objects as graph data without an ORM layer. It implements standard graph interfaces and adds features like vertex and edge types, polymorphism, and storing any .NET type as a property value. The document provides examples of creating a graph database with VelocityGraph and performing queries like recommending profiles or calculating supplier contributions.
This document provides an overview of social network analysis using R. It discusses graph construction, visualization, querying, and centrality measures. Various R packages that support social network analysis are also presented, including igraph for network analysis and visualization, and visNetwork for interactive visualization. Finally, further readings and online resources on social network analysis and related R packages are listed.
This document discusses Windows Phone 7 and user data access on the Windows Phone platform. It provides an overview of LINQ to SQL and accessing user contacts and calendar appointments. It also covers best practices for database usage, schema upgrades, and querying user data, including using new APIs introduced in the "Mango" update. The document demonstrates examples of CRUD operations with LINQ to SQL, querying contacts, and searching appointments.
Combine Spring Data Neo4j and Spring Boot to quicklNeo4j
Speakers: Michael Hunger (Neo Technology) and Josh Long (Pivotal)
Spring Data Neo4j 3.0 is here and it supports Neo4j 2.0. Neo4j is a tiny graph database with a big punch. Graph databases are imminently suited to asking interesting questions, and doing analysis. Want to load the Facebook friend graph? Build a recommendation engine? Neo4j's just the ticket. Join Spring Data Neo4j lead Michael Hunger (@mesirii) and Spring Developer Advocate Josh Long (@starbuxman) for a look at how to build smart, graph-driven applications with Spring Data Neo4j and Spring Boot.
This document discusses database programming techniques and JDBC (Java Database Connectivity). It covers four main database programming approaches: embedded SQL, library function calls like JDBC, and stored procedures. The bulk of the document focuses on using JDBC to connect to a database from Java code, including connecting, executing queries, processing result sets, and closing connections. It provides examples of querying a database and retrieving results into Java variables.
Understanding Connected Data through VisualizationSebastian Müller
These are the (static) slides of my talk at Connected Data London 2019. The talk is about the kind of tools that are available for the visualization of connected data as in graphs, diagrams, networks, graph-databases and triple-stores.
The focus of the talk is about how you can get better results with the help of software programming libraries for visualization.
There is no audio track or speaker notes available, currently.
The technical aspects of the talk will also be covered in greater detail in the upcoming yWorks webinar on October 16th 2019: https://yworks.com/webinars
Ingesting streaming data into Graph DatabaseGuido Schmutz
This talk presents the experience of a customer project where we built a stream-based ingestion into a graph database. It is one thing to load the graph first and then querying it. But it is another story if the data to be added to the graph is constantly streaming in, while querying it. Data is easy to add, if each single message ends up as a new vertex in the graph. But if a message consists of hierarchical information, it most often means creating multiple new vertices as well adding edges to connect this information. What if a node already exists in the graph? Do we create it again or do we rather add edges which link to the existing node? Creating multiple nodes for the same real-life entity is not the best choice, so we have to check for existence first. We end up requiring multiple operations against the graph, which demonstrated to be a bottle neck. This talk presents the implementation of an ingestion pipeline and the design choice we made to improve performance.
The document presents a 3D revision control framework that uses MongoDB as a central repository to store and retrieve scene graph components and their non-linear revision history. It supports various clients including C++, WebGL, and Android applications. Scene graphs and revision histories are stored as documents in MongoDB collections in a schema that embeds metadata and component data or references binary data. The framework enables collaborative editing of 3D models through version control of hierarchical scene graphs.
The document discusses the design and implementation of a SQL Server BI solution called FishLog for reporting on fishing data. It describes migrating the data from flat files to a MySQL database and then using SQL Server Integration Services to load the data into an Analysis Services database cube. Report Services was then used to create summary and detailed reports on the fishing data dimensions of date, bait, and location. Future plans include additional data updates, mining, and reports.
This document summarizes a presentation about exploring SharePoint with the F# programming language. It discusses the history and characteristics of functional programming and F#, including that F# is a functional-first language developed by Microsoft Research. It also covers how to use the F# Client Object Model to connect to and query SharePoint, including loading references, creating a client context, and querying sites, lists, and list items. The presentation demonstrates iterating through lists and items and retrieving properties.
This document discusses Go programming patterns and best practices presented by MegaEase, an enterprise cloud native architecture provider. It covers topics like slices, interfaces, performance optimization, and common Go mistakes. Examples are provided to demonstrate slice internals, deep comparison, interface patterns, and how to check interface compliance.
AWS SSA Webinar 20 - Getting Started with Data Warehouses on AWSCobus Bernard
In this session, we will take you through setting up an Amazon Redshift cluster and at the ways you can populate it with data. We will start by using AWS DMS to replicate the data as-is as well as doing some ETL on it. This will be followed by AWS Glue where you can do more advanced ETL operations. Lastly, we will look at how you can use Amazon Kinesis Firehose to stream event directly to the Redshift cluster.
This document discusses WebDSL, a domain-specific language for web programming developed by Eelco Visser. It provides an overview of WebDSL, including its support for separation of concerns in web applications through modeling different aspects like data, user interfaces, and access control with different languages. It also summarizes research conducted on WebDSL, such as automatically generating compilers and IDEs from language definitions, and systematically designing domain-specific languages. Examples of WebDSL features are given, such as defining entities for data modeling, templates for user interfaces, and navigation between pages.
This document provides an overview of using React Draft.js to build rich text editors. It discusses how Draft.js uses immutable states to control content and selection, and how this allows building fully customizable editors. It also introduces Megadraft, an editor built with Draft.js and React that is open source and extensible through plugins.
This document discusses data binding and visualization techniques for D3.js including binding data to DOM elements, using a model-view pattern, and rendering collections. It provides an example of tracking interaction state by storing it in models and views and triggering events on state changes. The document promotes an approach where interactions are modeled as objects that can get and set state and register named interactions. It notes benefits like undo/redo support, a uniform representation, and persisting interaction state across sessions.
This document provides an overview of various data interfaces in R, including CSV, Excel, database, XML, JSON, and web data. It discusses how to read and write files in each format using functions like read.csv(), read.xlsx(), dbConnect(), xmlParse(), fromJSON(), and getHTMLLinks(). It also provides an example of extracting data from Facebook using the Rfacebook package.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
This document discusses Windows Phone 7 and user data access on the Windows Phone platform. It provides an overview of LINQ to SQL and accessing user contacts and calendar appointments. It also covers best practices for database usage, schema upgrades, and querying user data, including using new APIs introduced in the "Mango" update. The document demonstrates examples of CRUD operations with LINQ to SQL, querying contacts, and searching appointments.
Combine Spring Data Neo4j and Spring Boot to quicklNeo4j
Speakers: Michael Hunger (Neo Technology) and Josh Long (Pivotal)
Spring Data Neo4j 3.0 is here and it supports Neo4j 2.0. Neo4j is a tiny graph database with a big punch. Graph databases are imminently suited to asking interesting questions, and doing analysis. Want to load the Facebook friend graph? Build a recommendation engine? Neo4j's just the ticket. Join Spring Data Neo4j lead Michael Hunger (@mesirii) and Spring Developer Advocate Josh Long (@starbuxman) for a look at how to build smart, graph-driven applications with Spring Data Neo4j and Spring Boot.
This document discusses database programming techniques and JDBC (Java Database Connectivity). It covers four main database programming approaches: embedded SQL, library function calls like JDBC, and stored procedures. The bulk of the document focuses on using JDBC to connect to a database from Java code, including connecting, executing queries, processing result sets, and closing connections. It provides examples of querying a database and retrieving results into Java variables.
Understanding Connected Data through VisualizationSebastian Müller
These are the (static) slides of my talk at Connected Data London 2019. The talk is about the kind of tools that are available for the visualization of connected data as in graphs, diagrams, networks, graph-databases and triple-stores.
The focus of the talk is about how you can get better results with the help of software programming libraries for visualization.
There is no audio track or speaker notes available, currently.
The technical aspects of the talk will also be covered in greater detail in the upcoming yWorks webinar on October 16th 2019: https://yworks.com/webinars
Ingesting streaming data into Graph DatabaseGuido Schmutz
This talk presents the experience of a customer project where we built a stream-based ingestion into a graph database. It is one thing to load the graph first and then querying it. But it is another story if the data to be added to the graph is constantly streaming in, while querying it. Data is easy to add, if each single message ends up as a new vertex in the graph. But if a message consists of hierarchical information, it most often means creating multiple new vertices as well adding edges to connect this information. What if a node already exists in the graph? Do we create it again or do we rather add edges which link to the existing node? Creating multiple nodes for the same real-life entity is not the best choice, so we have to check for existence first. We end up requiring multiple operations against the graph, which demonstrated to be a bottle neck. This talk presents the implementation of an ingestion pipeline and the design choice we made to improve performance.
The document presents a 3D revision control framework that uses MongoDB as a central repository to store and retrieve scene graph components and their non-linear revision history. It supports various clients including C++, WebGL, and Android applications. Scene graphs and revision histories are stored as documents in MongoDB collections in a schema that embeds metadata and component data or references binary data. The framework enables collaborative editing of 3D models through version control of hierarchical scene graphs.
The document discusses the design and implementation of a SQL Server BI solution called FishLog for reporting on fishing data. It describes migrating the data from flat files to a MySQL database and then using SQL Server Integration Services to load the data into an Analysis Services database cube. Report Services was then used to create summary and detailed reports on the fishing data dimensions of date, bait, and location. Future plans include additional data updates, mining, and reports.
This document summarizes a presentation about exploring SharePoint with the F# programming language. It discusses the history and characteristics of functional programming and F#, including that F# is a functional-first language developed by Microsoft Research. It also covers how to use the F# Client Object Model to connect to and query SharePoint, including loading references, creating a client context, and querying sites, lists, and list items. The presentation demonstrates iterating through lists and items and retrieving properties.
This document discusses Go programming patterns and best practices presented by MegaEase, an enterprise cloud native architecture provider. It covers topics like slices, interfaces, performance optimization, and common Go mistakes. Examples are provided to demonstrate slice internals, deep comparison, interface patterns, and how to check interface compliance.
AWS SSA Webinar 20 - Getting Started with Data Warehouses on AWSCobus Bernard
In this session, we will take you through setting up an Amazon Redshift cluster and at the ways you can populate it with data. We will start by using AWS DMS to replicate the data as-is as well as doing some ETL on it. This will be followed by AWS Glue where you can do more advanced ETL operations. Lastly, we will look at how you can use Amazon Kinesis Firehose to stream event directly to the Redshift cluster.
This document discusses WebDSL, a domain-specific language for web programming developed by Eelco Visser. It provides an overview of WebDSL, including its support for separation of concerns in web applications through modeling different aspects like data, user interfaces, and access control with different languages. It also summarizes research conducted on WebDSL, such as automatically generating compilers and IDEs from language definitions, and systematically designing domain-specific languages. Examples of WebDSL features are given, such as defining entities for data modeling, templates for user interfaces, and navigation between pages.
This document provides an overview of using React Draft.js to build rich text editors. It discusses how Draft.js uses immutable states to control content and selection, and how this allows building fully customizable editors. It also introduces Megadraft, an editor built with Draft.js and React that is open source and extensible through plugins.
This document discusses data binding and visualization techniques for D3.js including binding data to DOM elements, using a model-view pattern, and rendering collections. It provides an example of tracking interaction state by storing it in models and views and triggering events on state changes. The document promotes an approach where interactions are modeled as objects that can get and set state and register named interactions. It notes benefits like undo/redo support, a uniform representation, and persisting interaction state across sessions.
This document provides an overview of various data interfaces in R, including CSV, Excel, database, XML, JSON, and web data. It discusses how to read and write files in each format using functions like read.csv(), read.xlsx(), dbConnect(), xmlParse(), fromJSON(), and getHTMLLinks(). It also provides an example of extracting data from Facebook using the Rfacebook package.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
2. Why are databases still evolving
Handling velocity of data
has become important
Data is getting more
connected
Development timelines are
getting shorter
4. How Graph Databases Fulfill the wish list
O(1)
Joins
Master-master
replication
Natural and intuitive
representation of data
5.
6. User User
Post
friend
message
creates
comments
Graph SQL NoSQL
User Vertex
Type
Table Collection
friend Edge Type Intermediate
Table
DBref
Steve jobs Vertex Row Document
Birthday pic Vertex Row Document
Steve jobs’
age
Property Field Field
Data Modelling
8. Use
r
Use
r
Post
friend
message
creates
comment
s
Entire database g
All vertices g.V()
All edges g.E()
All users g.V().hasLabel(‘user’)
All message edges g.E().hasLabel(‘message’)
Specific vertex g.V(1)
Specific Edge g.E(1)
Steve Jobs g.V().has(‘name’, ‘Steve
Jobs’)
Age of Steve Jobs g.V().has(‘name’, ‘Steve
Jobs’).values(‘age’)
9. Use
r
Use
r
Post
friend
message
creates
comment
s
Me g.V(1)
My friends g.V(1).out(‘friend’)
Friends of
friends
g.V(1).out(‘friend’).out(‘friend’
)
Everyone g.V().out(‘friend’).loop(6)
My inbox g.V(1).inE(‘message’)
My best friend g.V(2)
Messages with my
best friend
g.V(1).bothE(‘message’).as(‘x’).b
othV.retain([g.V(2)]).back(‘x’)
10. Use
r
Use
r
Post
friend
message
creates
comment
s
My friends
ordered by date
g.V(1).outE(‘friend’)
.order({it.a.getProperty(‘date’)<i
t.b.getProperty(‘date’)}).outV
My latest 5
friends
g.V(1).outE(‘friend’)
.order({it.b.getProperty(‘date’)<i
t.a.getProperty(‘date’)})
.limit(5)
My friends who
are older than
30
g.V(1).out(‘friend’)
.filter({it.getProperty(‘age’)>30}
)
How well are my
friends
connected?
g.V(1).out(‘friend’).order(outE(‘f
riend’).count())
11. Use
r
Use
r
Post
friend
message
creates
comment
s
How many posts
have I created?
g.V(1).out(‘creates’).count()
Mean age of all
my friends
g.V(1).out(‘friend’).values(‘age’)
.mean()
Gender ratio of
my friends
g.V(1).out(‘friend’).groupCount().
by(‘gender’)
Average age of
men and women
in my friend
list
g.V(1).out(‘friend’).group().by(‘g
ender’).by(values(“age”).mean())
12.
13. Download Gremlin Console from http://tinkerpop.apache.org
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
14. Neo4j OrientDB
high performance in queries Tops the XGDBench
benchmark
Gremlin support is new Evolving very fast, great
community support
No Master-master
replication
Master-master replication
Documentation is poor
Has mixed response from
customers
Once you get serious, pick a Graph DB
15. If you choose OrientDB...
Checkout https://github.com/bitonator/oriental
16. Develop a demo and check performance
before you deploy to production