SlideShare a Scribd company logo
1 of 68
Spring Data Neo4j 2.1
       Introduction

Michael Hunger, Neo Technology
Me & You ?


 ๏ Me: Michael Hunger, Neo Technology
    • Neo4j Community Team
    • Spring Data Neo4j Project Lead
    • Neo4j Cloud Hosting
    • michael.hunger@neotechnology.com / @mesirii
 ๏ You:
    • Java & Spring !
    • Enterprise ?
    • NOSQL ?
    • Cloud (CF, Heroku) ?
About the Webinar

 ๏ Graphs are EveryWhere
 ๏ Graph Database
 ๏ Intro Neo4j
 ๏ Sample App - Twitter Graph
    • Domain Model
    • Code
 ๏ Resources, Books, GraphConnect
 ๏ Questions answered during webinar and Q & A at the end
 ๏ All your questions will be answered in a follow up blog post,
      don‘t hesitate to ask
To become part of todays
     Twitter-Graph
To become part of todays
        Twitter-Graph
please tweet with #neo4j #sdn
To become part of todays
        Twitter-Graph
please tweet with #neo4j #sdn
         •your attendance
         •questions
         •remarks
         •....
Graphs are
everywhere




             5
7
6
Science




7
6
Science

Biology

Chemistry


            7
            6
Science

Biology

Chemistry
            Proteins
                       Reactions
       Environments
            7
            6       Genes
Science

                         Biology

                        Chemistry
                                    Proteins
                                               Reactions

          Politics             Environments
                                    7
                                    6       Genes
Society              History
Science

                                    Biology
 Work
           Friends
Neighbor
           Family                  Chemistry
                                               Proteins
                                                          Reactions

                     Politics             Environments
                                               7
                                               6       Genes
           Society              History
Computers


            Internet



                                                   Science

                                        Biology
 Work
           Friends
Neighbor
           Family                      Chemistry
                                                   Proteins
                                                              Reactions

                       Politics               Environments
                                                   7
                                                   6       Genes
           Society                  History
Devices
                         Users
                                   Software
             Networks
                        Services

                                              Computers


            Internet



                                                                         Science

                                                              Biology
 Work
           Friends
Neighbor
           Family                                            Chemistry
                                                                         Proteins
                                                                                    Reactions

                                          Politics                  Environments
                                                                         7
                                                                         6       Genes
           Society                                        History
Devices
                         Users
                                   Software
             Networks
                        Services

                                              Computers


            Internet


            Business                                                     Science

                                                              Biology
 Work
           Friends
Neighbor
           Family                                            Chemistry
                                                                         Proteins
                                                                                    Reactions

                                          Politics                  Environments
                                                                         7
                                                                         6       Genes
           Society                                        History
Devices
                         Users
                                   Software
             Networks
                        Services

                                              Computers


            Internet


            Business                                                     Science

                             ERP                              Biology
 Work                                   Geo
           Friends
                            Retail
Neighbor
           Family
                                       Cloud                 Chemistry
                              Travel

                                                                         Proteins
                                                                                    Reactions

                                          Politics                  Environments
                                                                         7
                                                                         6       Genes
           Society                                        History
Devices
                         Users
                                   Software
             Networks
                        Services

                                              Computers


            Internet
                                                                    Art



            Business                                                         Science

                             ERP                              Biology
 Work                                   Geo
           Friends
                            Retail
Neighbor
           Family
                                       Cloud                 Chemistry
                              Travel

                                                                              Proteins
                                                                                         Reactions

                                          Politics                        Environments
                                                                               7
                                                                               6       Genes
           Society                                        History
Devices                                                  Stories
                         Users
                                   Software               Creativity
                                                                       Visuals
             Networks
                        Services

                                              Computers


            Internet
                                                                                 Art



            Business                                                                      Science

                             ERP                                            Biology
 Work                                   Geo
           Friends
                            Retail
Neighbor
           Family
                                       Cloud                             Chemistry
                              Travel

                                                                                           Proteins
                                                                                                      Reactions

                                          Politics                                     Environments
                                                                                            7
                                                                                            6       Genes
           Society                                               History
A Graph Database




       Node        Node
A Graph Database




              Typed relationship
       Node                        Node
A Graph Database




                   Typed relationship
        Node                            Node
      key: value       key: value
Neo4j Intro
9
10
Java




                              N
                          D _I
                   N TE
            E ME
       PL
     IM




10
Java




                                    N
                                D _I
                                    N TE
                                        E ME
                                             PL
                                           IM
         Server          RUN
                             S_A
                                S


Ruby
           JS
                            S
                          _A




Python           Java
                          NS




          .net
                        RU




Spring




    embedded
                                                  10
Java




                                    N
                                D _I
                                    N TE
                                        E ME
                                             PL
                                           IM
         Server          RUN
                             S_A
                                S


Ruby



                                                  RU
           JS
                            S
                          _A




                                                    NS
Python           Java


                                                    _O
                          NS




          .net
                        RU




                                                      N
Spring




    embedded                                             Heroku
                                                                  10
Java




                                    N
                                D _I
                                    N TE
                                        E ME
                                             PL
                                           IM
                                                          PROVIDES   ACID
         Server          RUN
                             S_A
                                                                      TX
                                S


Ruby



                                                  RU
           JS
                            S
                          _A




                                                    NS
Python           Java


                                                    _O
                          NS




          .net
                        RU




                                                      N
Spring




    embedded                                             Heroku
                                                                     10
Java                             Lucene




                                    N
                                D _I
                                      TE
                                                                     Index




                                    N
                                          ME
                                                            ES




                                        E
                                                           T




                                             PL
                                                         RA
                                                        G




                                           IM
                                                     TE
                                                  IN
                                                          PROVIDES           ACID
         Server          RUN
                             S_A
                                                                              TX
                                S


