Press "Enter" to skip to content

GOTO 2014 • Let Me Graph That For You • Ian Robinson


Mi chiamo Ian Robinson, sono uno sviluppatore
alla tecnologia neo e neo sono i
sponsor commerciali per neo4j che è
un database di base di JVM open source
così sarò parlando oggi circa
grafico di tecnologie grafiche e grafiche
tecnologia di database e il modo in cui
possono essere usati per risolverli davvero
interessanti problemi di dati interessanti
sfide dei dati quindi ho intenzione di iniziare
riflettendo un po ‘sulla crescita del grafico
e le tecnologie grafiche negli ultimi pochi
anni
quindi discuterò brevemente il grafico
database di cui sono più familiarità con il quale è
vicino a J è la cosa su cui lavoro
giorno per giorno descriverò il suo modello di dati
e poi ho che ne hai un po ‘
esempi di lavoro diverse applicazioni
dove avremmo solo cose simili
raccomandazioni per il percorso di analisi delle parole
progettando così alcuni esempi da mostrare
tu come funziona un po ‘così penso
è un momento davvero interessante per essere un
sviluppatore sì probabilmente più di qualsiasi altro
altra volta negli ultimi dieci anni e
questo è in parte perché ce ne sono alcuni
tecnologie davvero interessanti e
architetture là fuori per noi da usare
e con cui giocare, ma per me è anche questo
il fatto che stiamo utilizzando il software in
modi più interessanti oggi siamo
applicandolo in modi che ne generano alcuni
davvero interessante e utile per l’utente finale
valore in modo se si pensa di ciò che siamo stati
fare circa 20 anni fa come un’industria
stavamo creando motori di calcolo
efficacemente conosci pezzi di software
quello calcolerebbe il libro paga o
calcolare le tasse di vendita o gestire il tuo
inventario sai roba del genere
se c’è un giusto o uno sbagliato
rispondi , sai che c’è una risposta giusta
quando la tua tassa di calcolo e c’è a
risposta sbagliata se è la risposta sbagliata che hai
ha un bug okay
quindi stiamo sviluppando tutto questo tipo di
calcolo delle cose basato ed è molto
molto entro i confini del business
è il software che viene utilizzato linee
linea di applicazioni aziendali che sono
essere usato all’interno del business che pensi
come sono cambiate le cose rispetto a quelle
ultimi 20 anni e in particolare il
negli ultimi dieci anni probabilmente non c’è un
il giorno passa quando ognuno di noi non usa
un sacco di software
come parte della nostra vita iniziamo a lavorare
vive ma tu sai che la nostra casa vive la nostra
vite sociali e così via lo sai
il software oggi è profondamente integrato nel
tessuto sociale, culturale ed economico
delle nostre vite e sta facendo abbastanza
cose diverse non si tratta solo
applicando calcoli rigorosi tu conosci noi
usalo per connettività a cui connettersi
l’un l’ altro ma ha anche questo tipo di
suggestivo e inferenziale
caratteristica ad esso come ben sai
anche semplici motori di raccomandazioni
non stanno calcolando un risultato rigoroso
ti stanno suggerendo che questi sono alcuni
le cose che si può essere interessati a
nel futuro basato su ciò che noi
capire su di te oggi così le aziende
stiamo scoprendo che c’è molto valore
da essere reso impreciso da
essere suggestivo piuttosto che rigorosamente
applicare un calcolo e dire questo
è la risposta giusta e sono tutti i
risposte sbagliate così che per me è un
cambiamento fondamentale nel modo in cui
il software influisce sulle nostre vite e sulla strada
in cui è incorporato nelle nostre vite e
non sta più avendo luogo all’interno del
confini del business all’interno del
impresa è lì in tutto ciò
stiamo facendo molti dei dispositivi che abbiamo
uso giorno per giorno, quindi lavoro in un angolo
settore del software che in passato ha
stato un erba molto molto di nicchia e
database grafico intendo ancora cinque anni
fa se hai sentito parlare di grafici era
probabilmente entro i confini del
l’università è solo un argomento accademico
potresti averlo studiato come un dato
struttura e algoritmi nel computer
scienza e poi ce ne sono molte altre
tipo di ricerca basata su grafici in giro
social networking e cose del genere
ma di nuovo tutto ciò limitato al
università ma in realtà molto di questo
un software che usiamo giorno per giorno che ha
è un vero impatto sulle nostre vite
qualche forma o un’altra dal grafico tutti i
Google ha davvero grandi proprietà web oggi
e su Facebook e Twitter dipendono
grafico per la ricerca di grafici Grafico di Facebook
cerca nel grafico di conoscenza di Google il
Twitter il grafico sociale di tutti questi
le cose hanno un impatto sulle nostre vite oggi
grazie
in modo grafico è venuto fuori del mondo accademico
regno
e potrebbe non essere il primo in tutti
le tue interazioni con quel software
altri modi in cui conduci
voi stessi ma è lì che ha un
influenza forte ma nascosta su tutti
le cose che stai facendo oggi così
cosa si tratta di grafici e grafici
tecnologia che significa che diventa
una forza nascosta dominante o biet
molte delle cose che facciamo oggi
bene per me è al più alto livello
sai nel livello più astratto quando
Io quando ho indagine un sacco di cose che
Ho fatto negli ultimi anni dove
abbiamo usato database grafici è
sulla gestione della complessità in complesso
dati i dati che abbiamo oggi o
piuttosto i modi in cui lo usiamo
i dati sono più complessi che mai
e per me quella complessità è una funzione
di almeno tre cose è una funzione
di aumento della dimensione dei dati un aumento di
struttura variabile e un aumento di
connessione quando queste tre forze
venire insieme abbiamo a che fare con
dati estremamente o particolarmente complessi
grandi volumi sono strutturati in modo variabile
dati densamente connessi questo è complesso
dati perché le domande che chiediamo
di esso ci richiede di gestire questa variabile
struttura e richiede di capire
la connessione di qualcuno così tutti noi
probabilmente conoscono l’ aumento delle dimensioni dei dati
sui big data e ne stiamo generando di più
dati che mai prima il volume della rete
nuovi dati che stiamo generando anno dopo anno
anni crescono esponenzialmente e questo è
questa è una tendenza che sta per continuare a
per il futuro prevedibile
sai che stiamo generando dati con
ogni dispositivo che usiamo siamo
interagendo con i nostri partner commerciali
consumare dati sul web che conosci
ogni applicazione che costruiamo è
generando grandi volumi di dati di registrazione
e tutto ciò che è importante per noi oggi tu
conoscere ogni percorso attraverso il nostro sito web
un cliente riprende generando questo
enorme volume di dati, quindi questo è uno dei
le forze che dobbiamo sostenere
con oggi e questa è una delle forze
questo ha dato origine a quella grande famiglia
di nessun database sequel che conosci
trattare con enormi volumi di dati
e gestiscilo tenerne conto e
domanda
ma poi ci sono questi due altri
forza la struttura variabile e
Connettività ora Veritas dr. è
qualcosa che è stato con noi per molto tempo
strutture variabili temporali che tipo di
dati del mondo reale disordinati che non lo fanno
sempre in forma unica
schema relazionale e per me variabile
la struttura è in realtà una funzione in parte
di una maggiore dimensione dei dati sai più
che apprendiamo le cose che erano
interessato a più impariamo su
le cose nel nostro dominio che siamo
interessato a più ciascuno di quelli
le cose cominciano a sembrare sottilmente diverse
da tutti gli altri è molto alto
livello tutti i nostri clienti hanno lo stesso aspetto
hanno un nome e un cognome
e così via, ma più lo scopriamo
su di loro più ci dicono
stessi o più scopriamo su
loro più ciascuno di quei clienti o
quegli utenti cominciano a guardare sottilmente
diverso da tutti gli altri lotti di
diversi attributi condivisi da alcuni di essi
alcuni di loro unici per particolari
individui e noi vogliamo provare e
catturare tutto questo e e prendere
vantaggio di come possiamo farlo bene
in passato usiamo relazionale
tecnologia potremmo applicare tutto il normale
forme e finiamo con te lo sai
diversi tavoli che vorremmo unirci al nostro
tabella utente centrale per
ospitare tutti quelli diversi
gli attributi considerano tutti gli esempi
i diversi modi in cui puoi identificarmi
sul web ho un handle di Twitter
contattatemi su skype Ho un paio di
indirizzi email ce ne sono alcuni
attributi che sono particolari per me
alcuni di voi potrebbero condividerne alcuni
informazioni sull’identità che conosci
i tuoi indirizzi e- mail personali
Gestisci Twitter potresti averne altri
cose che ti identificano sul web come
ben account Facebook account LinkedIn
e così via se dovessimo
ospitare tutte quelle variazioni in
relazionale probabilmente lo tiriamo fuori a
separare la tabella dei contatti e quindi unirla
alla nostra tabella utenti che è grande che possiamo
possiamo accomodare tutta quella variabile
struttura nel database relazionale ma
allora il punto in cui stiamo andando
produzione sai che vogliamo solo
scopri alcune semplici informazioni su
utente che dobbiamo unire gli occhi devono unirsi
e unisciti e partecipa di nuovo al fine di
porta tutte queste informazioni insieme
e presentarlo sullo schermo o presente
altrove nella nostra applicazione e
c’è una penalità per le prestazioni da fare
quella
hai un’enorme base di clienti e
ti unisci all’infinito ordine
le tue domande rallenteranno davvero
giù per andare a deteriorarsi quindi cosa facciamo
nel mondo relazionale da accogliere
tutta questa struttura variabile è noi D
normalizziamo e creiamo questi molto ampi
tavoli con tabelle sparse con un sacco di
colonne nullable tutte quelle colonne
rappresenta il super set di tutti i possibili
Gli attributi che ciò che sappiamo con
per quanto riguarda la nostra intera base di clienti e
allora per ogni riga particolare dal fatto che
tavolo
riempiremo le colonne che sono
rilevante per quel particolare utente e
annulleremo tutti gli altri in modo da poterli gestire
con struttura variabile abbiamo scarso
tabelle con colonne nullable un sacco di
valori nulli e poi nell’applicazione
dobbiamo avere un sacco di controllo nullo
logica
quindi questa è la struttura variabile e quindi
la terza cosa qui è la connettività a
molte delle domande veramente interessanti
che vogliamo chiedere dei nostri dati oggi
chiedici di capire come stanno le cose
nel nostro dominio sono collegati abbiamo bisogno di
capisci che due cose sono collegate
direttamente o tramite alcuni
intermediari e più di questo noi
bisogno di sapere non solo che due cose
sono collegati molto spesso, abbiamo bisogno di sapere
qualcosa sulla forza o il
peso o la qualità di quelli
connessioni vogliamo chiedere e rispondere
alcune domande davvero interessanti noi
bisogno di sapere se le cose sono collegate e
abbiamo bisogno di sapere qualcosa sul
forza o il peso dell’uguaglianza di
quelle connessioni, quindi intendo questo
esempi da diversi domini
che ho lavorato negli ultimi pochi
anni in cui dovevamo gestire in grande
volumi di variabilita ‘strutturati e
dati densamente connessi e dove il
domande che stiamo chiedendo o quel giorno
per richiedere a noi di gestire quella struttura
e per capire gli elementi di quello
la connettività è così sociale
il manifesto manifesto bambino qui dove
ne hai tantissime altre
le persone all’interno di quella rete sono
collegati in modi diversi sapete abbiamo
potremmo essere collegati per mezzo di lavoro
potremmo avere una forte amicizia
torna indietro fino all’infanzia
diversi modi in cui siamo connessi
abbiamo bisogno di capire la semantica di
quelle connessioni e abbiamo bisogno di sapere
qualcosa su c’è questa forza di
quelle connessioni e la qualità di
quelle connessioni e quindi possiamo
scopri non solo
sei amici con i tuoi amici
amici e così via e questa è l’area
questo è probabilmente il più noto
per quanto riguarda Graf voglio dire Facebook
potrebbe rendere popolare questa nozione di
grafico sociale ma è anche l’area che
è probabilmente meglio compreso all’interno
accademico e decine di anni di
ricerca su piccole comunità sociali
reti e alcuni dei comportamenti che
sono trasmessi all’interno di quelli sociali
reti il modo in cui cose come
la propensione all’obesità o al
la propensione al fumo può effettivamente essere
trasmessi a profondità due o tre
all’interno della rete puoi essere effettivamente
influenzato da persone che non conosci nemmeno
dagli amici degli amici dei tuoi
amici in modo che è un settore in cui tu
so che queste tecnologie sono
applicato oggi altri sono cose simili
Modellizzazione dell’analisi di impatto della rete
interezza di una rete di telecomunicazioni
dai clienti e dalle applicazioni
e i servizi alle macchine il
macchine virtuali i centri dati tutti
la strada fino ad alcune delle livello inferiore
Fibre di elementi di rete la radice è il
cambia modellando tutto ciò e poi
essere in grado di fare analisi di impatto rapido
contro la struttura della rete
in grado di dire bene dato questo importante
mio cliente quali parti del
rete dipende in realtà
quali macchine bene quali applicazioni
macchine che rete di livello inferiore
gli elementi da cui dipendono dipendono da fare
abbiamo ridondanza in tutto il
rete per conto di questi clienti e
se non lo facciamo, cosa possiamo fare per introdurre
o per mitigare contro il
la mancanza di rete per loro conto è
tipo di analisi top-down che puoi fare
anche l’analisi dal basso dato questo
elemento di rete di basso livello questo Rooter o
questo interruttore chi ha intenzione di influenzare se
fallisce o se dobbiamo sostituire o
ripararlo e se stiamo pianificando a
sostituzione o un programma di riparazione in cui noi
voglio sostituire più pezzi di
hardware allo stesso tempo parte sopra il
corso di un fine settimana stiamo andando a
mantenere la ridondanza per conto di alcuni di
quelli quei clienti o stiamo andando a
rompere la rete a loro nome così
questi contro alcuni dei tipi di
domande a cui puoi chiedere molto
strutturato densamente connesso beta
struttura
Non voglio passare attraverso tutti loro troppo
molti dettagli in effetti un paio di loro
stavamo andando a prendere negli esempi più tardi
le altre cose qui che lo farò
menziona brevemente la route-finding che conosci
questo va tutto il viaggio di ritorno al
fondamenti della teoria dei grafi per 400 anni
di teoria dei grafi su molto di questo
route-finding su come trovare il più breve
percorso attraverso una rete in grado di
applicare traversate con percorsi ponderati più corti
attraverso la rete dato un paio di
stazioni della metropolitana di Londra per
esempio qual è il più efficiente
percorso per arrivare da uno all’altro e
per poter rispondere
domanda, dobbiamo sapere come
le stazioni sono collegate all’interno del
rete ma dobbiamo anche saperlo
qualcosa sulla qualità di quelli
connessioni quanti treni ci sono
all’ora o al minuto per quanto tempo
medio ci vuole per ottenere da questo
stazione per quello e poi dato quelli
proprietà che possiamo facilmente calcolare
che il percorso ponderato più breve e
determinare qual è il più efficiente o
percorso efficace attraverso la rete
quindi per me i grafici sono ottimi per la gestione
quel tipo di complessità grandi volumi
sono molto strutturati e densi
dati collegati dove è necessario
ospitare tutta quella variabile
struttura e dobbiamo capire
qualcosa sulle connessioni e sul
percorsi attraverso il sistema per essere
in grado di rispondere alle domande che noi
ho bisogno di lavorare così con quasi quattro jfj
un database è un grafico Bates JVM
database che ci consente di modellare e
memorizzare e interrogare i nostri dati sotto forma di
un grafico quindi modelleremo il nostro dominio come a
grafico lo memorizzeremo come un grafico e
allora creeremo una query come
grafico quando lo stiamo interrogando guardiamo
stiamo cercando il grafico esistente
strutture stiamo dicendo finalmente questo
grafico o questa struttura del sotto-grafico all’interno
il set di dati esistente o stiamo creando
nuove strutture grafiche che stiamo dicendo che voglio
per creare questo grafico o questo sottotitolo
struttura del grafico all’interno del set di dati così
sono i grafici dal modello dall’alto al basso
memorizzare e interrogare i dati sotto forma di
un grafico e impieghiamo un aspetto molto particolare
modellazione dei dati del grafico neo4j
ha un approccio molto pragmatico
modellizzazione delle sovvenzioni e comprende solo
quattro parti fondamentali quattro primitive
davvero nel nostro modello di dati che potresti
quindi usa con te costruisci il tuo
applicazione e stai costruendo la tua
modello di dati del grafico dell’applicazione che avrai
applica questi primitivi per
sviluppare il modello di dati delle app
quindi quei quattro primitivi sono nodi
relazioni proprietà ed etichette e
Ho un esempio del nostro modello di dati di
ciò che chiamiamo il grafico delle proprietà etichettate
qui un grafico molto molto liscio intendo
sono solo sei nodi e così via mentre noi
può effettivamente ospitare miliardi su
miliardi di nodi e relazioni cosa
stava mostrando qui ci sono un paio di autori
un paio dei libri che hanno
scritto e un paio di persone che
comprato e probabilmente leggerò quei libri così
la prima cosa che abbiamo altri nodi è
questi ovali blu e tendiamo a usare
nodi per rappresentare le cose nel nostro
dominio a cui siamo interessati in entità
tutto ciò che ha identità va bene così siamo
usando i nodi per rappresentare le cose nel nostro
il dominio e un nodo sono effettivamente a
contenitore
set di proprietà attraverso un set di chiavi
coppie di valori quindi usiamo le proprietà noi
può collegare proprietà a un nodo a
rappresentano gli attributi delle cose
che erano interessati in modo da poter vedere
quello per John le carré che ho allegato a
nome e una data di proprietà di nascita per
grigio e verde abbiamo la data del nome di
nascita e la data in cui cresce
verde è morto quindi se ne sappiamo di più su uno
entità di noi su un altro abbiamo solo
Allegare un’altra proprietà senza due nodi
bisogno di condividere esattamente lo stesso insieme di
proprietà quindi già a livello di
l’individuo annoda l’individuo
entità che stiamo già accontentando a
grado di struttura variabile in modo che
punto che abbiamo questo disco molto semplice
come struttura piccole isole di dati
ma poi possiamo introdurre più struttura
collegando questi nodi con
relazioni e ogni relazione in
vicino a 4j ha un nome e una direzione e
quello serve due funzioni veramente il
la prima cosa è che aiuta la struttura
il set di dati complessivo e di nuovo esso
ospita struttura variabile e no
due nodi devono essere collegati esattamente
allo stesso modo, ma poi il nome del
la direzione presta anche il contesto semantico
ognuno dei nodi quindi capiamo cosa
ogni nodo significa in parte in funzione di
il modo in cui è collegato a tutti
dei suoi pari a tutti i suoi dintorni
nodi in modo da poter vedere che John the Kari
scrisse il Taylor di Panama e Graham
Greene ha scritto il nostro uomo all’Avana per cui il
nome e la direzione di prima classe
elementi all’interno del modello di dati e come
sviluppatore o come un architetto di dati sei
responsabile per decidere la direzione
e decidendo il nome e tu no
devo inventare una lista di possibili
nomi in anticipo non devi venire fuori
con qualche rigido schema rigido prima di te
inizia a modellare i tuoi dati o effettivamente
introducendo i dati nel database tu
può solo introdurre nomi come e quando tu
vedere in forma
se scopri nuovi tipi di
relazioni tra le cose che
ti interessa
crea una nuova relazione e dagli una a
nuovo nome in modo che le relazioni dei nodi
e proprietà e infatti abbiamo parlato
sull’attribuzione di proprietà ai nodi a
acquisisci attributi di entità che possiamo anche
associare le proprietà alle relazioni
e così a tutti l’acquisto
relazioni qui ho allegato a
proprietà di timestamp ora che alleghiamo
proprietà ai no per rappresentare l’entità
attribuisce la mia tendenza ad attaccare le proprietà
alle relazioni per rappresentare il
forza o il peso o la qualità di
quella relazione così di nuovo se fossimo
modellando una rete di trasporto con
forse usare le proprietà in particolare
relazioni per rappresentare il numero di
treni all’ora o al tempo medio
prende per ottenere tra questi due nodi
queste due posizioni fisiche e poi noi
può approfittare di quelle proprietà
valori mentre attraversiamo il grafico come
stiamo calcolando il percorso attraverso il
grafico e quindi il quarto elemento qui
sono queste etichette così puoi vederlo
ogni nodo nel mio esempio qui ha uno o
più etichette di etichette sono effettivamente un modo
di taggare ogni nodo e usiamo le etichette
per aiutare a rappresentare il ruolo di un nodo
si gioca all’interno del nostro set di dati che possiamo vedere
che questo nodo qui in basso a sinistra
rappresenta sia una persona che altro
in particolare un autore e le etichette
non può mai darci un gruppo molto semplice
semantica posso dire al database di trovare
io tutti i nodi etichettati con il libro I just
voglio avere tutto ciò che sa di a
libro etichettato è effettivamente tutto il
nodi che rappresentano libri nel mio sistema
ma posso anche usare le etichette per
associare un paio di diversi
comportamenti a livello del database I
può associare indici con etichette che posso
dì guarda ogni nodo che è un libro con etichette
Voglio indicizzarlo in base al suo codice ISBN
proprietà in modo che io possa tipo di paracadute
nei dati impostati e recuperare un nodo
con un valore specifico della proprietà ISBN così
può associare indici con etichette e
allora tutti i nodi recanti tali etichette lo faranno
essere indicizzati possiamo anche associare univoci
vincoli con le etichette, quindi posso dire
guarda ogni nodo etichettato come I libro
vuoi assicurarti che la sua proprietà ISBN sia
unico nel contesto di questi dati
impostare così le etichette è qualcosa che noi
introdotto abbastanza recentemente intendo vicino a 4j
stesso è stato intorno per 10 12 anni
in realtà sai che in realtà è abbastanza
un vecchio pezzo di tecnologia, ma le etichette lo sono
qualcosa di molto nuovo dentro sono loro
riflessivo rendendo più facile per voi
rappresentare il ruolo che qualcosa suona
e ci stiamo rendendo più facile associare
vincoli facoltativi per il livello facoltativo
vincolo sulla parte superiore del modello di dati così
oggi quei vincoli sono cose simili
vincoli unici nel futuro
abbiamo leggermente più sofisticato quindi il
domanda è possibile indicizzare le proprietà
sulle relazioni e la risposta è sì
non così facilmente come possiamo indicizzare la roba
sui nodi ma possiamo indicizzare
proprietà di relazione che siamo attualmente
in questo tipo di situazione ibrida dove
abbiamo un indice leggermente più vecchio
implementazione che ti permette ancora di
indicizzare le proprietà sulla
relazioni che quella funzionalità
non ce l’ha fatta a entrare sono loro
tipo di cose di cui ho parlato
Riguardo alle etichette ma fondamentalmente sì
puoi indicizzare le proprietà della relazione
e tu puoi cercare tutto il
rapporti acquistati in cui il
il valore della proprietà è tra questi due
valori per esempio sì così così
domanda lì potrei anche fare acquisto
come nodo separato sì sì, intendo
sono le tecniche per la modellazione
i tuoi dati intendo il mio consiglio di base sei tu
tipo di derivare il tuo modello di dati dal
tipi di domande che vuoi porre
ne disegni per abilità di query e
se c’è molto di più su ciascuno
acquisto individuale di cui hai bisogno
sapere che sai se diventa il luogo
per un intero per un gran numero di
diverse dimensioni se hai bisogno di sapere
quando quell’acquisto è avvenuto dove
ha avuto luogo chi ha fatto e così via allora
probabilmente lo trasformerai in un nodo
in sé e per sé sì e poi puoi
collegare un numero arbitrario di
dimensioni ad esso questo è molto molto
semplice modello base possiamo molto facilmente
evolvilo per introdurre i nodi
rappresentare gli acquisti e poi di nuovo noi
potrebbe indicizzare quelli così che cosa sto andando a
voglio dire che è
sì, la più rapida introduzione
potrebbe darti di neo4j
o più specificamente al modello di dati
che impieghiamo e come dico è una JVM
il database grafico basato funziona prevalentemente
oggi come prodotto server in modo da installare
è un prodotto server che puoi raggruppare
per alta disponibilità
Ho letto il throughput e si può client su
qualsiasi piattaforma può connettersi ad esso tramite HTTP
scambiamo in modo efficace JSON formattato
documenti con il server su HTTP e
che ti consente di creare e interrogare i dati
all’interno del database quello che sto per
mostra ora alcune applicazioni specifiche
quella tecnologia i modi in cui le persone
lo stanno usando oggi per poterne fare un po ‘
di questo più interessante interessante
roba predittiva inferenziale e poi
guarderemo verso la fine alcuni
cose che sono basate più in giro
calcoli ma in realtà basati intorno
interessanti tipi di percorsi di calcolo
calcoli basati e cose del genere
quindi la prima cosa qui è fare
connessioni così ho intenzione di iniziare
discutendo è probabilmente la lista sincronizzata
di concetti nella teoria dei grafi ma è
anche uno dei più potenti ed è
qualcosa che è effettivamente applicabile in
un sacco di diversi domini è
qualcosa chiamato chiusura triadica
questo è ciò che è bene quello che la chiusura triadica
osserviamo è che in un sacco di diverso
tipi di reti ma in particolare quelle
reti dove c’è una sorta di
cose di agenzia umana come i social network
osserviamo in quelle reti in un molto
elementi specifici a livello locale nel
rete tenta di formare stabile chiuso
triangoli se osservi l’ evoluzione
della rete nel tempo noterete
che questo livello molto molto locale
singoli elementi all’interno della rete
cercherà di formare questi equilibri stabili
triangoli quindi il termine chiusura triadica
ora prova a renderlo un po ‘più concreto
abbiamo un social molto molto semplice
rete qui piccolo piccolo social network
Terry Bell e Sarah vanno bene così puoi vedere
che Terry e Sarah hanno un amico in
fattura comune che al momento non conoscono
l’un l’altro o per quanto ne sappiamo
loro non si conoscono ma perché
di questo amico comune c’è un superiore
possibilità del normale che ad un certo punto in
il futuro Terry e Sarah ne incontreranno uno
un altro o diventare consapevoli l’ uno dell’altro
e potrebbe infatti diventare amici così
c’è una possibilità più che normale
che a un certo punto in futuro lo faremo
chiudi questo triangolo
il Terry e Sarah diventeranno amici
perché hanno sia i mezzi che i
opportunità no perché entrambi
sapere conto ci possono essere occasioni in cui
sono entrambi con il conto e quindi
si incontrano e perché
sono entrambi amici di Bill e loro
sono molto probabilmente si fidano di loro
probabilmente anche fidarsi delle persone che
costruito trust in modo da avere i mezzi
e l’opportunità di incontrarsi
i mezzi e il motivo si, così è
chiusura triadica quindi non possiamo davvero prendere
sai che questo è molto comunemente
comportamento osservato all’interno delle reti in
particolari social network e altro
tipi di reti in cui ce ne sono alcuni
tipo di agenzia umana possiamo prendere questo
questo comportamento e l’uso efficace
è uno strumento di previsione molto semplice, okay
ecco Terry Terry ha un conto amico
come abbiamo visto Bill ha questo altro amico
Sara bene invece di aspettare questi
due persone forse per incontrarne una
un altro o diventare consapevoli l’uno dell’altro
stabilire quell’amicizia
perché non suggeriamo che arrivino
conoscerci
perché non raccomandiamo che Terry si incontri
Sarah Sarah incontra Terry , vedi tutto questo
il tempo che probabilmente vedi su Facebook
vedi su Twitter queste sono le persone
potresti voler connetterti con te
come parte dei motori di raccomandazioni
persone che acquistano questo tipo di cose
anche acquistare quello le persone che
acquista le cose che hai
acquistati hanno anche comprato questo
tipo di cose okay ci stiamo identificando
opportunità per chiudere il triangolo
quindi diamo un’occhiata a un piccolo piccolo
social network okay, quindi ho un
versione di neo4j che esegue qui un server
la versione di me va bene quando corri vicino
futuro come un server
ottieni questo piccolo e simpatico amministratore basato sul web
strumento è in effetti un repla mi permette
scrivere domande e mi permette di
visualizzare i risultati di tali query così
diamo un’occhiata alla rete globale che
Ho creato e parlerò attraverso di te
so che abbiamo questo linguaggio di query che farò
parla un po ‘ di quello in a
momento che non ho intenzione di entrare in esso
grande profondità ma puoi vedere va bene
dal retro e c’è un po ‘sfocato
un po ‘pixelato
vedo che metto qui un social network che non lo faccio
sapere abbastanza quante persone ne hanno 10
15 o così sai e un numero di
diverse amicizie
troviamo Terry solo Taryn
puoi vedere che Terry ne ha un po ‘
amici immediati e poi ognuno di quelli
anche gli amici hanno un certo numero di amici
alcuni dei quali già conoscono Terry e alcuni
di chi non va bene quello che possiamo fare noi possiamo
va bene
Terry è il nostro attuale utente registrato che è
la persona con cui stiamo attualmente trattando
proviamo a identificare tutti i
amici degli amici di Terry che Terry
al momento non lo sa e contiamo
il numero di opportunità da chiudere
quei triangoli e li classificano e poi
noi sappiamo che ci sono molti di
I reciproci amici di Terry che sono tutti
indicando si sa che la terza parte lo farà
tipo di classificarli e faremo a
raccomandazione basata sul più alto
Probabilità di chiudere quel triangolo così
la query ho intenzione di parlare attraverso questo
richiedi un po ‘più in dettaglio in un momento
quando torniamo alle diapositive ma
effettivamente abbiamo questo molto semplice
interrogare qui
è una piccola domanda sì questa è la nostra domanda
lingua e ci sta permettendo di
attraversare o navigare su quella rete e verso
abbinare modelli di grafico specifici all’interno
quella rete, ma questo è efficace
dicendo di trovarmi tutti gli amici di
Gli amici di Terry ma in particolare guardano
per quelli in cui Terry non è al momento
collegato a quell’altro quell’altro
persona che terza parte e facciamo classifica
loro e seleziona quelli che appaiono
verso la cima della lista e se corro
che possiamo vedere che all’interno di quella rete
Terry probabilmente ci sono buone possibilità
che qualcosa nel futuro di Terry
incontrerò Henry e poi una bella
buone possibilità che incontrerà Emily e
Coleen e così via in modo così efficace che possiamo
usalo come base di a
raccomandazione queste sono persone che tu
potrebbe piacere connettersi con così sto andando
per parlare di quella domanda in un po ‘
maggiori dettagli bene così questo è quello che eravamo
guardando un momento fa questo è un vicino
Il linguaggio di query 4js è un linguaggio di query
chiamato cifrario in codice ha un qualcosa di simile
sequel per i grafici è una multi clausola
linguaggio dichiarativo ma invece di
facendo operazioni basate su tabella su tabulare
i dati ci permettono di abbinare il grafico
modelli all’interno di una struttura di rete
e al centro del codice è l’ idea
che possiamo descrivere al database il
tipo di struttura di rete del tipo di
grafico avremo sotto la struttura del grafico
che vorremmo o creare o
da scoprire all’interno del set di dati in effetti
vogliamo essere in grado di disegnare per conto di
il database il tipo di struttura del grafico
vorremmo trovare o creare e
questo è esattamente quello che stiamo facendo qui
così questo primo Clausola qui corrisponde a questo è
dove stiamo descrivendo il database
questo è il tipo di struttura che vorrei
piace trovare okay e la sintassi che
stiamo usando qui è una specie di
rappresentazione pittografica di un grafico
quindi stiamo usando le parentesi per rappresentare
i nodi sono ok, quindi abbiamo un nodo qui
rappresenta Terry e un altro nodo qui
questo rappresenta assolutamente bene
rappresenta gli amici di Terry
amici ma tu sai questa cosa qui
rappresenta alcuni altri nodi là fuori
la rete in mezzo usiamo trattini e
molto spesso useremo maggiore di e
meno di segni ma usiamo trattino è a
rappresentano le relazioni e le inseriamo
il nome della relazione tra questi
parentesi quadre quindi stiamo creando un
piccolo pittogramma molto semplice
rappresentazione di un piccolo sotto grafico
struttura che vogliamo scoprire
all’interno del set di dati e questa parte qui
sta dicendo guarda vogliamo trovare qualsiasi nodo
che è etichettato come utente che ha un nome
proprietà il cui valore è Terry ora
in realtà in un grande set di dati ci può essere
essere molti con molto e molto
Terry è così , probabilmente, lo siamo
usando un valore di proprietà che è di più
unico che è l’indirizzo email di Terry o
loro ne conoscono altri unici
identificatore questo è il mio semplice dato Tory
impostare ma se abbiamo trovato più persone che
abbinare questa cosa a cui tutti sarebbero destinati
questa piccola variabile qui questo è questo
questo identificatore comunque stiamo dicendo find
io il nodo che rappresenta Terry e
allora voglio che tu abbini tutto il
relazioni di amicizia che collegano Terry
immediatamente ai suoi amici e poi a me
voglio che tu vada a profondità alla realtà ho
voglio che combacino con gli amici
degli amici di Terry quindi questo è quello che noi
chiama una relazione di lunghezza variabile
abbinare bene azioni non variabili ed è
rigorosamente definito sta dicendo match
relazioni amiche in uscita e poi
qualunque cosa tu trovi alla fine di questo
corrispondenza ulteriore stampa si riferiscono
oltre tutto ciò che scopriamo in profondità –
chiameremo l’altro fa così
senso così efficacemente stiamo descrivendo
questo piccolo schema questa cosa qui è a
modo di disegnare questa immagine c’è a
nodo che rappresenta Terry che siamo
intenzione di utilizzare una variabile per gli scopi
della query lo chiameremo il
utente che stiamo cercando amico
relazioni che non sono così interessati a
Gli amici immediati di Terry siamo noi
interessato agli amici dei suoi amici
questi altri e poi questa clausola
sta dicendo che ci interessa tutto
gli amici degli amici di Terry, ma solo
fintanto che non esiste un esistente
connessione tra Terry e quell’amico
di un amico
quindi stiamo dicendo dove questo tipo di
la relazione al momento non esiste
stiamo sicuramente cercando quelli
opportunità per collegare il triangolo
il triangolo non esiste al momento ma tu
sapere qui è l’ opportunità di farlo
okay, questa è la struttura che siamo
cercare queste cose devono esistere
quella e poi nella clausola di ritorno
per prima cosa stiamo contando tutto il
gente che abbiniamo come dico io di Terry
ho un numero di amici e tutti questi
gli amici hanno un numero di amici e questo
potrebbe essere quello due o tre di Terry
tutti gli amici conoscono la stessa persona
Terry non è così che l’altra persona lo farà
ritagliare due o tre volte nel nostro risultato
impostato in modo che stiamo contando il numero di
volte ogni individuo si verifica nel
set di risultati e siamo un elenco che è
il loro punteggio e poi abbiamo appena creato un
proiezione dei risultati complessivi su
per conto del cliente e stiamo ordinando
dal punteggio più alto prima, quindi
questo è esattamente ciò che abbiamo visto nel
risultati un attimo fa yeah, Terry non lo è
restituito perché quelli si identificano come quelli
prima di sapere ho avuto utente e altri come
variabili temporanee dentro la mia dentro la mia
query che ha il suo tipo di implicito
effetto collaterale di dire che questi due
i nodi sono diversi, ho usato esattamente il
stesso nome che potremmo effettivamente
partita contro
le dipendenze sì, così Terry non lo fa
raccolto a questo punto in quei risultati
ma intendo anche interessante se lo siamo
cercando gli Amici di Terry
amici bene, prima di tutto dobbiamo andare
per mezzo di un’amicizia che già
esiste quindi c’è sì, ho un po ‘di vedere
il punto, ma stiamo decisamente escludendo
il fatto che quella amicizia già
esiste quindi questa è un’altra ragione per cui
Terry non appare nei risultati ora
in realtà se torniamo al grafico
stesso e basta guardare brevemente a questi
amicizie come ho detto uno dei
sei interessato a cose interessanti sull’erba
sanno che ci permettono di modellare
la connessione e in quello specchio si forgiano a
modello di dati possiamo dare un nome al
direzione attraverso ogni relazione ma
possiamo anche aggiungere proprietà a
rappresentano la forza o il peso o
la qualità di quella relazione e
in realtà qui basato su alcune informazioni
che le persone ci hanno dato siamo stati
in grado di quantificare o qualificare ciascuno di
quelle relazioni che siamo ora in grado di
attacca una forza per ogni relazione
in modo che possiamo effettivamente tener conto di tale
anche nelle nostre domande così ho fatto
ottenuto una query leggermente più complessa che
Non ho intenzione di discutere in così tanto
dettaglio ma è molto molto simile a noi
ancora alla ricerca di amici conosci la profondità
ad un amico di un amico, ma ora prendiamo
il tuo account puoi vedere qui nel nostro
dove clausola stiamo prendendo in considerazione il
forza di questa amicizia e noi siamo
solo alla ricerca di amicizie forti
amicizie che sono valutate due o sopra
va bene e questo ci dà un po ‘
diverse serie di risultati ancora otteniamo
Henry in cima ma in realtà Colleen
e Chloe è apparso più in basso nel nostro
set iniziale di risultati, ma può essere
c’è una maggiore possibilità che questi
le persone si incontreranno per prime, ci incontreremo
Terry prima a causa della forza di
quelle amicizie e possiamo effettivamente
combinare tutti questi calcoli
per voi sapere di venire con alcuni
di questi molto semplici predittivi
capacità suggestive
quindi è una specie di schema semplice
corrispondenza all’interno del grafico ma è
applicando un principio ben compreso di
di reti questa cosa sulla triadica
chiusura e provare a chiudere come dico è
agnostico relativamente dominio non lo fa
deve essere molto semplice social
reti come questa possono applicare di più
generalmente in particolare dove abbiamo
L’agenzia umana ora è che potrei averlo sempre
correre un rischio quando ho introdotto questo è il
primo esempio i miei colleghi dicono bene
guarda che parli sempre di social
le reti di persone vengono via con l’idea
quei database di diagrammi sono solo buoni per
i social network e la mia risposta va bene
in realtà c’è un sacco di cose sociali
là fuori e non è solo il banale
roba sociale su Facebook o anni o
cose del genere che conosci da anni
le imprese sono state tra parentesi dal
elemento umano e solo cercando di concentrarsi
sui fatti ma in realtà umani
i comportamenti hanno molta influenza
molte aree della nostra vita sono il linguaggio
l’economia sociale è un software sociale
lo sviluppo è sociale ecco perché
conferenze come questa hanno sempre un
pista agile perché riconosce agile
che lo sviluppo del social software è un
l’attività sociale è tutto per questo
c’è sempre quel tipo di palliativo
cura tutorial o serie di discorsi che fanno
ti senti meglio del fatto che il tuo
l’organizzazione è fottuta, lo sai
insetti sono nel popolo e non nel
Software
così sociale si estende molto più in generale di
facebooking yo yeah e quindi ti penso
conoscere reintrodurre il sociale e questo è
ciò che la proprietà web di grandi dimensioni è queste sono
questi sono i modi in cui le persone sono
generare valore oggi sono
riconoscendo l’ elemento sociale nei lotti
e molte cose diverse che facciamo
e così può farlo questo tipo di principi
applicare molto molto ampiamente bene così noi
stavamo tagliando la corrispondenza che possiamo
in realtà ne escono leggermente di più
modelli sofisticati di nuovo al fine di
fare una sorta di analisi predittiva noi
avere un amico in realtà qualcuno che
lavora qui in Olanda chi è
facendo un sacco di cose con i grafici
chi dice che sei in un grafico c’è
nessun posto in cui nascondersi
puoi nascondere molti comportamenti in a
struttura tabellare ma quando lo sei
guardando un grafico attraverso l’occhio umano
molto rapidamente tiene conto del
schemi non c’è nessun posto dove nascondersi nel
grafico quindi è molto facile da scoprire
schemi che sono altrimenti nascosti quando
stai guardando altri dati
struttura in cui vengono utilizzati i grafici oggi
per cose come l’ analisi delle frodi e
esempio qui è ciò che chiamiamo prima parte
la frode di prima parte è la situazione
dove hai un certo numero di diversi
truffatori di persone che insieme
costituire un anello di frode e questo gruppo
di persone creerà un secchio di
identità delle informazioni di identità
informazioni come la sicurezza sociale
numeri numeri di telefono e così via
e poi ognuno dei membri di quello
l’anello sceglierà e sceglierà i bit di
informazioni di identità da quel secchio
e li usa per creare o estendere
linee di credito che li usano per creare
conti e così via, così sei chiamato
raccolta di informazioni sull’identità in
il secchio e molto spesso quando sei
account di apertura che devi fornire
diversi bit identici
informazioni su ciascuna applicazione probabilmente
non usa esattamente lo stesso insieme di
informazione come tutte le altre
le domande sono così ampie
diffuso con qualche sovrapposizione tra il
diversi bit di informazioni di identità
e poi i tuoi forestali si comportano come loro
buoni cittadini per un po ‘ aprono un
conto di una linea di credito che prendono in prestito
contro di essa ripagano tutto
sembra bello e dandy e poi ad alcuni
indica se sono mesi o alcuni
anni lungo la linea tutti insieme
semplicemente scompaiono dal radar
tipo di cancellare i conti e tutto
i soldi sono finiti ora l’unico modo
che potresti identificare e
identificare tempestivamente o identificare
il tuo rischio o esposizione è probabile
capire tutte le connessioni tra
tutte le cose diverse in questa rete
le persone e i conti e tutto
quei diversi bit di identità
informazioni e quindi al punto in
tempo in cui qualcuno sta facendo domanda per un
account è possibile valutare la probabilità
che stanno partecipando a una frode
anello o in modo efficace alla ricerca di
all’interno di quella struttura di rete
le nostre larghe connessioni di fioritura sono di tipo gentile
di ampia diffusione di connessioni quindi se
hai una famiglia o vivi al
stesso indirizzo forse diversi membri di
quella famiglia i genitori forse se alcuni
dei bambini più grandi che possano essere tutti
aprire conti e tutti useranno il
lo stesso indirizzo va bene quando sei
analizzando la rete che ci si aspetta
vedi questi piccoli gruppi di condivisi
informazioni ma se questi cluster
ampliare se possono fiorire ed estendere
verso l’esterno e hai a che fare con molti molti
persone e molti diversi bit di
informazioni sull’identità o sottilmente collegate
e collegato in questo modo quindi c’è
una maggiore possibilità che tu abbia a che fare
con Fordring quindi abbiamo un anello di frode
qui conosci tre persone dalla nostra
social network precedente con un conto e
Kahlan e Lucy e ognuno di loro ha ARE
aprire due o tre linee diverse di
crediti e carte di credito e banca
conti e poi in blu possiamo vedere tutto
quei diversi pezzi di identità
informazioni sugli indirizzi e sui social
La sicurezza numera i numeri di telefono
e così via e tu puoi vederlo ciascuno
la persona ha usato un leggermente diverso
combinazione ma che ogni pezzo di
l’ informazione sull’identità è in realtà essere
condiviso da almeno due persone questo è
quel tipo di più ampia diffusione di nuovo
abbiamo la stessa cosa qui leggermente
voltato di lato ma di nuovo puoi vedere
i nodi che rappresentano Lucy e Bill
e chiama tutte le informazioni sull’identità
e tutti i conti che loro attualmente
tieni premuto ora non ho intenzione di parlare
la domanda di nuovo nei suoi dettagli, ma io ho
ho una domanda qui
Mi chiedo però se dovrei esserci
un po ‘più ad esso è appena discreto questo è
la domanda che stiamo facendo un po ‘di più
in questa query questo è qualcuno è questo
nuova persona che arriva chi è io
non posso vedere a questo punto nel tempo che è
è più lontano dallo schermo, ma noi abbiamo
ho visto un nuovo candidato apparire
come Terry è ancora Terry amico di Terry tutto
il tempo in cui Terry sta facendo domanda per un
account e sta usando alcuni esistenti
informazioni di identità che fornisce anche
alcuni nuovi bit di informazioni sull’identità come
bene così il punto nel tempo in cui Terry è
domanda per l’account e noi siamo
cercando di creare registrarlo con il
sistema è quello che stiamo facendo nel
il primo semestre creiamo qualcosa di nuovo
dati mentre stiamo cercando di creare nuovi
dati proveremo a riutilizzare i bit esistenti di
dati quindi se alcuni di questa identità
le informazioni esistono già allora lo faremo
riutilizzalo se è nuovo, quindi lo creeremo
nuovi nodi per rappresentare questo nuovo
informazioni così facciamo tutto ciò in
prima metà e poi nella seconda metà
della query prendiamo quindi tutto il
informazioni di identità che Terry’s
fornito e noi tipo di traversata
verso l’esterno eseguiamo la scansione del grafico e cerchiamo
i modi in cui tale identità
le informazioni sono state usate in differenti
contesti e lo stiamo usando per formare un
giudizio di nuovo per predire di essere
suggestivo e inferenziale è questo
forse parte di un quattro durante è questo
uno di questi ampi spread
quindi è difficile vedere la query
vincitore il Manas è da questa parte quindi
usando il testo me se eseguo di nuovo che abbiamo
fornito tutte le informazioni e ora noi
posso vederlo per cose come il
Numero di assicurazione nazionale ci sono a
almeno tre persone diverse che sono tutte
usando quel numero di assicurazione nazionale
allo stesso modo per questo numero di telefono che abbiamo
ho tre persone e c’è un po ‘ di
si sovrappongono qui stiamo iniziando a identificare
tutti i diversi membri di tale
squillare e i bit di informazione
che vengono utilizzati quindi questo è qualcosa
che potremmo fare nel momento giusto
dove qualcuno sta effettivamente facendo domanda per
un account non è dopo il fatto
analisi non è l’elaborazione in batch
analisi sta puntando analisi del tempo
quando qualcuno sta effettivamente presentando
dettagli forse sul web o sul
telefono e ancora sai che siamo piccoli
dati impostati qui, ma ovviamente se lo sei
occuparsi di una grande rete finanziaria
hai a che fare con milioni su
milioni di questi nodi e connessioni
ma ancora puoi ancora diventare vivace
risultati e millisecondi risultati anche
quando stai interrogando contro quello più grande
struttura perché la cosa bella di a
query grafico è una volta che hai paracadutato
nel grafico con i tuoi punti di partenza
Terry e la sua identità informazioni cosa
siamo interessati a fare sta esplorando
tanto del grafico quanto necessario per
rispondi alla domanda particolare a portata di mano
non abbiamo bisogno di esplorare l’intero
grafico si sta solo cercando il
connessione in modo che tu ti stia solo ritagliando a
questa è una porzione più piccola del grafico
molto diverso dal calcolo di una joint in
il mondo relazionale dove devi
calcolare il prodotto cartesiano di tutto il
possibili cose che stai cercando e
poi butta via la maggior parte di quello che conosci noi
può ottenere prestazioni in millisecondi dove
l’ equivalente si unisce al relazionale
il mondo potrebbe richiedere alcuni minuti
lasciato così un ultimo esempio così entrambi
questi sono stati circa la corrispondenza dei modelli
e sono stato molto di questo tipo
di predittivo e suggestivo e
capacità inferenziale che ho menzionato
all’inizio sai che le nostre vite hanno
cambiato negli ultimi dieci anni la strada
con il software sta influenzando noi non è
è solo un calcolo rigoroso
essendo anche predittivo e suggestivo e
ma in realtà c’è ancora c’è ancora
un posto nel mondo del software per fare
calcoli per fare qualcosa dove
puoi avere ragione o puoi sbagliare
non importa quanto hai fregato il tuo
l’organizzazione è e quanti sono agili
non traccia il latte, quindi quello che abbiamo qui è
un esempio di ricerca del percorso in un pacco
rete così vicino 4J oggi è in uso
nella più grande rete di pacchi in Europa
calcolare i percorsi attraverso il
il pacchetto di rete entra nella rete ea
quel punto nel tempo dobbiamo calcolare
il percorso più efficace per il massimo
destinazione dobbiamo farlo molto molto
rapidamente perché il pacco è entrato
la rete sta effettivamente scendendo a
scivolo ci vuole meno di un secondo per andare
giù lo scivolo e il fondo dello scivolo
cambierà in un modo o
l’altro che dobbiamo calcolare di più
percorso efficace attraverso la rete
prima che arrivi in ​​fondo allo scivolo
e ci sono i tempi di punta
ce ne sono duemilatremila
pacchi al secondo che entrano nella rete
conosci circa tremila ore di Natale tutte
giusto e hai a che fare con un bel
grande rete hai 25 nazionali
centri pacchi 2 milioni di codice postale
30 milioni di singoli indirizzi così è
una rete molto grande ok quindi molto
strutturato densamente connesso e
corpi di dati ragionevolmente grandi e
abbiamo questi rigidi requisiti di tempo
e l’altra cosa è il grafico il
cambiamenti della rete nel corso del tempo sai che ci
sono più camion sulla strada a Natale
tempo che ci sono durante l’estate così
dobbiamo essere molto sensibili riguardo al
struttura della rete in qualsiasi
momento particolare e guardando avanti a
paio di giorni abbiamo bisogno di anticipare
cosa saranno le reti della struttura
in quel momento, quindi questo è
efficacemente il modello di dati che noi
avere e se tu lo sai se tu
preso il libro dal tuo stand
sappiamo di aver parlato di questo esempio in a
molto più dettaglio nel libro ma
efficacemente hai un pacco nazionale
consegna di centri e basi di consegna
aree che vanno giù a queste consegna
segmenti e ci sono ci sono
percorsi particolari che connettono tutti
questi elementi e per qualsiasi particolare
punto nel tempo c’è sempre un bene
percorso tra un segmento di consegna e
ogni area tra un’area di consegna e a
base di consegna ma come dico nel tempo
perché più camion sulla strada di
Natale queste rotte cambiano così le nostre
modello di dati complessivo è questo è lontano
più variamente strutturato e denso
connesso e quindi per qualsiasi particolare
coppia di nodi in cui siamo tipo di attributo
quelli sanno che stiamo dicendo bene questo è
lo sai il costo logico di
attraversando questa relazione per questo
periodo di tempo particolare, quindi con il tempo
la stampa delle relazioni stava dicendo
questa relazione è cliccabile
per un particolare momento o
periodo particolare e questo è il costo
quello si applica e poi basato su quello noi
può effettivamente fare qualcosa di molto molto semplice
percorsi ponderati più brevi traversali a
il grafico e possiamo calcolare il giusto
risposta contro la risposta sbagliata perché
di loro la struttura complessiva del
grafico, voglio dire che c’è di nuovo la ricerca del percorso
percorsi più brevi e cose del genere
molto ben capito in quanto il grafico
letteratura e alcuni ottimi algoritmi
per il calcolo di tutto ciò nel nostro caso
non abbiamo controllato devi applicare
molti di questi algoritmi invece possiamo
tipo di navigare verso l’alto dal
punto in cui il pacco entra nel
punto in cui dobbiamo consegnarlo noi
tipo di navigare il nostro modo il
struttura fino ad arrivare a qualche consegna
base so che a quel punto ci preoccupiamo
applicare un algoritmo più sofisticato
perché i centri pacchi e il
le basi di consegna sono molto complesse
collegato così applichiamo Dijkstra a questo
punto per calcolare i percorsi
tra cose in alto, allora possiamo
uniscilo tutto molto molto velocemente
e vieni con il percorso ideale attraverso
il sistema sì, questo è l’ultimo
parte del calcolo così su questo non lo è
la query che è effettivamente eseguita
è leggermente più semplice solo per mostrarti come
possiamo fare operazioni basate sul percorso nel
grafico quindi tutto ciò che stavamo cercando
finora è stato davvero focalizzato sul
i nodi foglia
conosci i nodi alla fine di a
modellizza ciò che ci interessa qui
sono i percorsi quindi i nodi e il
relazioni e quindi vogliamo applicare
calcoli attraverso quei percorsi così il
ricorda il livello più basso del modello di dati
noi annodiamo solo le relazioni
ed etichette non c’è idea al
livello del modello dati del percorso ma
il linguaggio di query è molto forte
nozione di cosa sia un percorso così
erano qui in questa parte della query
generando effettivamente un percorso o
percorsi multipli tra due posizioni così
è qui che vogliamo iniziare da questo
è dove vogliamo arrivare e noi siamo
preparato per navigare fino alla profondità 4 e
questo modello corrisponderà a tutti i
percorsi diversi che si estendono da questo
posizione in cui si trovano quei percorsi
1 2 3 o 4 relazioni a lungo e it
assegnerà tutti questi percorsi a questo
identificatore di percorso qui così questo percorso
l’identificatore sarà associato a una raccolta
di percorsi e quindi la clausola di ritorno
di nuovo sta facendo qualche calcolo e
restituire alcuni risultati è importante
parte qui è la funzione ridotta così
cosa stiamo facendo qui per ogni percorso
stiamo iterando sulle relazioni
in quel particolare percorso quindi abbiamo corrispondenza
quattro diversi percorsi per ogni percorso che faremo
andare avanti sulle relazioni e
li ridurremo in modo efficace
tutti i costi di quelli
relazioni con cui venire però
il peso totale per quel particolare
percorso sì è una semplice operazione di riduzione
e quindi stiamo restituendo i risultati
i calcoli per ogni percorso ma siamo
ordinando i risultati e semplicemente prendendo il
quello in alto, quindi immagino con questo se
Lo stiamo facendo in ordine crescente siamo
stiamo selezionando il percorso più breve e più economico
in modo efficace o il percorso meno costoso
basato su questa somma totale in modo efficace
questo è il molto semplice
algoritmo al centro di questo e
c’è un po ‘di più in cima ma quello sono io
volevo solo comunicare come puoi
lavorare con una parte con neo4j questo è ciò che
la query generale sembra e basta
sembra un po ‘più complesso ma in realtà
l’equivalente nel mondo relazionale
potresti guardare diverse decine di
pagine di join e cose del genere
in realtà abbiamo solo ce ne sono tre
gambe diverse portano giù l’ OP
gamba e il bit in mezzo nella parte superiore
e poi fare quei calcoli di percorso
attraverso tutta la faccenda e sta andando
per darci il percorso ottimale attraverso il
sistema okay quindi ne ho un paio
minuti rimasti per rispondere ad alcune domande se
non hai già una copia di ciò che va
prendilo da lì allo stand o se
vuoi una versione pdf e ottenerne una
database database com è gratuito e questo
è una sorta di cima a vista dal basso
mondo dei database di grafici che iniziano con
sai perché sono utili perché sono loro
importante come le persone li usano
oggi e poi capitolo dopo capitolo scaviamo
nel guardare più in profondità gli interni di
particolare l’interno di neo4j
guardando il linguaggio di query e
guardando alcuni di questi esempi in
più profondità a quel punto sono praticamente
fatto ci sono domande che è
giusto sì così dentro i dati
modello stesso di ogni relazione
avere una direzione ma nel
linguaggio di query che puoi ignorare
direzione quindi il consiglio generale è quando
stai creando il tuo set di dati e lo sei
volendo modificare direzionalità non
preoccuparsi della direzione, basta scegliere
uno degli altri abbastanza arbitrariamente ma
quindi nel linguaggio di ricerca come abbiamo visto il
query iniziali ignoriamo semplicemente il
direzione del rapporto e funziona come
tu

Please follow and like us: