WikiFai

Knowledge Graph e LLM Framework per Wikifunctions

Cos’è?

WikiFai è un framework che combina Knowledge Graph (Neo4j) e Large Language Model per scoprire e generare funzioni di ordine superiore in Wikifunctions. Anziché generare codice da zero, WikiFai compone funzioni nuove a partire da funzioni esistenti già validate, accelerando lo sviluppo di Abstract Wikipedia.

Missione

Abilitare la Retrieval-Augmented Composition (RAC): un paradigma in cui l’AI non genera codice nuovo, ma compone funzioni già testate e validate dalla community di Wikifunctions.

A differenza della RAG tradizionale:

  RAG RAC
Approccio Recupera contesto → Genera codice nuovo Recupera funzioni → Compone funzioni validate
Correttezza Non garantita Garantita (componenti pre-testati)
Allucinazioni Possibili Impossibili (solo ZID esistenti)
Trasparenza Opaca Logica di composizione esplicita

Architettura

graph TD
    A[Wikifunctions XML Dump] -->|mwxml stream| B[ETL Pipeline]
    B -->|32.908 nodi| C[Neo4j Knowledge Graph]
    C --> D[Fase 1: Analisi]
    D -->|Text-to-Cypher| E[Fase 2: Astrazione]
    E -->|Proposta funzione| F[Fase 3: Composizione]
    F -->|Z-Object JSON| G[Human-in-the-Loop]
    G -->|Validazione| H[Wikifunctions.org]

    style C fill:#4C8BF5,color:#fff
    style G fill:#FF9800,color:#fff

Il workflow di sintesi a 3 fasi:

  1. Analisi — Query Text-to-Cypher generate da LLM ed eseguite su Neo4j per scoprire pattern e ZID rilevanti
  2. Astrazione — L’LLM analizza i pattern e propone nuove funzioni di ordine superiore
  3. Composizione — Generazione di Z-Object completi con 3 implementazioni: Composition (Z14K2), Python (Z14K3) e Scheme R5RS

Knowledge Graph

Il grafo Neo4j modella l’intero ecosistema Wikifunctions:

I Z-Object di Wikifunctions sono AST (Abstract Syntax Tree) serializzati come JSON. I riferimenti Z9 creano archi espliciti nel grafo, rendendo l’analisi delle dipendenze nativa e performante.

Interfaccia Web

WikiFai include un’interfaccia web completa per esplorare il grafo e gestire la sintesi:

Multi-Model LLM

Routing task-based che seleziona automaticamente il modello ottimale:

Fase Modello consigliato Motivo
Analisi (Text-to-Cypher) Gemini 2.5 Flash Veloce, cost-effective
Astrazione Claude Sonnet Ragionamento bilanciato
Composizione GPT-4 / Claude Alta qualitĂ 

Supporto completo per Gemini, Claude e GPT con selezione automatica basata sulla complessitĂ  del task.

Human-in-the-Loop

Ogni funzione generata richiede validazione umana prima della pubblicazione:

  1. L’AI genera la proposta con 3 implementazioni
  2. L’operatore umano revisiona lo Z-Object JSON
  3. Test automatici verificano le implementazioni
  4. Pubblicazione manuale su Wikifunctions

Questo approccio è conforme alla policy di Wikifunctions e alla strategia AI human-centered di Wikimedia.

Stack tecnologico

Backend:

Frontend:

Infrastruttura:

Performance

Operazione Tempo
ETL completo (32K nodi) ~10-15 min
Fase Analisi ~5-10 sec
Fase Astrazione ~3-5 sec
Fase Composizione ~10-15 sec
Sintesi totale ~20-30 sec per funzione

Stato del progetto


WikiFai contribuisce all’ecosistema Wikimedia accelerando la creazione di funzioni validate per Abstract Wikipedia.