Ruby



                                                  RU
           JS
                            S
                          _A




                                                    NS
Python           Java


                                                    _O
                          NS




          .net
                        RU




                                                      N
Spring




    embedded                                             Heroku
                                                                             10
Java                             Lucene




                                    N
                                D _I
                                      TE
                                                                     Index




                                    N
                                          ME
                                                            ES




                                        E
                                                           T




                                             PL
                                                         RA
                                                        G




                                           IM
                                                     TE
                                                  IN
                                                          PROVIDES           ACID
         Server          RUN
                             S_A
                                                                              TX
                                S

                                            O
Ruby



                                                  RU
                                           ES_T

           JS
                            S
                          _A




                                                    NS
Python           Java


                                                    _O
                          NS




                                         SC AL




          .net
                        RU




                                                      N
Spring




                                34bn
    embedded                                             Heroku
                                Nodes                                        10
Java                                          Lucene

                                           1 M/s




                                    N
                                D _I
                                      TE
                                                                                  Index




                                    N


                                                         ALS
                                          ME
                                                                         ES




                                                     VERS
                                        E
                                                                        T




                                             PL
                                                                      RA
                                                                     G




                                           IM
                                                                  TE




                                                  TRA
                                                               IN
                                                                       PROVIDES           ACID
         Server          RUN
                             S_A
                                                                                           TX
                                S

                                            O
Ruby



                                                               RU
                                           ES_T

           JS
                            S
                          _A




                                                                 NS
Python           Java


                                                                 _O
                          NS




                                         SC AL




          .net
                        RU




                                                                   N
Spring




                                34bn
    embedded                                                          Heroku
                                Nodes                                                     10
Java                                          Lucene

                                           1 M/s

       Master/




                                     N
                                 D _I
        Slave



                                      TE
                                                                                  Index




                                    N


                                                         ALS
                                           ME
                           HIG
                               H_A                                       ES




                                                     VERS
                                         E
                                  VA                                    T




                                             PL
                                     IL.                              RA
                                                                     G




                                           IM
                                                                  TE




                                                  TRA
                                                               IN
                                                                       PROVIDES           ACID
         Server          RUN
                             S_A
                                                                                           TX
                                S

                                             O
Ruby



                                                               RU
                                           ES_T

           JS
                            S
                          _A




                                                                 NS
Python           Java


                                                                 _O
                          NS




                                          SC AL




          .net
                        RU




                                                                   N
Spring




                                 34bn
    embedded                                                          Heroku
                                 Nodes                                                    10
Java                                          Lucene

                                           1 M/s

       Master/




                                     N
                                 D _I
        Slave



                                      TE
                                                                                             Index




                                    N


                                                         ALS
                                           ME
                           HIG
                               H_A                                       ES




                                                     VERS
                                         E
                                  VA                                    T




                                             PL
                                     IL.                              RA
                                                                     G




                                           IM
                                                                  TE




                                                  TRA
                                                               IN
                                                                       PROVIDES                        ACID
         Server          RUN
                             S_A                                      LI
                                                                        CE
                                                                                                        TX
                                S
                                                                             NS
                                                                                  ED
                                                                                       _L
                                                                                          IK
                                             O
Ruby



                                                               RU
                                                                                             E
                                           ES_T

           JS
                                                                                                     MySQL
                            S
                          _A




                                                                 NS
Python           Java


                                                                 _O
                          NS




                                          SC AL




          .net
                        RU




                                                                   N
Spring
                                                                                                 Mongo
                                 34bn
    embedded                                                          Heroku
                                 Nodes                                                                  10
Introducing
The Twitter-Graph
 Domain Model
Whiteboard it - abstract




             :Tweet




                           :Tweet
Whiteboard it - abstract

      :User

              PO
                ST
                  ED




                       :Tweet




  :User                         :Tweet
              POSTED
Whiteboard it - abstract

      :User

              PO
                ST
                  ED



                                     TAGGED
                                                     :Tag

                       :Tweet      TAGG
                                        ED


                                              :Tag

                                                      ED
                                                  G
                                                AG

  :User                         :Tweet         T

              POSTED
Whiteboard it - abstract

      :User

              PO
                ST
                  ED



                                     TAGGED
                                                     :Tag

                       :Tweet      TAGG
                                        ED


                                              :Tag

                       NS
                      O                               ED
                    TI                            G
                MEN                             AG

  :User                         :Tweet         T

              POSTED
Whiteboard friendly - example




          Attending the
          #SDN #Neo4j
           webinar by
             @mesirii


                    Looking forward
                  to my #SDN webinar
Whiteboard friendly - example

 @peterneubauer

           PO
             ST
               ED




           Attending the
           #SDN #Neo4j
            webinar by
              @mesirii


                      Looking forward
@mesirii            to my #SDN webinar
           POSTED
Whiteboard friendly - example

 @peterneubauer

           PO
             ST
               ED



                               TAGGED
                                           #Neo4j
           Attending the
           #SDN #Neo4j       TAGG
            webinar by            ED

              @mesirii                   #SDN

                                                 ED
                                             G
                      Looking forward     TAG

@mesirii            to my #SDN webinar
           POSTED
Whiteboard friendly - example

 @peterneubauer

           PO
             ST
               ED



                                    TAGGED
                                                #Neo4j
           Attending the
           #SDN #Neo4j            TAGG
            webinar by                 ED

              @mesirii                        #SDN

                    NS
                   O                                  ED
                 TI                               G
             MEN           Looking forward     TAG

@mesirii                 to my #SDN webinar
           POSTED
Cypher Query Language
๏ Declarative query language
   • Describe what you want, not how
   • Based on pattern matching
