BEdita è un framework per creare applicazioni Web pensato per il Web2.0, che ambisce a diventare uno strumento di riferimento utile per il prossimo Web 3.0 e per il futuro Web Semantico.
Il software è stato sviluppato da due aziende italiane ChannelWeb S.r.l. e Chialab S.r.l., entrambe di Bologna, utilizzando uno stack di componenti basate unicamente su software libero (PHP5, CakePHP, Smarty, MySQL5, jQuery ).
Framework o CMS?
BEdita presenta molte analogie con i cosiddetti CMS (Content Management Systems) e spesso è presentato così per semplicità , ne rispetta infatti (almeno in parte) la definizione: a tool that enables technical and non technical staff to create, edit, manage and finally publish a variety of content (such as text, graphics, video, documents etc). Con la differenza che lato publishing non fornisce volutamente una soluzione di default finita e univoca. Il sistema è più correttamente un framework perché:
- è incompleto – non è uno software che da solo risolve un problema/bisogno di un utente; piuttosto è un potente strumento per [web]designer/[web]developer che vogliono creare applicazioni frontend;
- è utile in tutte le situazioni in cui debba costruire un’applicazione (frontend) dove è necessario gestire contenuti complessi e multimediali, e le loro relazioni semantiche; evita a un designer/developer di dover affrontare e risolvere tutte le tipiche problematiche correlate.
A livello architetturale gli elementi fondamentali del semantic framework sono due:
- un’applicazione Web di backend per la redazione dei contenuti e delle loro proprietà e relazioni semantiche, con un’interfaccia utente innovativa per l’ergonomia tramite l’associazione cromatica fra tipologie di oggetti, l’uso estensivo del drag’n’drop e altre tecniche AJAX;
- un API di frontend, servizi e specifiche per creare applicazioni frontend; con interfaccia Web in prima battuta, ma anche desktop/mobili sfruttando, per esempio, l’interfaccia nativa REST/XML.
L’applicazione backend è unica ed è la medesima per ogni installazione del sistema o istanza. Le applicazioni frontend sono costruite tramite una API ed ereditano dal core del sistema classi Model e business logic: possono essere poche linee di codice PHP o strutture più complesse. Questa separazione è una scelta fatta per ragioni di sicurezza, efficienza, scalabilità e per lasciare maggiore libertà possibile al lavoro del designer/developer.
Il fatto di avere un’unica applicazione di backend per molti frontend da la possibilità di realizzare più siti che condividano gli stessi oggetti con la conseguente trasversalità che questo comporta (la modifica di un contenuto che sta in frontend diversi impatta automaticamente su tutti questi). BEdita è stato progettato come un sistema ad oggetti: ogni tipo di contenuto dentro BEdita è un oggetto, che può essere taggato, categorizzato, tradotto, geolocalizzato; quindi non solo documenti, ma anche immagini, video, eventi, schede anagrafiche, gallerie multimediali, etc.
Inoltre tutti gli oggetti possono essere legati tra di loro tramite relazioni semantiche libere. Per ogni tipologia di oggetto è poi possibile definire proprietà custom per specificarne nuovi attributi permettendo personalizzazioni per le più svariate esigenze. Un sistema modulare con moduli per compiti specifici e per tipi di oggetto del sistema, una completa internazionalizzazione di interfaccia grafica e contenuti (tramite un apposito modulo di traduzione) unita alla possibilità di creare utenti e gruppi con permessi in lettura/scrittura ai singoli moduli, fa si che BEdita si adatti perfettamente a situazioni redazionali complesse in cui, per esempio, redattore e traduttore sono figure distinte con compiti diversi.
Maggiori informazioni sul sito web ufficiale del progetto.