Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NEO4J

2,655 views

Published on

Graph database'ler ve NEO4J hakkında bir sunum. Özgür Web Günleri 2014'de sunulmuştur.

Published in: Data & Analytics
  • Be the first to comment

NEO4J

  1. 1. Düğümküme
  2. 2. Fatih Erikli fatiherikli@gmail.com http://fatiherikli.com
  3. 3. ağ = graph(düğümküme*) bir graph düğümler ve ilişkiler kümesidir. *söylem: http://dugumkume.org/dugumkume
  4. 4. düğüm
  5. 5. düğümler
  6. 6. birçok düğüm
  7. 7. ilişkiler
  8. 8. ve bir düğümküme at fatih bisiklet çay seviyor seviyor sürüyor ahmet biniyor sürüyor ayşe sevmiyo
  9. 9. Graph teorisinin temeli matematikçi Euler tarafından 1735 yılında Königsberg’ın 7 Köprüsü probleminin çözümüne dayanıyor.
  10. 10. Sosyometri alanını öncüsü olan Moreno 1934 yılında Who Shall Survive kitabınını yazar ve bir sosyoloji altdalını başlatmış olur: Sosyal Ağ Analizi
  11. 11. ve olaylar gelişir.
  12. 12. neden popüler? çünkü disiplinler arası. çünkü internet. çünkü günlük hayatta kullandığımız servislerin içinde aslında hepimiz birer düğümüz.
  13. 13. facebook OWTG fatih bisiklet gitti sürüyor ahmet gitti sürüyor ayşe gitti ayşe mahmut arkadaş
  14. 14. YIKIN TÜM DİKİLEN HEYKELLERİMİ
  15. 15. örnekler
  16. 16. İstanbul’daki camilerin örtüşen ezan sesleri üzerine kurulmuş bir harita. http://burak-arikan.com/islam-republic-neoliberalism
  17. 17. programlama dilleri haritası https://fatiherikli.github.io/programming-language-network/
  18. 18. argüman analizi platformu https://arguman.org argüman haritaları hiyerarşik düğümkümelerdir. önermeler birer node (düğüm), önerme tipleri ise bir edge (ilişki).
  19. 19. arguman.org’da bildirilen safsatalar ve bulunduğu kanallar. http://arguman.org/blog/safsatalar/
  20. 20. Ağ Veritabanları
  21. 21. NEO4J instance_of Graph Database has NoSQL Databases JAVA Neo Technology Open Source Nodes is_a has Edges has Attributes has developed_by developed_as written_in
  22. 22. •ilişkisel veritabanlarından farklıdırlar •node (düğüm), edge (ilişki), ve bunlara bağlı ahmet’lerden oluşurlar. •kayıtlar (satırlar) için düğüm diyebiliriz.
  23. 23. cypher •Neo4j’nin kullandığı sorgu dilidir. •SQL gibi düşünülebilir. MATCH (me {name:"fatih"})-[:FOLLOWS]->(followees) RETURN followees
  24. 24. Sürücüler •REST interface’ini kullanmak oldukça basittir. •Eğer bir client isterseniz de birçok dilde implementation’ı mevcuttur. POST http://localhost:7474/db/data/transaction/commit { "statements": [{ "statement" : “YOUR CYPHER QUERY” }] }
  25. 25. Düğümler CREATE (User {username: 'ramazan'}); CREATE (User {username: 'fatih'}); CREATE (User {username: 'fatma'}); CREATE (User {username: 'can'}); CREATE (User {username: 'emine'}); CREATE (User {username: 'gülzade'}); CREATE (User {username: 'baki'});
  26. 26. İlişkiler MATCH (user { username:'fatih' }), (followee { username:'ramazan' }) # user’ları match edip aralarında # bir edge (ilişki) yaratıyoruz CREATE (user)-[:FOLLOWS]->(followee);
  27. 27. Query MATCH (me {username:'fatiherikli'}) -[r:FOLLOWS]->(followees) return me, followees
  28. 28. Yönler MATCH (me {username:'fatiherikli'}) <-[r:FOLLOWS]-(followers) return me, followers
  29. 29. Oklar (Kaynak) -[İLİŞKİ]-> (Hedef) (user) -[:FOLLOWS]-> (followees) (user)< -[:FOLLOWS]- (followers)
  30. 30. örnek: fatih ve sepetle yumurta kişisinin ortak olarak takip ettiği kişiler: MATCH (fatih { username:'fatiherikli' }), (sepet { username: 'sepeth'}) WITH fatih, sepet MATCH (fatih)-[:FOLLOWS]->(mutual)<-[:FOLLOWS]-(sepet) RETURN mutual
  31. 31. çıktısı
  32. 32. örnek: fatih kişisinin takip ettiği kişilerin yazdığı kanallar MATCH (fatih { username:'fatiherikli' }) WITH fatih MATCH (fatih)-[:FOLLOWS]->(followees)<-[:POSTED_IN]-(channels) RETURN channels
  33. 33. örnek: fatih kişisinin takip ettiği kanallar üzerinden takip edilecek kişi önerileri MATCH (fatih { username:'fatiherikli' }) WITH fatih MATCH (fatih)-[:SUBSCRIBER_OF]->(channels) ->[:POSTED_IN]-(contentions) <-[:POSTED_BY]-(authors) RETURN distinct authors
  34. 34. teşekkürler

×