๏ Examples:
   START peter=node:User(userName=”peterneubauer”)   # index lookup
   MATCH peter-[:POSTED]->tweet-[:MENTIONS]->user
   WHERE user.country = ”SE” and not peter-[:FOLLOWS]-user
   RETURN user

   START tag=node:Tag(tag = ”Neo4j”)
   MATCH tag<-[:TAGGED]-tweet-[:TAGGED]->co_tag
   RETURN co_tag.tag, COUNT(*) as cnt
   ORDER cnt DESC LIMIT 10




                                                             14
Spring Data Neo4j 2.1
Spring Data


๏ Spring Data: VMWare/SpringSource initiative to give Spring
    developers easy access to the emerging world of NOSQL
๏ Build on top of common infrastructure
๏ Spring Data Neo4j is the integration library for Neo4j
๏ http://springsource.org/spring-data
๏ Support for other NOSQL approaches
     • Redis
     • MongoDB
     • Hadoop
     • GemFire
Spring Data Neo4j

 ๏ The brain child of Rod Johnson & Emil Eifrém
    • Wrote functional initial prototype
    • Developed by Neo Technology and SpringSource teams
 ๏ Uses annotations to define graph entities
 ๏ Entity state backed by graph database
 ๏ Two modes of Object Graph Mapping
    • simple POJO Graph Mapping
    • advanced, seamless AspectJ backed Mapping
 ๏ SD-Repositories support
 ๏ Neo4j Server Support
Classic Neo4j domain class

public class Tag {
    private final Node underlyingNode;

    Tag( final Node node ) {
        underlyingNode = node;
    }

    public Node getUnderlyingNode() {
        return underlyingNode;
    }

    public final String getTag() {
        return (String) underlyingNode.getProperty( “tag” );
    }

    public void setTag( final String tag ) {
        underlyingNode.setProperty( “tag”, tag );
    }
}
Spring Data Neo4j domain class


@NodeEntity
public class Tag {
    @GraphId private Long id;

    private String tag;
}
Spring Data Neo4j domain class


@NodeEntity
public class Tag {
    @GraphId private Long id;
    @Indexed(unique = true)
    private String tag;
}
Defining entity classes
Defining entity classes

• @NodeEntity
    • Represents a node in the graph
    • Fields saved as properties on node
    • References stored as relationships between nodes
    • Instantiated using Java ‘new’ keyword, like any POJO
    • Also returned by lookup mechanisms
    • Type information stored in the graph
Defining entity classes
Defining entity classes

• @RelationshipEntity
    • Represents a relationship in the graph
    • Fields saved as properties on relationship
    • Special fields for start- and end-nodes
    • Only returned by lookup methods
Tweet domain class

@NodeEntity
public class Tweet {
  @GraphId private Long id;

    @Indexed(unique=true) Long tweetId;

    String text;

    @Fetch User sender; // eager loading

    @RelatedTo(type="TAGGED") Collection<Tag> tags;
    @RelatedTo(type="MENTIONS") Set<User> mentions;
    @RelatedTo(type="SOURCE") Tweet source;
}
Compare to Core-API approach
@NodeEntity
class Tweet {
  ...

  public Collecti
                  on<Tag> getTags
    final List<Tag>               () {
                     tags = new Link
    for ( Relations                  edList<Tag>();
                    hip rel : under
      RelTypes.TAGGED               lyingNode.getRe
                      , Direction.OUT               lationships(
        movies.add( new               GOING ) ) {
                         Tag( rel.getEnd

                                                           Old
      }                                  Node() ) );
   return tags;
 }




 @RelatedTo(type="TAGGED")
                            gs;                              New
 private Collection<Tag> ta
Interface based Repositories
๏ based on Repository infrastructure in Spring Data Commons
๏ just define the interface and the namespace configuration
๏ provide out-of-the-box support for
   • CRUD-Operations
   • Index-Lookups
   • Traversal-Execution
   • Annotated Graph-Queries (Cypher, Gremlin)
   • Derived Queries
   • Spatial Queries
๏ extensible via custom methods with provided implementations
                                                           24
Repositories
interface TweetRepository extends GraphRepository<Tweet> {
    Tweet findByTweetId(String id);
    Collection<Tweet> findByTagsTag(String tag);
}


<neo4j:repositories base-package=“org.neo4j.twitter_graph.repositories„/>


@Controller
public class TwitterController {
  @Autowired TweetRepository tweetRepository;


  @RequestMapping(value = "/tweet/{id}",...)
  public String show(Model model, @PathVariable String id) {
     Tweet tweet = tweetRepository.findByTweetId(id);
     model.addAttribute("tweet", tweet);
     return "/tweet/show";
  }}

                                                                     25
Neo4j-Template (I)

๏ well known Spring Template Pattern
๏ Resource / Transaction Management
๏ Convenience Methods
๏ Nodes and Entities handling & conversion
๏ Fluent Query Result Handling
๏ Works also via REST with Neo4j-Server
๏ Exception Translation



                                             26
REST-Client-Support
   <bean id="restGraphDatabaseService"
         class="org.sf.data.neo4j.rest.SpringRestGraphDatabase">
        <constructor-arg value="http://localhost:7473/db/data" />
   </bean>


   <neo4j:config graphDatabaseService="restGraphDatabaseService"/>




 ๏ drop-in replacement for the embedded GraphDatabase
 ๏ works transparently with POJO-Entity-Mapping and
   Neo4j-Template



                                                                     27
Coding the Twitter-Graph


                    28
Todays Coding Exercise

๏ uses Spring Social (minimally)
๏ Simple Domain: Tweets, Users, Tags
   • connected Entities
   • Repositories, Service
๏ standalone App with
   • embedded Neo4j-Database
   • (local Neo4j-Server)

