Database di grafici

Un database a grafo, noto anche come database semantico, è un'applicazione software progettata per archiviare, interrogare e modificare i grafici di rete. Un grafo di rete è un costrutto visivo costituito da nodi e bordi. Ogni nodo rappresenta un'entità (come una persona) e ogni bordo rappresenta una connessione o una relazione tra due nodi. 

I database a grafo esistono da tempo in alcune varianti. Ad esempio, un albero genealogico è un database grafico molto semplice. 

Il concetto di utilizzare i database per mappare digitalmente le relazioni ha iniziato a vedere un utilizzo popolare nel mondo degli affari intorno al 2015, quando la maggiore potenza di calcolo, l'elaborazione in memoria e gli standard concordati hanno spostato il concetto dagli accademici agli usi del mondo reale nell'informatica aziendale e aziendale.

I database a grafo sono adatti per analizzare le interconnessioni, motivo per cui c'è stato molto interesse nell'utilizzo di database a grafo per estrarre dati dai social media. I database a grafo sono utili anche per lavorare con i dati in discipline aziendali che implicano relazioni complesse e schemi dinamici, come la gestione della catena di approvvigionamento, l'identificazione della fonte di un problema di telefonia IP e la creazione di motori di raccomandazione "i clienti che hanno acquistato questo hanno anche guardato ..." .

Il concetto alla base della rappresentazione grafica di un database è spesso attribuito al matematico del XVIII secolo Leonhard Euler.

La struttura di un database a grafo

Tradizionalmente classificati come un tipo di database NoSQL, i database a grafo sono talvolta indicati come triple store. Questo perché questo tipo di database utilizza un indice speciale che memorizza le informazioni sui nodi, i bordi e la relazione tra loro in gruppi di tre.

Una tripla, che può anche essere definita un'asserzione, ha tre campi principali: un soggetto, un predicato e un oggetto. Ogni soggetto, predicato o oggetto è rappresentato da un identificatore di risorsa univoco (URI).

Come vengono indicizzate le informazioni

In un archivio triplo, il primo campo nel database contiene l'URI per l'oggetto, il secondo campo contiene l'URI per il predicato e il terzo campo contiene un URI per l'oggetto. Sebbene ci siano un certo numero di strategie differenti che i database a grafo possono usare per memorizzare triple, la maggior parte usa un indice che abbrevia i tre campi primari in {? S,? P,? O}. 

Ad esempio, se il costrutto visivo per un grafico viene fornito come segue:

Nodi e bordi

Quindi l'indice sarà simile a questo:

 Riga

?s

?p

?o

1

: Bob

:sposato con

: Julie

2

: Bob

: brotherOf

: Steve

3

: Bob

:ascolta

:Musica rock

4

: Julie

:ascolta

:Musica rock

5

: Julie

: sisterInLawTo

: Steve

6

: Jim

:lavora per

: IBM

Come vengono interrogate le informazioni in un database a grafo

Ogni tripla in un database a grafo viene memorizzata solo una volta nell'indice. Proprio come i database relazionali, è un processo semplice eseguire una query di ricerca diretta in un database a grafo.

  • Se la query riguarda le informazioni note su Bob, la programmazione dell'indicizzatore deve solo cercare le righe 1-3 del database.

La vera potenza e velocità di un database a grafo deriva dall'indicizzazione di combinazioni di triple. Ecco alcuni esempi:

  • Se la query riguarda la persona con cui Bob è sposato, l'indicizzatore cercherà il predicato: marriedTo nelle righe 1-3 e quindi recupererà l'oggetto corrispondente. (Bob è sposato con Julie.) 
  • Se la query è identificare tutti coloro che ascoltano lo stesso tipo di musica di Bob, l'indicizzatore chiederà prima {: Bob: listensTo? O} e identificherà: RockMusic come oggetto. 

Nella seconda query, i risultati restituiranno: RockMusic nelle righe 3 e 4. Il soggetto nella riga 3 è Bob stesso, quindi chiunque sia l'argomento nella riga 4 sarà l'altra persona che ascolta musica rock. (Si scopre essere Julie, la moglie di Bob.) 

Tipi di database a grafo

Storicamente, i database di grafici sono stati divisi in due categorie: grafici di proprietà che supportano semplicemente nodi e bordi e grafici della conoscenza come quello sopra che possono concentrarsi sul aspetti semantici dei dati e memorizzare le informazioni in tripli. In generale, le strategie di indicizzazione per entrambi i tipi sono simili.

Si prevede che nel tempo i grafici della conoscenza e i grafici delle proprietà si fonderanno e le distinzioni architettoniche tra questi due tipi di database dei grafici svaniranno.

Casi d'uso per database a grafo

I casi d'uso correnti per i database a grafo includono quanto segue:

  • Consenti agli analisti di dati di federare set di dati senza dover creare ed eseguire query complesse che uniscono combinazioni di tabelle, come nel modello di database relazionale.
  • Aiuta gli sviluppatori a creare il back-end per assistenti vocali mappando le possibili domande degli utenti alle risposte corrette. 
  • Identifica i gruppi di eventi collegati in modi insoliti per rilevare le frodi.
  • Esaminare le connessioni dirette per identificare potenziali connessioni indirette per i motori di raccomandazione. 

Futuro dei database a grafo

I database di grafici dovrebbero svolgere un ruolo importante in aree diverse come l'apprendimento automatico, l'analisi bayesiana, la scienza dei dati e l'intelligenza artificiale, oltre a contribuire a gestire i dati aziendali e lo scambio di dati, nel prossimo decennio.

Uno degli impatti più significativi su questo tipo di database saranno i miglioramenti nella federazione dei dati. Quando i grafici della conoscenza possono essere facilmente federati, un database sarà in grado di determinare che ha bisogno di dati che non ha e recupererà automaticamente quei dati da un altro grafico della conoscenza. Con questa capacità, è probabile che la federazione aiuterà gli sviluppatori a creare blockchain che utilizzano metadati pertinenti per autenticare le transazioni in ambito bancario, finanziario, di voto e di contratti intelligenti.

Guarda anche: grafico sociale, ricerca grafico