SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Düğümküme
Fatih Erikli 
fatiherikli@gmail.com 
http://fatiherikli.com
ağ = graph(düğümküme*) 
bir graph düğümler ve ilişkiler 
kümesidir. 
*söylem: http://dugumkume.org/dugumkume
düğüm
düğümler
birçok düğüm
ilişkiler
ve bir düğümküme 
at 
fatih 
bisiklet 
çay 
seviyor 
seviyor 
sürüyor 
ahmet 
biniyor 
sürüyor 
ayşe 
sevmiyo
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.
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
ve olaylar gelişir.
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.
facebook 
OWTG 
fatih 
bisiklet 
gitti 
sürüyor 
ahmet 
gitti 
sürüyor 
ayşe 
gitti 
ayşe 
mahmut 
arkadaş
YIKIN 
TÜM 
DİKİLEN 
HEYKELLERİMİ
örnekler
İstanbul’daki camilerin örtüşen ezan sesleri üzerine kurulmuş bir harita. 
http://burak-arikan.com/islam-republic-neoliberalism
programlama dilleri haritası 
https://fatiherikli.github.io/programming-language-network/
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).
arguman.org’da bildirilen safsatalar ve bulunduğu kanallar. 
http://arguman.org/blog/safsatalar/
Ağ Veritabanları
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
•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.
cypher 
•Neo4j’nin kullandığı sorgu dilidir. 
•SQL gibi düşünülebilir. 
MATCH (me {name:"fatih"})-[:FOLLOWS]->(followees) 
RETURN followees
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” 
}] 
}
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'});
İ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);
Query 
MATCH (me {username:'fatiherikli'}) 
-[r:FOLLOWS]->(followees) 
return me, followees
Yönler 
MATCH (me {username:'fatiherikli'}) 
<-[r:FOLLOWS]-(followers) 
return me, followers
Oklar 
(Kaynak) -[İLİŞKİ]-> (Hedef) 
(user) -[:FOLLOWS]-> (followees) 
(user)< -[:FOLLOWS]- (followers)
ö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
çıktısı
ö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
ö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
teşekkürler

Mais conteúdo relacionado

Destaque

Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriFatih Erikli
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentationjexp
 
Karmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXKarmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXFatih Erikli
 
Django ORM Optimizasyonu
Django ORM OptimizasyonuDjango ORM Optimizasyonu
Django ORM OptimizasyonuFatih Erikli
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitternkallen
 
GraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementGraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementNeo4j
 

Destaque (7)

Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteri
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
Karmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXKarmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkX
 
Django ORM Optimizasyonu
Django ORM OptimizasyonuDjango ORM Optimizasyonu
Django ORM Optimizasyonu
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
 
GraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data ManagementGraphTalks Hamburg - Semantic Data Management
GraphTalks Hamburg - Semantic Data Management
 

NEO4J