                                       29
Spring Data Neo4j Guidebook
                       “Good Relationships”
“I’m excited about Spring Data Neo4j.... Spring Data Neo4j makes working
with Neo4j amazingly easy, and therefore has the potential to make you
more successful as a developer.”
                                              Rod Johnson, founder of Spring
๏ Spring Data Neo4j comes with a great Guide Book, featuring:
   • Forewords by Rod Johnson and Emil Eifrem
   • Ancineasts.net narrative tutorial walkthrough for
        easy to read,


   • A comprehensive reference for all the details
   • Check it out: http://bit.ly/sdn-book
   • Free e-book and printed                                         30
http://cineasts.net




 Check Out: http://spring.neo4j.org/tutorial
O‘Reilly Spring Data Book
    „Modern Data Access for Enterprise Java“

  • upcoming book by the Spring Data project leads
  • introduction to Spring Data & SD-repositories
  • covers all subprojects
  • available in O‘Reilly OFPS and O‘Reilly store (e-book)
  • http://bit.ly/sd-ofps

                                                             32
y wh ere
                                       ver ect
                                    e E onn
                                s Ar
                          aph .Share. 2
                        Gr ate
                                        C
                            v
                           no     , 201
                        In      ber 5-6
             CT
         NEisco          No vem
     HCON nc
GR AP         a
          n FrRegency
        Sa tt
        Hya
                                          Presented by

                                               33
Continue here
 ๏ See the Spring Data Neo4j site for more info:
      http://spring.neo4j.org
 ๏ Again, don’t miss our guidebook on Spring Data Neo4j
      published by InfoQ also printed
      http://bit.ly/sdn-book
 ๏ All about Neo4j:                  ๏ local Neo4j meetup groups
      http://neo4j.org                      http://neo4j.meetup.com

 ๏ Neo4j & SDN videos and webinars:
      http://video.neo4j.org
 ๏ Spring Data Forum at
      http://spring.neo4j.org/discussions
 ๏ Neo4j Google Group
    • http://neo4j.org/forums
Thank You!
Feel free to reach out with questions on

•Twitter,
•Spring-Forums,
•Neo4j-Google-Group
•Stack-Overflow

