Luigi Usai Graph Database
Authors/Creators
Description
Italiano
1. LUG-DB (Luigi Usai Graph Database)
Titolo: LUG-DB: Un Visualizzatore Interattivo di Database a Grafo
Descrizione:
LUG-DB (Luigi Usai Graph Database) è un'applicazione desktop leggera, sviluppata in Python con Tkinter, progettata per l'importazione, la visualizzazione e l'esplorazione interattiva di dati a grafo. Lo strumento è ideale per studenti, sviluppatori e ricercatori che necessitano di un modo rapido per ispezionare set di dati strutturati a grafo senza la complessità di installare e configurare un sistema di database completo.
Caratteristiche Principali:
-
Motore a Grafo In-Memory: Implementa un semplice database a grafo di proprietà (property graph) in memoria, rendendo l'applicazione autonoma e facile da avviare.
-
Importazione Flessibile: Supporta l'importazione di dati da molteplici formati:
-
JSON: Include una logica di parsing intelligente in grado di interpretare strutture annidate per creare automaticamente nodi e relazioni gerarchiche.
-
RDF/Turtle: Utilizza la libreria rdflib per parsare formati standard del Web Semantico come RDF/XML e Turtle (TTL), trasformando triple in nodi, proprietà e relazioni.
-
-
Visualizzazione su Canvas: Rappresenta i grafi in modo intuitivo, disegnando nodi (come cerchi colorati in base alle loro etichette) e relazioni (come frecce etichettate).
-
Manipolazione Diretta: Gli utenti possono trascinare e riposizionare i nodi direttamente sull'area di disegno per migliorare la leggibilità del grafo.
-
Interfaccia Grafica Semplice: Dotato di un menu intuitivo per l'importazione dei file, la visualizzazione dei log di operazioni e l'accesso alle informazioni sul software.
Tecnologie: Python, Tkinter, rdflib.
2. GraphRAG Silent Expander
Titolo: GraphRAG Silent Expander: Un Crawler per la Costruzione Automatica di Knowledge Graph da Fonti Web
Descrizione:
GraphRAG Silent Expander è un'applicazione Python che automatizza il processo di crawling del web per estrarre entità nominate (persone, organizzazioni, luoghi) e le loro relazioni contestuali, costruendo dinamicamente un knowledge graph. Lo strumento è stato progettato per ricercatori e sviluppatori che lavorano nel campo dell'Information Extraction, del Semantic Web e della preparazione di dati per sistemi di Retrieval-Augmented Generation (RAG), fornendo un metodo per trasformare il web non strutturato in una knowledge base strutturata e interoperabile.
Metodologia e Caratteristiche:
-
Crawling Web Intelligente: Utilizza Selenium per navigare siti web in modo automatizzato. Gestisce una coda di URL in modo "educato" (polite crawling), alternando i domini e introducendo ritardi per evitare di sovraccaricare i server.
-
Estrazione di Contenuto: Si affida alla libreria trafilatura per isolare e pulire il contenuto testuale principale delle pagine, scartando elementi superflui come menu, pubblicità e footer.
-
Riconoscimento di Entità (NER): Analizza il testo estratto con il modello linguistico italiano di spaCy per identificare e classificare le entità.
-
Costruzione del Grafo: Le entità identificate diventano i nodi di un grafo gestito con NetworkX. Le relazioni (archi) vengono create tra entità che co-occorrono all'interno della stessa frase, rappresentando un forte legame contestuale.
-
Esportazione Semantica in TTL: La funzionalità chiave è la capacità di esportare il grafo in file Turtle (TTL). Per ogni URL sorgente, viene generato un file TTL separato contenente solo i nodi e le relazioni estratte da quella pagina, con le entità mappate a tipi RDF standard (es. foaf:Person, geo:Place).
-
Gestione delle Sessioni: Salva automaticamente lo stato del grafo, la coda degli URL e l'elenco dei siti visitati, permettendo di interrompere e riprendere sessioni di crawling lunghe.
-
Interfaccia di Monitoraggio: Una GUI basata su Tkinter fornisce controlli per avviare/fermare il processo e visualizza statistiche in tempo reale (numero di nodi/archi, URL in coda) e un log dettagliato delle operazioni.
Tecnologie: Python, Tkinter, Selenium, spaCy, NetworkX, trafilatura.
English
1. LUG-DB (Luigi Usai Graph Database)
Title: LUG-DB: An Interactive Graph Database Viewer
Description:
LUG-DB (Luigi Usai Graph Database) is a lightweight desktop application, developed in Python with Tkinter, designed for the import, visualization, and interactive exploration of graph data. The tool is ideal for students, developers, and researchers who need a quick way to inspect graph-structured datasets without the overhead of installing and configuring a full-fledged database system.
Key Features:
-
In-Memory Graph Engine: Implements a simple in-memory property graph database, making the application self-contained and easy to run.
-
Flexible Data Import: Supports data import from multiple formats:
-
JSON: Includes an intelligent parsing logic capable of interpreting nested structures to automatically create nodes and hierarchical relationships.
-
RDF/Turtle: Uses the rdflib library to parse standard Semantic Web formats like RDF/XML and Turtle (TTL), transforming triples into nodes, properties, and relationships.
-
-
Canvas-Based Visualization: Intuitively represents graphs by drawing nodes (as circles colored according to their labels) and relationships (as labeled arrows).
-
Direct Manipulation: Users can drag and reposition nodes directly on the canvas to improve the graph's readability.
-
Simple GUI: Features an intuitive menu for importing files, viewing operation logs, and accessing software information.
Technologies: Python, Tkinter, rdflib.
2. GraphRAG Silent Expander
Title: GraphRAG Silent Expander: A Crawler for Automatically Building Knowledge Graphs from Web Sources
Description:
GraphRAG Silent Expander is a Python application that automates the process of crawling the web to extract named entities (people, organizations, locations) and their contextual relationships, dynamically building a knowledge graph. This tool is designed for researchers and developers in the fields of Information Extraction, Semantic Web, and data preparation for Retrieval-Augmented Generation (RAG) systems, providing a method to transform the unstructured web into a structured and interoperable knowledge base.
Methodology and Features:
-
Intelligent Web Crawling: Uses Selenium to navigate websites automatically. It politely manages a URL queue by cycling through domains and introducing delays to avoid overloading servers.
-
Content Extraction: Relies on the trafilatura library to isolate and clean the main textual content of pages, discarding superfluous elements like menus, ads, and footers.
-
Named Entity Recognition (NER): Analyzes the extracted text using spaCy's Italian language model to identify and classify entities.
-
Graph Construction: The identified entities become nodes in a graph managed with NetworkX. Relationships (edges) are created between entities that co-occur within the same sentence, representing a strong contextual link.
-
Semantic TTL Export: Its key feature is the ability to export the graph into Turtle (TTL) files. For each source URL, a separate TTL file is generated containing only the nodes and relationships extracted from that page, with entities mapped to standard RDF types (e.g., foaf:Person, geo:Place).
-
Session Management: Automatically saves the state of the graph, the URL queue, and the list of visited sites, allowing long crawling sessions to be paused and resumed.
-
Monitoring Interface: A Tkinter-based GUI provides controls to start/stop the process and displays real-time statistics (node/edge counts, URLs in queue) and a detailed operation log.
Technologies: Python, Tkinter, Selenium, spaCy, NetworkX, trafilatura.
Files
Files
(41.4 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:0b8caa475cb211b7555e4446f6073cde
|
26.6 kB | Download |
|
md5:d5b715be3281cf71555f9cec17ed9b81
|
14.9 kB | Download |