This document introduces graph databases as an alternative to relational databases for modeling data with complex relationships. It discusses how graph databases can be used to efficiently find connections between entities, such as finding the shortest path between two actors in a movie database. Examples are given of domains where graph databases are commonly used, like social networks, mapping, and bioinformatics. The document also provides an overview of Neo4j, a popular graph database technology.
Application Modeling with Graph DatabasesJosh Adell
?
The document discusses how graph databases can be used to model application data with relationships. It provides examples of using graph databases to model social networks, access control lists (ACL), and company organizational structures. Relational databases are not well-suited for modeling relationships, while graph databases allow querying and traversing relationships through nodes and edges. The document encourages using the right tool for the job and considering a graph database for applications where relationships are important.
1. A new data platform was created for Parliament using Azure cloud hosting, a Triplestore graph database, Logic Apps for orchestration, and Functions for data transformation.
2. The infrastructure is managed with VSTS and defined using ARM templates and PowerShell scripts. An OWL ontology was created to model the data.
3. The platform provides constituency data and SPARQL querying on beta.parliament.uk and uses Application Insights for telemetry and PowerBI for performance reporting.
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...Marcel Caraciolo
?
This document describes a tool called GeoLocation Friends Visualizer that plots social network location data on a map. It was created by Marcel Caraciolo, a Python developer from Recife, Brazil who has been working with Python for 6 years. The tool and its source code are available on GitHub at a provided link.
Talk to me ¨C Chatbots und digitale Assistenteninovex GmbH
?
Menschliche Kommunikation folgt zwar einer ganzen Reihe von Regeln, diese lassen sich aber schwer formalisieren. Nicht zuletzt deshalb, weil in unseren Interaktionen immer auch eine F¨¹lle von Welt- und implizitem Kontextwissen eine Rolle spielt. Rein regelbasierte Chatbots sind daher nicht nur ?u?ert komplex in der Programmierung, sondern sto?en in vielen Anwendungsbereichen schnell an ihre Grenzen.
In diesem Vortrag gab Anna Wei?haar einen ?berblick ¨¹ber die aktuellen L?sungen und Herausforderungen im Bereich digitale Assistenten. Der Fokus lag dabei auf Ans?tzen, die Chatbots ?chatty¡° machen, sie also m?glichst ad?quat auf im Voraus unbekannte Nutzereingaben reagieren zu lassen.
Event: inovex Meetup: Das Unvorhersehbare vorhersagen: Zeitreihen und Chatbots, 26.03.2019
Speaker: Anna Wei?haar (inovex)
Mehr Tech-Vortr?ge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
You are in a maze of deeply nested maps, all alikeEric Normand
?
The document discusses encapsulating data operations and avoiding deep nesting when working with nested data structures like maps. It recommends separating code into distinct layers based on rates of change, with each layer only depending on the layer below. This stratified design approach aims to make the code easier to understand and maintain by programing at a higher level of abstraction closer to the domain concepts.
As Clojure programmers, our software is full of trees. Both the values we manipulate and the code we manipulate them with, are made from trees. It's all to easy to get caught up in a project and miss the forest for the trees, but how often have you missed the trees for the forest? This presentation is an exploration of trees from a unique perspective that will hopefully inform your thinking and lead your program design out of the woods.
Ruby was created in 1995 by Yukihiro Matsumoto who wanted a scripting language more powerful than Perl and more object-oriented than Python. It draws inspiration from Perl for its syntax, Smalltalk for its object model, and Lisp for its meta-programming capabilities. Ruby is an interpreted, object-oriented language with dynamic typing where everything is an object and supports features like classes, modules, blocks and iterators. The Ruby on Rails framework further popularized Ruby for web development.
Graph databases are an alternative to relational databases for modeling connected data. They are well-suited for problems involving relationships across multiple degrees of separation and different data types. Graph databases represent data as nodes and relationships, allowing for flexible traversal of connections. The presentation introduces graph database concepts and demonstrates how to model and query data using the Neo4j graph database.
Ruth Cheesley - Joomla!Day Kenya - Microdata, Authorship, and why you can't a...Ruth Cheesley
?
SEO is vital in today's economy, and search engines are starting to move towards a contextual, semantic understanding of content. Microdata allows you to insert contextual information into your websites - such as the author, location information, pricing and so forth - which search engines can use to create 'rich snippets' within their listings.
The document discusses MongoDB, including how to connect to and query a MongoDB database using Perl. It provides examples of inserting, finding, updating, and deleting documents. It also covers MongoDB features like geospatial indexes, gridfs for file storage, replication, and sharding.
Ruth Cheesley discusses microdata and semantic search. She explains how microdata allows search engines to create rich snippets by providing context for web content. Authorship microdata links authors to their online content. While many sites lack microdata, it can be manually added or with extensions. Joomla will soon include a JMicrodata library to more easily integrate microdata.
This document summarizes how to use Freebase, an open online database, to query for and display Academy Award winner data. It shows how to structure MQL queries to retrieve award categories, winners, films, and additional metadata. Templating is demonstrated to output the results with formatting and links. The queries become increasingly complex, adding sorting, subqueries, reflection and optional fields.
Pick-a-Plex App: The Pinnacle of Cinema ExperiencesFlatiron School
?
Web Development Students Randall Reed, Jr. and Chris Callahan presented their app, Pick-a-Plex, an app that uses SQL to help users pick a movie to go see.
The document discusses strategies for writing friendly libraries in CodeIgniter, including making libraries testable, reducing coupling, versioning, documentation, adaptability, and namespacing. It also provides tips for writing libraries such as using configuration, helpers, language files, and not restricting yourself.
Arpad Ray's PHPNW08 slides:
Looking at websites from the perspective of potential attackers is a useful technique not only for security professionals.
This talk demonstrates how to use simple PHP scripts to exploit many common security holes in PHP applications, hopefully giving developers a deeper understanding of what it is they are protecting against.
* Getting around common precautions against SQL injection
* Free spam with SMTP injection
* Making a malicious website to exploit PHP sessions
* The holes every attacker hopes for
* Making use of a newly exploited website
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025David Brossard
?
Today, the authorization world is fractured - each vendor supports its own APIs & protocols. But this is about to change: OpenID AuthZEN was created in late 2023 to establish much-needed modern authorization standards. As of late 2024, AuthZEN has a stable Implementers Draft, and is expected to reach Final Specification in 2025.
With AuthZEN, IAM teams can confidently externalize and standardize authorization across their application estate without being locked in to a proprietary API.
This session will describe the state of modern authorization, review the AuthZEN API, and demo our 15 interoperable implementations.
This presentation, delivered at Boston Code Camp 38, explores scalable multi-agent AI systems using Microsoft's AutoGen framework. It covers core concepts of AI agents, the building blocks of modern AI architectures, and how to orchestrate multi-agent collaboration using LLMs, tools, and human-in-the-loop workflows. Includes real-world use cases and implementation patterns.
Why Outsource Accounting to India A Smart Business Move!.pdfanjelinajones6811
?
Outsource Accounting to India to reduce costs, access skilled professionals, and streamline financial operations. Indian accounting firms offer expert services, advanced technology, and round-the-clock support, making it a smart choice for businesses looking to improve efficiency and focus on growth.
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...DianaGray10
?
Join us for a comprehensive webinar on SAP Solution Accelerators and best practices for implementing them using UiPath. This session is designed to help SAP professionals and automation enthusiasts understand how to effectively leverage UiPath¡¯s SAP Solution Accelerators to automate standard SAP process quickly. Learn about the benefits, best ways to do it, and real-world success stories to speed up.
Sugarlab AI: How Much Does an XXX AI Porn Generator Cost in 2025Sugarlab AI
?
The cost of an XXX AI porn generator in 2025 varies depending on factors like AI sophistication, subscription plans, and additional expenses. Whether you're looking for a free AI porn video generator or a premium adult AI image generator, pricing ranges from basic tools to enterprise-level solutions. This article breaks down the costs, features, and what to expect from AI-driven adult content platforms.
Recruiting Tech: A Look at Why AI is Actually OGMatt Charney
?
A lot of recruiting technology vendors out there are talking about how they're offering the first ever (insert AI use case here), but turns out, everything they're selling as innovative or cutting edge has been around since Yahoo! and MySpace were category killers. Here's the receipts.
Automated Engineering of Domain-Specific Metamorphic Testing EnvironmentsPablo G¨®mez Abajo
?
Context. Testing is essential to improve the correctness of software systems. Metamorphic testing (MT) is an approach especially suited when the system under test lacks oracles, or they are expensive to compute. However, building an MT environment for a particular domain (e.g., cloud simulation, model transformation, machine learning) requires substantial effort.
Objective. Our goal is to facilitate the construction of MT environments for specific domains.
Method. We propose a model-driven engineering approach to automate the construction of MT environments. Starting from a meta-model capturing the domain concepts, and a description of the domain execution environment, our approach produces an MT environment featuring comprehensive support for the MT process. This includes the definition of domain-specific metamorphic relations, their evaluation, detailed reporting of the testing results, and the automated search-based generation of follow-up test cases.
Results. Our method is supported by an extensible platform for Eclipse, called Gotten. We demonstrate its effectiveness by creating an MT environment for simulation-based testing of data centres and comparing with existing tools; its suitability to conduct MT processes by replicating previous experiments; and its generality by building another MT environment for video streaming APIs.
Conclusion. Gotten is the first platform targeted at reducing the development effort of domain-specific MT environments. The environments created with Gotten facilitate the specification of metamorphic relations, their evaluation, and the generation of new test cases.
Research Data Management (RDM): the management of dat in the research processHeilaPienaar
?
Presented as part of the M.IT degree at the Department of Information Science, University of Pretoria, South Africa. Module: Data management. 2023, 2024.
Fast Screen Recorder v2.1.0.11 Crack Updated [April-2025]jackalen173
?
Copy This Link and paste in new tab & get Crack File
¡ý
https://hamzapc.com/ddl
Fast Screen Recorder is an incredibly useful app that will let you record your screen and save a video of everything that happens on it.
Graph databases are an alternative to relational databases for modeling connected data. They are well-suited for problems involving relationships across multiple degrees of separation and different data types. Graph databases represent data as nodes and relationships, allowing for flexible traversal of connections. The presentation introduces graph database concepts and demonstrates how to model and query data using the Neo4j graph database.
Ruth Cheesley - Joomla!Day Kenya - Microdata, Authorship, and why you can't a...Ruth Cheesley
?
SEO is vital in today's economy, and search engines are starting to move towards a contextual, semantic understanding of content. Microdata allows you to insert contextual information into your websites - such as the author, location information, pricing and so forth - which search engines can use to create 'rich snippets' within their listings.
The document discusses MongoDB, including how to connect to and query a MongoDB database using Perl. It provides examples of inserting, finding, updating, and deleting documents. It also covers MongoDB features like geospatial indexes, gridfs for file storage, replication, and sharding.
Ruth Cheesley discusses microdata and semantic search. She explains how microdata allows search engines to create rich snippets by providing context for web content. Authorship microdata links authors to their online content. While many sites lack microdata, it can be manually added or with extensions. Joomla will soon include a JMicrodata library to more easily integrate microdata.
This document summarizes how to use Freebase, an open online database, to query for and display Academy Award winner data. It shows how to structure MQL queries to retrieve award categories, winners, films, and additional metadata. Templating is demonstrated to output the results with formatting and links. The queries become increasingly complex, adding sorting, subqueries, reflection and optional fields.
Pick-a-Plex App: The Pinnacle of Cinema ExperiencesFlatiron School
?
Web Development Students Randall Reed, Jr. and Chris Callahan presented their app, Pick-a-Plex, an app that uses SQL to help users pick a movie to go see.
The document discusses strategies for writing friendly libraries in CodeIgniter, including making libraries testable, reducing coupling, versioning, documentation, adaptability, and namespacing. It also provides tips for writing libraries such as using configuration, helpers, language files, and not restricting yourself.
Arpad Ray's PHPNW08 slides:
Looking at websites from the perspective of potential attackers is a useful technique not only for security professionals.
This talk demonstrates how to use simple PHP scripts to exploit many common security holes in PHP applications, hopefully giving developers a deeper understanding of what it is they are protecting against.
* Getting around common precautions against SQL injection
* Free spam with SMTP injection
* Making a malicious website to exploit PHP sessions
* The holes every attacker hopes for
* Making use of a newly exploited website
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025David Brossard
?
Today, the authorization world is fractured - each vendor supports its own APIs & protocols. But this is about to change: OpenID AuthZEN was created in late 2023 to establish much-needed modern authorization standards. As of late 2024, AuthZEN has a stable Implementers Draft, and is expected to reach Final Specification in 2025.
With AuthZEN, IAM teams can confidently externalize and standardize authorization across their application estate without being locked in to a proprietary API.
This session will describe the state of modern authorization, review the AuthZEN API, and demo our 15 interoperable implementations.
This presentation, delivered at Boston Code Camp 38, explores scalable multi-agent AI systems using Microsoft's AutoGen framework. It covers core concepts of AI agents, the building blocks of modern AI architectures, and how to orchestrate multi-agent collaboration using LLMs, tools, and human-in-the-loop workflows. Includes real-world use cases and implementation patterns.
Why Outsource Accounting to India A Smart Business Move!.pdfanjelinajones6811
?
Outsource Accounting to India to reduce costs, access skilled professionals, and streamline financial operations. Indian accounting firms offer expert services, advanced technology, and round-the-clock support, making it a smart choice for businesses looking to improve efficiency and focus on growth.
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...DianaGray10
?
Join us for a comprehensive webinar on SAP Solution Accelerators and best practices for implementing them using UiPath. This session is designed to help SAP professionals and automation enthusiasts understand how to effectively leverage UiPath¡¯s SAP Solution Accelerators to automate standard SAP process quickly. Learn about the benefits, best ways to do it, and real-world success stories to speed up.
Sugarlab AI: How Much Does an XXX AI Porn Generator Cost in 2025Sugarlab AI
?
The cost of an XXX AI porn generator in 2025 varies depending on factors like AI sophistication, subscription plans, and additional expenses. Whether you're looking for a free AI porn video generator or a premium adult AI image generator, pricing ranges from basic tools to enterprise-level solutions. This article breaks down the costs, features, and what to expect from AI-driven adult content platforms.
Recruiting Tech: A Look at Why AI is Actually OGMatt Charney
?
A lot of recruiting technology vendors out there are talking about how they're offering the first ever (insert AI use case here), but turns out, everything they're selling as innovative or cutting edge has been around since Yahoo! and MySpace were category killers. Here's the receipts.
Automated Engineering of Domain-Specific Metamorphic Testing EnvironmentsPablo G¨®mez Abajo
?
Context. Testing is essential to improve the correctness of software systems. Metamorphic testing (MT) is an approach especially suited when the system under test lacks oracles, or they are expensive to compute. However, building an MT environment for a particular domain (e.g., cloud simulation, model transformation, machine learning) requires substantial effort.
Objective. Our goal is to facilitate the construction of MT environments for specific domains.
Method. We propose a model-driven engineering approach to automate the construction of MT environments. Starting from a meta-model capturing the domain concepts, and a description of the domain execution environment, our approach produces an MT environment featuring comprehensive support for the MT process. This includes the definition of domain-specific metamorphic relations, their evaluation, detailed reporting of the testing results, and the automated search-based generation of follow-up test cases.
Results. Our method is supported by an extensible platform for Eclipse, called Gotten. We demonstrate its effectiveness by creating an MT environment for simulation-based testing of data centres and comparing with existing tools; its suitability to conduct MT processes by replicating previous experiments; and its generality by building another MT environment for video streaming APIs.
Conclusion. Gotten is the first platform targeted at reducing the development effort of domain-specific MT environments. The environments created with Gotten facilitate the specification of metamorphic relations, their evaluation, and the generation of new test cases.
Research Data Management (RDM): the management of dat in the research processHeilaPienaar
?
Presented as part of the M.IT degree at the Department of Information Science, University of Pretoria, South Africa. Module: Data management. 2023, 2024.
Fast Screen Recorder v2.1.0.11 Crack Updated [April-2025]jackalen173
?
Copy This Link and paste in new tab & get Crack File
¡ý
https://hamzapc.com/ddl
Fast Screen Recorder is an incredibly useful app that will let you record your screen and save a video of everything that happens on it.
Getting the Best of TrueDEM ¨C April News & Updatespanagenda
?
Webinar Recording: https://www.panagenda.com/webinars/getting-the-best-of-truedem-april-news-updates/
Boost your Microsoft 365 experience with OfficeExpert TrueDEM! Join the April webinar for a deep dive into recent and upcoming features and functionalities of OfficeExpert TrueDEM. We¡¯ll showcase what¡¯s new and use practical application examples and real-life scenarios, to demonstrate how to leverage TrueDEM to optimize your M365 environment, troubleshoot issues, improve user satisfaction and productivity, and ultimately make data-driven business decisions.
These sessions will be led by our team of product management and consultants, who interact with customers daily and possess in-depth product knowledge, providing valuable insights and expert guidance.
What you¡¯ll take away
- Updates & info about the latest and upcoming features of TrueDEM
- Practical and realistic applications & examples for troubelshooting or improving your Microsoft Teams & M365 environment
- Use cases and examples of how our customers use TrueDEM
Packaging your App for AppExchange ¨C Managed Vs Unmanaged.pptxmohayyudin7826
?
Learn how to package your app for Salesforce AppExchange with a deep dive into managed vs. unmanaged packages. Understand the best strategies for ISV success and choosing the right approach for your app development goals.
Elevate your online presence with Malachite Technologies where creativity meets technology. Our web design experts craft visually stunning and interactive websites that not only capture your brand¡¯s essence but also enhance user engagement.
Automating Behavior-Driven Development: Boosting Productivity with Template-D...DOCOMO Innovations, Inc.
?
https://bit.ly/4ciP3mZ
We have successfully established our development process for Drupal custom modules, including automated testing using PHPUnit, all managed through our own GitLab CI/CD pipeline. This setup mirrors the automated testing process used by Drupal.org, which was our goal to emulate.
Building on this success, we have taken the next step by learning Behavior-Driven Development (BDD) using Behat. This approach allows us to automate the execution of acceptance tests for our Cloud Orchestration modules. Our upcoming session will provide a thorough explanation of the practical application of Behat, demonstrating how to effectively use this tool to write and execute comprehensive test scenarios.
In this session, we will cover:
1. Introduction to Behavior-Driven Development (BDD):
- Understanding the principles of BDD and its advantages in the software development lifecycle.
- How BDD aligns with agile methodologies and enhances collaboration between developers, testers, and stakeholders.
2. Overview of Behat:
- Introduction to Behat as a testing framework for BDD.
- Key features of Behat and its integration with other tools and platforms.
3. Automating Acceptance Tests:
- Running Behat tests in our GitLab CI/CD pipeline.
- Techniques for ensuring that automated tests are reliable and maintainable.
- Strategies for continuous improvement and scaling the test suite.
4. Template-Based Test Scenario Reusability:
- How to create reusable test scenario templates in Behat.
- Methods for parameterizing test scenarios to enhance reusability and reduce redundancy.
- Practical examples of how to implement and manage these templates within your testing framework.
By the end of the session, attendees will have a comprehensive understanding of how to leverage Behat for BDD in their own projects, particularly within the context of Drupal and cloud orchestration. They will gain practical knowledge on writing and running automated acceptance tests, ultimately enhancing the quality and efficiency of their development processes.
Least Privilege AWS IAM Role PermissionsChris Wahl
?
RECORDING: https://youtu.be/hKepiNhtWSo
Hello innovators! Welcome to the latest episode of My Essentials Course series. In this video, we'll delve into the concept of least privilege for IAM roles, ensuring roles have the minimum permissions needed for success. Learn strategies to create read-only, developer, and admin roles. Discover tools like IAM Access Analyzer, Pike, and Policy Sentry for generating efficient IAM policies. Follow along as we automate role and policy creation using Pike with Terraform, and test our permissions using GitHub Actions. Enhance your security practices by integrating these powerful tools. Enjoy the video and leave your feedback in the comments!
Columbia Weather Systems offers professional weather stations in basically three configurations for industry and government agencies worldwide: Fixed-Base or Fixed-Mount Weather Stations, Portable Weather Stations, and Vehicle-Mounted Weather Stations.
Models include all-in-one sensor configurations as well as modular environmental monitoring systems. Real-time displays include hardware console, WeatherMaster? Software, and a Weather MicroServer? with industrial protocols, web and app monitoring options.
Innovative Weather Monitoring: Trusted by industry and government agencies worldwide. Professional, easy-to-use monitoring options. Customized sensor configurations. One-year warranty with personal technical support. Proven reliability, innovation, and brand recognition for over 45 years.
5. Find Every Actor at Each Degree > -- First degree > SELECT actor_name FROM cast WHERE movie_title IN (SELECT DISTINCT movie_title FROM cast WHERE actor_name='Kevin Bacon') > -- Second degree > SELECT actor_name FROM cast WHERE movie_title IN (SELECT DISTINCT movie_title FROM cast WHERE actor_name IN (SELECT actor_name?FROM cast WHERE movie_title IN (SELECT DISTINCT movie_title FROM cast WHERE actor_name='Kevin Bacon'))) > -- Third degree > SELECT actor_name FROM cast WHERE movie_title IN(SELECT DISTINCT movie_title FROM cast WHERE actor_name IN (SELECT actor_name FROM cast WHERE movie_title IN (SELECT DISTINCT movie_title FROM cast WHERE actor_name IN (SELECT actor_name?FROM cast WHERE movie_title IN (SELECT DISTINCT movie_title FROM cast WHERE actor_name='Kevin Bacon'))))
7. The Real Problem Finding relationships across multiple degrees of separation ? ? ...and across multiple data types ? ? ...and where you don't even know there is a relationship
11. Some Graph Use Cases Social networking Manufacturing Mapping and Geolocation Bioinformatics Fraud detection Multi-tenancy
12. Modelling a Domain with Graphs Graphs are "whiteboard-friendly" Nouns become nodes Verbs become relationships Properties are adjectives and adverbs
14. New Solution to the Bacon Problem $keanu = $actorIndex->find('name', 'Keanu Reeves'); $kevin =?$actorIndex->find('name', 'Kevin Bacon'); $path = $keanu->findPathTo($kevin);
15. Cypher "What to find" vs. "How to find" // Find all the directors who have directed a movie scored by John Williams // that starred Kevin Bacon START actor=(actors, 'Kevin Bacon'), composer=(compsers, 'John Williams') MATCH (actor)-[:IN]->(movie)<-[:DIRECTED]-(director), ? ? ? (movie)<-[:SCORED]-(composer) RETURN director
16. Are RDBs Useful At All? Aggregation Ordered data Truly tabular data Few or clearly defined relationships
17. Neo Technologies http://neo4j.org Embedded in Java applications Standalone server via REST Plugins: spatial, lucene, rdf Others: Tinkerpop OrientDB
19. Resources http://neo4j.org http://docs.neo4j.org http://www.youtube.com/watch?v=UodTzseLh04 Emil Eifrem (Neo Tech. CEO) webinar Check out around the 54 minute mark http://github.com/jadell/Neo4jPHP http://joshadell.com [email_address] @josh_adell Google+, Facebook, LinkedIn
#4: * Six degrees game * Relational databases can't easily answer certain types of questions
#5: * first pass using a relational database * cast table: actor_name, movie_title * hard to visualize the solution * In order to do this, you need to do multiple passes or joins
#6: * Each degree adds a join * Increases complexity * Decreases performance * Stop when the actor you're looking for is in the list
#7: * this problem highlights the ugly truth about RDBs * they weren't designed to handle these types of problems. * arbitrary path query * RDB relationships join data, but are not data in themselves * Set math * Gather everything in the set that matches these criteria, then tell me if this thing is in the set * 1 set, no problem * 2nd set no problem * 3rd set not related to 1st * 4th not related to 2nd * 5th related to 1st and 4th * etc. * Relationships are only available between overlapping sets
#9: * Graphs * Not X-Y * Computer Science definition of graphs * A graph is an ordered pair? G = (V, E) ?where V is a set of? vertices ?and E is a set of? edges , which are?pairs of?vertices. * Node : vertex * Relationship : edge * Property : meta-datum attached to a node or relationship * Nodes can have arbitrary properties * Relationships are first-class citizens Have a type Have properties Have a direction Domain semantics Traversable in any direction * This is how graph dbs solve the problems that RDBs can't * Path : an ordered list of nodes and relationships * Paths are found using traversal algorithms
#10: * Tree data-structures * Networks * Maps * vehicles on streets == packets through network * Relational databases are graphs!
#11: * Make each record a node * Make every foreign key a relationship * RDB indexes are usually stored in a tree structure * Trees are graphs * Why not use RDBs? * The trouble with RDBs is how they are stored in memory and queried ? * Require a translation step from memory blocks to graph structure * Relationships not first-class citizens * Many problem domains map poorly to rows/tables
#12: * Big Data ** billions of nodes and relationships in a single instance * &quot;Internet of Things&quot; buzzword * Social networking - friends of friends of friends of friends * Assembly/Manufacturing - 1 widget contains 3 gadgets each contain 2 gizmos * Map directions - starting at my house find a route to the office that goes past the pub * Multi-tenancy - root node per tenant * all queries start at root * No overlap between graphs = no accidental data spillage * Fraud: track transactions back to origination * Pretty much anything that can be drawn on a whiteboard
#13: * Example: retail system * Customer makes Order * Store sells Order * Order contains Items * Supplier supplied Items * Customer rates Items * Did this customer rank supplier X highly? * Which suppliers sell the highest rated items? * Does item A get rated higher when ordered with Item B? * All can be answered with RDBs as well * Not as elegant * Not as performant
#14: * This is where the power of graph dbs comes from * Paths - find any relationship chain between A and B * Kevin Bacon example, known start and end * Traversal - filter out paths that don't meet criteria * Complex path finding, base next decision on existing path from start to current position * Define path-finding (prune) and result filtering functions * Queries - Here is what I want, find it however you can * SPARQL, Gremlin, Cypher
#15: * Actors are nodes * Movies are nodes * Relationship: Actor is IN a movie * pseudo-code shortened for brevity * Compare to degree selection join queries
#16: * Cypher is &quot;what to find&quot; * describe the &quot;shape&quot; of the thing you're looking for * Very white-board friendly * Pros: easy to understand, query looks like domain model * Cons: not as powerful, not fully featured (YET) * result set is an array of arrays?
#17: * RDBs are really good at data aggregation * Set math, duh * Have to traverse the whole graph in order to do aggregation * Truly tabular means not a lot of relationships between the data types
#18: * billions of nodes and relationships in a single instance * cluster replication * transactions * native bindings for Ruby, Python, and language that can run in JVM * Licensing