User:CristianCantoro/Sandbox/Proposta tecnica

From Wikidata
Jump to navigation Jump to search

(questa pagina è la traduzione di meta:Wikidata/Technical proposal

Wikidata è un progetto che vuole creare una base di conoscenza libera sul mondo che possa essere letta e modificata da umani e persone allo stesso modo. Wikidata fornirà i dati in tutte le lingue dei progetti Wikimedia e consentirà di avere un acesso centralizzato ai dati in un modo simile a quello che Wikimedia Commons consente di fare con i file multimediali.

Wikidata nasce per essere un progetto hostato e mantenuto dalla Wikimedia Foundation. Questo documento riguarda le richieste iniziale per l'avvio e lo sviluppo del progetto, e discute le ramificazioni di lungo corso.

Questo documento individua un approccio in tre fasi allo sviluppo iniziale:

  • la prima fase (link interwiki) creerà una base di entità per i progetti Wikimedia. Questo fornirà un alternativa al sistema attualmente in uso dei collegamenti di lingua, che saranno già linkati in Wikipedia.
  • la seconda fase (infobox) raccoglierà i dati relativi agli infobox per un sottoinsieme di entità, con l'obiettivo specifico di accrescere le funzionalità degli infobox, che sono già molto usati, con i dati provenienti da data.wikimedia.org
  • la terza fase (liste) espanderà l'insieme delle proprietà oltre a quelle legate agli infobox, e fornirà modi di sfruttare questi dati dentro e fuori dai progetti Wikimedia.

Nelle sezioni seguenti ogni fase sarà discussa in dettaglio, cercando di dare una presentazione generale della fase; dei requisiti che devono essere implementati da ciascuna e perché; di quali sono le sfide presentate da ogni fase rispetto alle necessità tecniche, organizzative e delle comunità; le "milestone" per la completa realizzazione di ciascuna fase; una lista di cosa non sarà fatto dal progetto e perché; e una lista di richieste facltative che possono essere aggiunte dal progetto.

Le tre fasi non significano che ci saranno solo tre rilasci del codice, o aggiornamenti di versione. Seguiremo il credo del rilascia presto, rilascia spesso (in inglese: release early, release often), che ci permetterà di reagire prontamente al feedback degli utenti e di migliorare continuamente il sistema.

Fase 1: link interwiki[edit]

Wikidata è stato lanciato con il suo indirizzo definitivo, sin dalla fase 1. Il wiki avrà una pagina per ogni oggetto descritto in una voce in una delle edizioni linguistiche di Wikipedia. Questa pagina conterrà le seguenti informazioni:

  • collegamenti alle voci nelle diverse edizioni linguistiche di Wikipedia che descrivano l'oggetto della data pagina. Ogni Wikipedia conterrà una sola voce di questo tipo.
  • Etichette e brevi descrizioni per ogni oggetto. Ci sarà una etichetta ed una breve descrizione per ogni lingua supportata.
  • Alias per ogni oggetto. Sarà possibile avere numerosi alias per ogni oggetto in ogni lingua supportata.

I dati saranno esportati in diversi formati, in particolare RDF, SKOS e JSON. Wikidata fornirà anche una API per modificarne il contenuto.

Il sorgente del wiki non sarà modificabile come testo, ma solo attraverso specifiche chiamate alla succitata API come ad esempio "Aggiunti fonti" o "Rimuovi etichetta". Wikidata fornirà una o più interefacce utente alla sua API. Dato che Wikidata non fornirà le intere voci di Wikipedia ma solamente il contenuto in termini di dati, non è necessario avere sfruttare tutte le piene capacità del wikitesto qui. Sarà ridefinita per le pagine una sintassi più sensata in cui il candidato più probabile è il JSON. L'informazione sarà salvata usando direttamente un backend di immagazzinamento dei dati che sia adatto a dati strutturati. Nel lungo periodo, valuteremo la possibilità di rimuovere completamente il salvataggio dei dati in formato testuale.

Il progetto implementerà una estensione MediaWiki da usare nelle varie Wikipedie che permetterà di fare delle interrogazioni a Wikidata in modo da ottenere i link interwiki invece di usare dei link interwiki definiti localmente. Questo richiederà un back-end che scali ai requisiti di Wikipedia e necessiterà di un'attenta considerazione su come gestire il caching, ossia all'interno di ogni Wikipedia, in Wikidata o in entrambi.

Requisiti tecnici e motivazione[edit]

I seguenti requisiti dovranno essere implementati in questa fase:

  • Esterndere MediaWiki per permettere tipi di contenuto ulteriori oltre alla sintassi Wiki di MediaWiki - in particolare il JSON, in modo da serializzare i dati per l'uso interno. Questo ci permetterà di continuare ad usare gli strumenti basati su MediaWiki usati dalla Wikimedia Foundation nella sua infrastruttura tecnica, in particolare per il backup, il recupero e la manutenzione dei servizi. Questo requisito includerà il parsing del contenuto JSON ed il suo salvataggio nel backend fornito dal punto P1.2.
  • P1.2. Implementare un backend, dove i dati siano salvati. Anche se il backend standard basato su Semantic MediaWiki può essere usato per la prototipazione, il rilascio richiederà nuove implementazioni per il tipo di dati raccolti nella fase 1.
  • P1.3. Definire ed implementare la API di Wikidata per la modifica e l'accesso ai dati. Questa API necessiterà di essere sufficientemente documentata in modo tale che terze parti possano costruire applicazioni a partire da essa. Questo non è atteso per la fase 1. Shortipedia fornisce un esempio funzionante di come potrebbe essere la API di Wikidata
  • P1.4. Implementare e testare delle interfacce utente costruite sull'API di Wikidata. Si noti che le interfacce utente saranno tutte completamente internazionalizzate e parzialmente localizzate. Quest'obiettivo verrà raggiunto attraverso la cooperazione con Translatewiki per la localizzazione. Le interfacce utente (UI, dall'inglese user interfaces) dovranno funzionare su tutti i browser sui quali funziona Wikipedia, essere accessibili e dare la possibilità di rinominare, unire e dividere degli elementi.

Il sito di Wikidata dovrebbe fornire le seguenti interfacce utente:

    • un'interfaccia semplice in formato HTML che non dovrà necessitare di JavaScript per funzionare
    • un client completo basato sull'HTML5 r JavaScript per browser moderni.
  • P1.5. Implementare un algoritmo di ritrovamento e visualizzazione delle diff che sia ottimizzato per Wikidata. Seppure un diff semplicemente basato sulla serializzazione di ogni elemento nel formato JSON prescelto non sarebbe sbagliato, dovremmo sfruttare la semanticità dei dati per fornire delle diff molto più intelligenti.
  • P1.6. Implementare una API e un widget riutilizzabile che permetta la selzione di un oggetto dall'insieme delle entità. Il widget dovrebbe fornire anche una funzione di autocompletamento dove sia utile, e dovrebbe funzionare senza difficoltà sui dispositivi mobili. Widget simili possono essere visti su Freebase suggest e sul selettore di entità di Shortipedia.
  • P1.7. Implementare una estensione che interroghi i dati di Wikidata per ottenere i link interwiki rilevanti e li visualizzi sulla pagina delle voce cui si riferiscono. Per evitare di distruggere l'uso attuale dei link interwiki, e per gestire alcune peculiarità e casi particolare, una magic word sarà definita per decidere se una data voce debba usare gli attuali link interwiki, definiti localmente, o quelli nuovi globalmente definiti. La visualizzazione conterrà anche un link di modifica che permetta di modificare direttamente su Wikidata i link interwiki.
  • P1.8. Implementare, realizzare e testare un appropriato meccanismo di caching e un'onrastruttura per il flusso dei dati che scali con il numero di richieste da Wikipedia senza sacrificare l'aggiornamento dei link interwiki.

Milestone[edit]

L'infrastruttura per rimpiazzare i link interwiki locali con i lin interwiki globali è attivata e diverse Wikipedia usano l'estensione che permette ai loro contributori di rimpiazzare gli interwiki locali attraverso una magic word con il sistema basato su Wikidata. Wikidata è lanciato sulla sua url finale.

Questo ridurrà in maniera considerevole lo sforzo di manitenzione dei link interwiki nelle varie versioni di Wikipedia e fornirà un database di oggetti supportato da Wikimedia. Si noti che questa milestone non è bloccante in quanto la fase due può essere iniziata prima del lancio di Wikidata stesso.

Esclusioni dal progetto[edit]

Il progetto non punta a coinvolgere un grande numero di contributori durante il lancio della Fase 1: piuttost, ci aspettiamo un gruppo piccolo, attivo e comunicativo. Per questo non è necessario, durante questa fase, che ci sia una conoscenza e consapevolezza diffusa circa Wikidata nelle comunità di Wikipedia.

Questo progetto non punta a creare un allineamento automatico tra le voci; né le raccoglierà automaticamente dalle varie Wikipedias; questo compito sarà lasciato alle varie comunità. Le comunità sono già attive nell'utilizzo dei bot per la sincronizzazione dei link interwiki, e noi offriremo aiuto per fare in modo che i loro framework per i bot continuino a funzionare senza problemi anche con Wikidata. Il progetto non punta a fornire il contenuto, ma meramente a provvedere l'infrastruttura tecnica per fare in modo che le comunità possa creare i contenuti che desiderano.

Estensioni opzionali alla fase 1[edit]

  • O1.1. Una terza parte sviluppa un'interfaccia utente seguendo la documentazione dell'API di Wikidata. L'interfaccia dimostra che la documentazione è sufficiente e che una moltitudine di interfacce possono essere costruite "sopra" Wikidata.
  • O1.2. Fornire uno strumento esterno che colleghi gli interwiki in modo che i contributori possano facilmente allineare gli interwiki. Il sistema raccoglie i link interwiki dalle varie Wikipedia, controlla il loro allineamento e fornisce un'interfaccia che permetta semplicemente di (1) rimuovere i link interwiki dalle singole voci (ii) rimpiazzarli con la "magic word" opportuna (iii) aggiunga i link a Wikidata. Anche se le modifiche sono fatte automaticamente, il via ad ogni singola modifica deve essere dato con un intervento umano.
  • O1.3. Estendere il sistema per immagazzinare identificativi esterni contenuti in altre raccolte di dati, come le URI della Linked Open Data Cloud, codici ISBN, identificativi IMDB, l'identificativo Eurostat, standard e PID. Ci si aspetta che questo aumenterà drammaticamente il supporto da parte di fornitori di dati esterni.
  • O1.4. [dipende da O1.3] Fornire uno strumento esterno per trovare gli allineamenti che possono essere salvati automaticamente attraverso O1.3; l'allineamento vero e proprio deve essere confermato da un contributore umano.