                                           35

More Related Content

Viewers also liked

Graph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsGraph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsStéphane Fréchette
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendationsproksik
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jWilliam Lyon
 
Graph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayGraph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayDataStax Academy
 
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...Codemotion
 
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial Fraud
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial FraudGraphDay Stockholm - Levaraging Graph-Technology to fight Financial Fraud
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial FraudNeo4j
 
GraphDay Stockholm - Telia Zone
GraphDay Stockholm - Telia Zone GraphDay Stockholm - Telia Zone
GraphDay Stockholm - Telia Zone Neo4j
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
 
Knowledge Architecture: Graphing Your Knowledge
Knowledge Architecture: Graphing Your KnowledgeKnowledge Architecture: Graphing Your Knowledge
Knowledge Architecture: Graphing Your KnowledgeNeo4j
 
Working With a Real-World Dataset in Neo4j: Import and Modeling
Working With a Real-World Dataset in Neo4j: Import and ModelingWorking With a Real-World Dataset in Neo4j: Import and Modeling
Working With a Real-World Dataset in Neo4j: Import and ModelingNeo4j
 
GraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementGraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementNeo4j
 

Viewers also liked (11)

Graph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsGraph Databases for SQL Server Professionals
Graph Databases for SQL Server Professionals
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendations
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
 
Graph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayGraph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBay
 
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...
Managing Connected Big Data in Art with Neo4j Graph Database - Lorenzo Speran...
 
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial Fraud
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial FraudGraphDay Stockholm - Levaraging Graph-Technology to fight Financial Fraud
GraphDay Stockholm - Levaraging Graph-Technology to fight Financial Fraud
 
GraphDay Stockholm - Telia Zone
GraphDay Stockholm - Telia Zone GraphDay Stockholm - Telia Zone
GraphDay Stockholm - Telia Zone
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
Knowledge Architecture: Graphing Your Knowledge
Knowledge Architecture: Graphing Your KnowledgeKnowledge Architecture: Graphing Your Knowledge
Knowledge Architecture: Graphing Your Knowledge
 
Working With a Real-World Dataset in Neo4j: Import and Modeling
Working With a Real-World Dataset in Neo4j: Import and ModelingWorking With a Real-World Dataset in Neo4j: Import and Modeling
Working With a Real-World Dataset in Neo4j: Import and Modeling
 
GraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementGraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data Management
 

Similar to Intro to Spring Data Neo4j

Ecosystem thinking for organizations
Ecosystem thinking  for organizationsEcosystem thinking  for organizations
Ecosystem thinking for organizationsDerek Keats
 
Stephen Friend Cytoscape Retreat 2011-05-20
Stephen Friend Cytoscape Retreat 2011-05-20Stephen Friend Cytoscape Retreat 2011-05-20
Stephen Friend Cytoscape Retreat 2011-05-20Sage Base
 
What Synthetic Biology Can Do For You
What Synthetic Biology Can Do For YouWhat Synthetic Biology Can Do For You
What Synthetic Biology Can Do For YouEric Ma
 
Friend AACR 2013-01-16
Friend AACR 2013-01-16Friend AACR 2013-01-16
Friend AACR 2013-01-16Sage Base
 
Cytoscape: Gene coexppression and PPI networks
Cytoscape: Gene coexppression and PPI networksCytoscape: Gene coexppression and PPI networks
Cytoscape: Gene coexppression and PPI networksBITS
 
Stephen Friend Nature Genetics Colloquium 2012-03-24
Stephen Friend Nature Genetics Colloquium 2012-03-24Stephen Friend Nature Genetics Colloquium 2012-03-24
Stephen Friend Nature Genetics Colloquium 2012-03-24Sage Base
 
Stephen Friend Fanconi Anemia Research Fund 2012-01-21
Stephen Friend Fanconi Anemia Research Fund 2012-01-21Stephen Friend Fanconi Anemia Research Fund 2012-01-21
Stephen Friend Fanconi Anemia Research Fund 2012-01-21Sage Base
 
Stephen Friend Food & Drug Administration 2011-07-18
Stephen Friend Food & Drug Administration 2011-07-18Stephen Friend Food & Drug Administration 2011-07-18
Stephen Friend Food & Drug Administration 2011-07-18Sage Base
 
Friend UCSF 2012-07-27
Friend UCSF 2012-07-27Friend UCSF 2012-07-27
Friend UCSF 2012-07-27Sage Base
 
Stephen Friend Haas School of Business 2012-03-05
Stephen Friend Haas School of Business 2012-03-05Stephen Friend Haas School of Business 2012-03-05
Stephen Friend Haas School of Business 2012-03-05Sage Base
 
Integration of Bioinformatics Web Services through the Search Computing Techn...
Integration of Bioinformatics Web Services through the Search Computing Techn...Integration of Bioinformatics Web Services through the Search Computing Techn...
Integration of Bioinformatics Web Services through the Search Computing Techn...Davide Chicco
 
Friend NAS 2013-01-10
Friend NAS 2013-01-10Friend NAS 2013-01-10
Friend NAS 2013-01-10Sage Base
 
Go users meeting, unknowns
Go users meeting, unknownsGo users meeting, unknowns
Go users meeting, unknownsValerie Wood
 
Session ii g2 overview chemical modeling mmc
Session ii g2 overview chemical modeling mmcSession ii g2 overview chemical modeling mmc
Session ii g2 overview chemical modeling mmcUSD Bioinformatics
 
Biotechnology as Career Option 2012
Biotechnology as Career Option 2012Biotechnology as Career Option 2012
Biotechnology as Career Option 2012Reportbioinformatics
 
Stephen Friend AMIA Symposium 2012-03-21
Stephen Friend AMIA Symposium 2012-03-21Stephen Friend AMIA Symposium 2012-03-21
Stephen Friend AMIA Symposium 2012-03-21Sage Base
 
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16Sage Base
 

Similar to Intro to Spring Data Neo4j (20)

Ecosystem thinking for organizations
Ecosystem thinking  for organizationsEcosystem thinking  for organizations
Ecosystem thinking for organizations
 
Stephen Friend Cytoscape Retreat 2011-05-20
Stephen Friend Cytoscape Retreat 2011-05-20Stephen Friend Cytoscape Retreat 2011-05-20
Stephen Friend Cytoscape Retreat 2011-05-20
 
What Synthetic Biology Can Do For You
What Synthetic Biology Can Do For YouWhat Synthetic Biology Can Do For You
What Synthetic Biology Can Do For You
 
Friend AACR 2013-01-16
Friend AACR 2013-01-16Friend AACR 2013-01-16
Friend AACR 2013-01-16
 
Cytoscape: Gene coexppression and PPI networks
Cytoscape: Gene coexppression and PPI networksCytoscape: Gene coexppression and PPI networks
Cytoscape: Gene coexppression and PPI networks
 
Stephen Friend Nature Genetics Colloquium 2012-03-24
Stephen Friend Nature Genetics Colloquium 2012-03-24Stephen Friend Nature Genetics Colloquium 2012-03-24
Stephen Friend Nature Genetics Colloquium 2012-03-24
 
Stephen Friend Fanconi Anemia Research Fund 2012-01-21
Stephen Friend Fanconi Anemia Research Fund 2012-01-21Stephen Friend Fanconi Anemia Research Fund 2012-01-21
Stephen Friend Fanconi Anemia Research Fund 2012-01-21
 
Stephen Friend Food & Drug Administration 2011-07-18
Stephen Friend Food & Drug Administration 2011-07-18Stephen Friend Food & Drug Administration 2011-07-18
Stephen Friend Food & Drug Administration 2011-07-18
 
Friend UCSF 2012-07-27
Friend UCSF 2012-07-27Friend UCSF 2012-07-27
Friend UCSF 2012-07-27
 
Stephen Friend Haas School of Business 2012-03-05
Stephen Friend Haas School of Business 2012-03-05Stephen Friend Haas School of Business 2012-03-05
Stephen Friend Haas School of Business 2012-03-05
 
ALTRABio presents WikiBioPath: new perspectives in biological data analysis
ALTRABio presents WikiBioPath: new perspectives in biological data analysisALTRABio presents WikiBioPath: new perspectives in biological data analysis
ALTRABio presents WikiBioPath: new perspectives in biological data analysis
 
Am2012 ppt
Am2012 pptAm2012 ppt
Am2012 ppt
 
Integration of Bioinformatics Web Services through the Search Computing Techn...
Integration of Bioinformatics Web Services through the Search Computing Techn...Integration of Bioinformatics Web Services through the Search Computing Techn...
Integration of Bioinformatics Web Services through the Search Computing Techn...
 
Friend NAS 2013-01-10
Friend NAS 2013-01-10Friend NAS 2013-01-10
Friend NAS 2013-01-10
 
Go users meeting, unknowns
Go users meeting, unknownsGo users meeting, unknowns
Go users meeting, unknowns
 
Translational Informatics in the Pre-Competitive Era
Translational Informatics in the Pre-Competitive EraTranslational Informatics in the Pre-Competitive Era
Translational Informatics in the Pre-Competitive Era
 
Session ii g2 overview chemical modeling mmc
Session ii g2 overview chemical modeling mmcSession ii g2 overview chemical modeling mmc
Session ii g2 overview chemical modeling mmc
 
Biotechnology as Career Option 2012
Biotechnology as Career Option 2012Biotechnology as Career Option 2012
Biotechnology as Career Option 2012
 
Stephen Friend AMIA Symposium 2012-03-21
Stephen Friend AMIA Symposium 2012-03-21Stephen Friend AMIA Symposium 2012-03-21
Stephen Friend AMIA Symposium 2012-03-21
 
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16
Stephen Friend NIH PPP Coordinating Committee Meeting 2012-02-16
 

More from jexp

Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfjexp
 
Easing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsEasing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsjexp
 
Looming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in JavaLooming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in Javajexp
 
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxGraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxjexp
 
Neo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesNeo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesjexp
 
How Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the DotsHow Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the Dotsjexp
 
The Home Office. Does it really work?
The Home Office. Does it really work?The Home Office. Does it really work?
The Home Office. Does it really work?jexp
 
Polyglot Applications with GraalVM
Polyglot Applications with GraalVMPolyglot Applications with GraalVM
Polyglot Applications with GraalVMjexp
 
Neo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache KafkaNeo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache Kafkajexp
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...jexp
 
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Library
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures LibraryAPOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Library
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Libraryjexp
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Editionjexp
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...jexp
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Developmentjexp
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databasesjexp
 
Practical Graph Algorithms with Neo4j
Practical Graph Algorithms with Neo4jPractical Graph Algorithms with Neo4j
Practical Graph Algorithms with Neo4jjexp
 
A Game of Data and GraphQL
A Game of Data and GraphQLA Game of Data and GraphQL
A Game of Data and GraphQLjexp
 
Querying Graphs with GraphQL
Querying Graphs with GraphQLQuerying Graphs with GraphQL
Querying Graphs with GraphQLjexp
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Futurejexp
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 

More from jexp (20)

Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdf
 
Easing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsEasing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line tools
 
Looming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in JavaLooming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in Java
 
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxGraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
 
Neo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesNeo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFiles
 
How Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the DotsHow Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the Dots
 
The Home Office. Does it really work?
The Home Office. Does it really work?The Home Office. Does it really work?
The Home Office. Does it really work?
 
Polyglot Applications with GraalVM
Polyglot Applications with GraalVMPolyglot Applications with GraalVM
Polyglot Applications with GraalVM
 
Neo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache KafkaNeo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache Kafka
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...
 
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Library
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures LibraryAPOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Library
APOC Pearls - Whirlwind Tour Through the Neo4j APOC Procedures Library
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Edition
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Development
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databases
 
Practical Graph Algorithms with Neo4j
Practical Graph Algorithms with Neo4jPractical Graph Algorithms with Neo4j
Practical Graph Algorithms with Neo4j
 
A Game of Data and GraphQL
A Game of Data and GraphQLA Game of Data and GraphQL
A Game of Data and GraphQL
 
Querying Graphs with GraphQL
Querying Graphs with GraphQLQuerying Graphs with GraphQL
Querying Graphs with GraphQL
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsZilliz
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Intro to Spring Data Neo4j

