Published June 10, 2025 | Version v1
Software Open

Luigi Usai Graph Database

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:Persongeo: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:Persongeo: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