  • 1. Spring Data Neo4j 2.1 Introduction Michael Hunger, Neo Technology
  • 2. Me & You ? ๏ Me: Michael Hunger, Neo Technology • Neo4j Community Team • Spring Data Neo4j Project Lead • Neo4j Cloud Hosting • michael.hunger@neotechnology.com / @mesirii ๏ You: • Java & Spring ! • Enterprise ? • NOSQL ? • Cloud (CF, Heroku) ?
  • 3. About the Webinar ๏ Graphs are EveryWhere ๏ Graph Database ๏ Intro Neo4j ๏ Sample App - Twitter Graph • Domain Model • Code ๏ Resources, Books, GraphConnect ๏ Questions answered during webinar and Q & A at the end ๏ All your questions will be answered in a follow up blog post, don‘t hesitate to ask
  • 4. To become part of todays Twitter-Graph
  • 5. To become part of todays Twitter-Graph please tweet with #neo4j #sdn
  • 6. To become part of todays Twitter-Graph please tweet with #neo4j #sdn •your attendance •questions •remarks •....
  • 8. 7 6
  • 11. Science Biology Chemistry Proteins Reactions Environments 7 6 Genes
  • 12. Science Biology Chemistry Proteins Reactions Politics Environments 7 6 Genes Society History
  • 13. Science Biology Work Friends Neighbor Family Chemistry Proteins Reactions Politics Environments 7 6 Genes Society History
  • 14. Computers Internet Science Biology Work Friends Neighbor Family Chemistry Proteins Reactions Politics Environments 7 6 Genes Society History
  • 15. Devices Users Software Networks Services Computers Internet Science Biology Work Friends Neighbor Family Chemistry Proteins Reactions Politics Environments 7 6 Genes Society History
  • 16. Devices Users Software Networks Services Computers Internet Business Science Biology Work Friends Neighbor Family Chemistry Proteins Reactions Politics Environments 7 6 Genes Society History
  • 17. Devices Users Software Networks Services Computers Internet Business Science ERP Biology Work Geo Friends Retail Neighbor Family Cloud Chemistry Travel Proteins Reactions Politics Environments 7 6 Genes Society History
  • 18. Devices Users Software Networks Services Computers Internet Art Business Science ERP Biology Work Geo Friends Retail Neighbor Family Cloud Chemistry Travel Proteins Reactions Politics Environments 7 6 Genes Society History
  • 19. Devices Stories Users Software Creativity Visuals Networks Services Computers Internet Art Business Science ERP Biology Work Geo Friends Retail Neighbor Family Cloud Chemistry Travel Proteins Reactions Politics Environments 7 6 Genes Society History
  • 20. A Graph Database Node Node
  • 21. A Graph Database Typed relationship Node Node
  • 22. A Graph Database Typed relationship Node Node key: value key: value
  • 24. 9
  • 25. 10
  • 26. Java N D _I N TE E ME PL IM 10
  • 27. Java N D _I N TE E ME PL IM Server RUN S_A S Ruby JS S _A Python Java NS .net RU Spring embedded 10
  • 28. Java N D _I N TE E ME PL IM Server RUN S_A S Ruby RU JS S _A NS Python Java _O NS .net RU N Spring embedded Heroku 10
  • 29. Java N D _I N TE E ME PL IM PROVIDES ACID Server RUN S_A TX S Ruby RU JS S _A NS Python Java _O NS .net RU N Spring embedded Heroku 10
  • 30. Java Lucene N D _I TE Index N ME ES E T PL RA G IM TE IN PROVIDES ACID Server RUN S_A TX S Ruby RU JS S _A NS Python Java _O NS .net RU N Spring embedded Heroku 10
  • 31. Java Lucene N D _I TE Index N ME ES E T PL RA G IM TE IN PROVIDES ACID Server RUN S_A TX S O Ruby RU ES_T JS S _A NS Python Java _O NS SC AL .net RU N Spring 34bn embedded Heroku Nodes 10
  • 32. Java Lucene 1 M/s N D _I TE Index N ALS ME ES VERS E T PL RA G IM TE TRA IN PROVIDES ACID Server RUN S_A TX S O Ruby RU ES_T JS S _A NS Python Java _O NS SC AL .net RU N Spring 34bn embedded Heroku Nodes 10
  • 33. Java Lucene 1 M/s Master/ N D _I Slave TE Index N ALS ME HIG H_A ES VERS E VA T PL IL. RA G IM TE TRA IN PROVIDES ACID Server RUN S_A TX S O Ruby RU ES_T JS S _A NS Python Java _O NS SC AL .net RU N Spring 34bn embedded Heroku Nodes 10
  • 34. Java Lucene 1 M/s Master/ N D _I Slave TE Index N ALS ME HIG H_A ES VERS E VA T PL IL. RA G IM TE TRA IN PROVIDES ACID Server RUN S_A LI CE TX S NS ED _L IK O Ruby RU E ES_T JS MySQL S _A NS Python Java _O NS SC AL .net RU N Spring Mongo 34bn embedded Heroku Nodes 10
  • 36. Whiteboard it - abstract :Tweet :Tweet
  • 37. Whiteboard it - abstract :User PO ST ED :Tweet :User :Tweet POSTED
  • 38. Whiteboard it - abstract :User PO ST ED TAGGED :Tag :Tweet TAGG ED :Tag ED G AG :User :Tweet T POSTED
  • 39. Whiteboard it - abstract :User PO ST ED TAGGED :Tag :Tweet TAGG ED :Tag NS O ED TI G MEN AG :User :Tweet T POSTED
  • 40. Whiteboard friendly - example Attending the #SDN #Neo4j webinar by @mesirii Looking forward to my #SDN webinar
  • 41. Whiteboard friendly - example @peterneubauer PO ST ED Attending the #SDN #Neo4j webinar by @mesirii Looking forward @mesirii to my #SDN webinar POSTED
  • 42. Whiteboard friendly - example @peterneubauer PO ST ED TAGGED #Neo4j Attending the #SDN #Neo4j TAGG webinar by ED @mesirii #SDN ED G Looking forward TAG @mesirii to my #SDN webinar POSTED
  • 43. Whiteboard friendly - example @peterneubauer PO ST ED TAGGED #Neo4j Attending the #SDN #Neo4j TAGG webinar by ED @mesirii #SDN NS O ED TI G MEN Looking forward TAG @mesirii to my #SDN webinar POSTED
  • 44. Cypher Query Language ๏ Declarative query language • Describe what you want, not how • Based on pattern matching ๏ Examples: START peter=node:User(userName=”peterneubauer”) # index lookup MATCH peter-[:POSTED]->tweet-[:MENTIONS]->user WHERE user.country = ”SE” and not peter-[:FOLLOWS]-user RETURN user START tag=node:Tag(tag = ”Neo4j”) MATCH tag<-[:TAGGED]-tweet-[:TAGGED]->co_tag RETURN co_tag.tag, COUNT(*) as cnt ORDER cnt DESC LIMIT 10 14
  • 46. Spring Data ๏ Spring Data: VMWare/SpringSource initiative to give Spring developers easy access to the emerging world of NOSQL ๏ Build on top of common infrastructure ๏ Spring Data Neo4j is the integration library for Neo4j ๏ http://springsource.org/spring-data ๏ Support for other NOSQL approaches • Redis • MongoDB • Hadoop • GemFire
  • 47. Spring Data Neo4j ๏ The brain child of Rod Johnson & Emil Eifrém • Wrote functional initial prototype • Developed by Neo Technology and SpringSource teams ๏ Uses annotations to define graph entities ๏ Entity state backed by graph database ๏ Two modes of Object Graph Mapping • simple POJO Graph Mapping • advanced, seamless AspectJ backed Mapping ๏ SD-Repositories support ๏ Neo4j Server Support
  • 48. Classic Neo4j domain class public class Tag { private final Node underlyingNode; Tag( final Node node ) { underlyingNode = node; } public Node getUnderlyingNode() { return underlyingNode; } public final String getTag() { return (String) underlyingNode.getProperty( “tag” ); } public void setTag( final String tag ) { underlyingNode.setProperty( “tag”, tag ); } }
  • 49. Spring Data Neo4j domain class @NodeEntity public class Tag { @GraphId private Long id; private String tag; }
  • 50. Spring Data Neo4j domain class @NodeEntity public class Tag { @GraphId private Long id; @Indexed(unique = true) private String tag; }
  • 52. Defining entity classes • @NodeEntity • Represents a node in the graph • Fields saved as properties on node • References stored as relationships between nodes • Instantiated using Java ‘new’ keyword, like any POJO • Also returned by lookup mechanisms • Type information stored in the graph
  • 54. Defining entity classes • @RelationshipEntity • Represents a relationship in the graph • Fields saved as properties on relationship • Special fields for start- and end-nodes • Only returned by lookup methods
  • 55. Tweet domain class @NodeEntity public class Tweet { @GraphId private Long id; @Indexed(unique=true) Long tweetId; String text; @Fetch User sender; // eager loading @RelatedTo(type="TAGGED") Collection<Tag> tags; @RelatedTo(type="MENTIONS") Set<User> mentions; @RelatedTo(type="SOURCE") Tweet source; }
  • 56. Compare to Core-API approach @NodeEntity class Tweet { ... public Collecti on<Tag> getTags final List<Tag> () { tags = new Link for ( Relations edList<Tag>(); hip rel : under RelTypes.TAGGED lyingNode.getRe , Direction.OUT lationships( movies.add( new GOING ) ) { Tag( rel.getEnd Old } Node() ) ); return tags; } @RelatedTo(type="TAGGED") gs; New private Collection<Tag> ta
  • 57. Interface based Repositories ๏ based on Repository infrastructure in Spring Data Commons ๏ just define the interface and the namespace configuration ๏ provide out-of-the-box support for • CRUD-Operations • Index-Lookups • Traversal-Execution • Annotated Graph-Queries (Cypher, Gremlin) • Derived Queries • Spatial Queries ๏ extensible via custom methods with provided implementations 24
  • 58. Repositories interface TweetRepository extends GraphRepository<Tweet> { Tweet findByTweetId(String id); Collection<Tweet> findByTagsTag(String tag); } <neo4j:repositories base-package=“org.neo4j.twitter_graph.repositories„/> @Controller public class TwitterController { @Autowired TweetRepository tweetRepository; @RequestMapping(value = "/tweet/{id}",...) public String show(Model model, @PathVariable String id) { Tweet tweet = tweetRepository.findByTweetId(id); model.addAttribute("tweet", tweet); return "/tweet/show"; }} 25
  • 59. Neo4j-Template (I) ๏ well known Spring Template Pattern ๏ Resource / Transaction Management ๏ Convenience Methods ๏ Nodes and Entities handling & conversion ๏ Fluent Query Result Handling ๏ Works also via REST with Neo4j-Server ๏ Exception Translation 26
  • 60. REST-Client-Support <bean id="restGraphDatabaseService" class="org.sf.data.neo4j.rest.SpringRestGraphDatabase"> <constructor-arg value="http://localhost:7473/db/data" /> </bean> <neo4j:config graphDatabaseService="restGraphDatabaseService"/> ๏ drop-in replacement for the embedded GraphDatabase ๏ works transparently with POJO-Entity-Mapping and Neo4j-Template 27
  • 62. Todays Coding Exercise ๏ uses Spring Social (minimally) ๏ Simple Domain: Tweets, Users, Tags • connected Entities • Repositories, Service ๏ standalone App with • embedded Neo4j-Database • (local Neo4j-Server) 29
  • 63. Spring Data Neo4j Guidebook “Good Relationships” “I’m excited about Spring Data Neo4j.... Spring Data Neo4j makes working with Neo4j amazingly easy, and therefore has the potential to make you more successful as a developer.” Rod Johnson, founder of Spring ๏ Spring Data Neo4j comes with a great Guide Book, featuring: • Forewords by Rod Johnson and Emil Eifrem • Ancineasts.net narrative tutorial walkthrough for easy to read, • A comprehensive reference for all the details • Check it out: http://bit.ly/sdn-book • Free e-book and printed 30
  • 64. http://cineasts.net Check Out: http://spring.neo4j.org/tutorial
  • 65. O‘Reilly Spring Data Book „Modern Data Access for Enterprise Java“ • upcoming book by the Spring Data project leads • introduction to Spring Data & SD-repositories • covers all subprojects • available in O‘Reilly OFPS and O‘Reilly store (e-book) • http://bit.ly/sd-ofps 32
  • 66. y wh ere ver ect e E onn s Ar aph .Share. 2 Gr ate C v no , 201 In ber 5-6 CT NEisco No vem HCON nc GR AP a n FrRegency Sa tt Hya Presented by 33
  • 67. Continue here ๏ See the Spring Data Neo4j site for more info: http://spring.neo4j.org ๏ Again, don’t miss our guidebook on Spring Data Neo4j published by InfoQ also printed http://bit.ly/sdn-book ๏ All about Neo4j: ๏ local Neo4j meetup groups http://neo4j.org http://neo4j.meetup.com ๏ Neo4j & SDN videos and webinars: http://video.neo4j.org ๏ Spring Data Forum at http://spring.neo4j.org/discussions ๏ Neo4j Google Group • http://neo4j.org/forums
  • 68. Thank You! Feel free to reach out with questions on •Twitter, •Spring-Forums, •Neo4j-Google-Group •Stack-Overflow 35

Editor's Notes

  1. \n
  2. Please excuse my hayfever\n\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. Neo4j is a graph database. \n\nNodes, rels, key-value props on nodes and rels.\n
  19. Neo4j is a graph database. \n\nNodes, rels, key-value props on nodes and rels.\n
  20. Poll: Your exposure to Neo4j\n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. Poll: Your exposure to Neo4j\n
  32. evolve data separately\n
  33. evolve data separately\n
  34. evolve data separately\n
  35. evolve data separately\n
  36. evolve data separately\n
  37. evolve data separately\n
  38. \n
  39. \n
  40. \n
  41. Neo4j Query and Traversal support on dynamic fields and via repository methods\nNeo4j indexing support (includes unique indexes, fulltext and numeric range queries)\nEntity types stored in the graph (index or category-nodes)\nDynamic type projection (duck typing)\nCross-store support for partial JPA / graph entities\nSupport for JSR-303 (bean validation)\nSupport for the Neo4j Server (remote server and in server extension)\nNeo4jTemplate with exception translation, optional transaction management and more\n
  42. \n
  43. Jumping right into code\n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n