italiano | english
blog

di Stefano Rosanelli, li 13 maggio 2009

BEdita, semantic content managment framework

Prima beta scaricabile del nostro progetto

Dopo due anni di duro lavoro (in collaborazione con Chialab) abbiamo finalmente pubblicato e rilascato la prima beta pubblica con licenza open source del progetto BEdita: un framework per creare applicazioni Web pensato per il Web2.0, che ambisce a diventare uno strumento di riferimento per il prossimo Web3.0 e per il futuro Web Semantico

La beta scaricabile la trovate su http://www.bedita.com/be-download

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.

Una buona definizione di framework software ci può aiutare a capire meglio: a framework is incomplete, though concrete, driving solution to recurring high-value problem. In questo senso BEdita è:

  1. incomplete – 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;
  2. driving solution to recurring high-value problem – è utile in tutte le situazioni in cui debba costruire un'applicazione (frontend) in cui è 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.

Architettura e principali features

A livello architetturale gli elementi fondamentali del semantic framework sono due:

  1. 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;
  2. 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 un'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.

Riassiumiamo di seguito le caratteristiche/features più interessanti del sistema nel suo complesso:

  • internazionalizzazione completa: gestione di contenuti e interfaccia utente in qualunque lingua (tutte le lingue definite dallo standard ISO-693-3 sono in teoria supportate) – lato UI è utilizzato il formato gettext, mentre per oggetti/contenuti è stata creata una struttura dati dedicata;
  • sistema a 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, newsletter...
  • estensione oggetti: possibilità di creare nuovi tipi di oggetti, possibilità di aggiungere proprietà custom tipizzate agli oggetti stessi;
  • modularità: moduli software specifici per task e tipi di contenuti differenti (cioè multimedia, events, news, administration, publishing, addressbook, newsletter,...)
  • posibilità di creare relazioni semantiche libere fra oggetti;
  • sistemi di autenticazione interno o esterno/pluggable tipo LDAP o OpenID;
  • gestione integrata di sistema di newsletter (modulo dedicato);
  • statistiche redazionali, integrazione di statistiche con sistemi come Google analytics, Piwik e log del web server (apache logs);
  • granularità di accesso: definizione dinamica di gruppi di utenti con accesso in lettura/scrittura ai singoli moduli software;
  • interfaccia XML/REST e JSON nativa per gli oggetti pubblicati;
  • ogni oggetto è identificato da un nome proprio alfanumerico detto nickname che può essere usato nelle URL e applicazioni frontend per referenziarlo; è l'equivalente semantico dell'ID;

 

[30]

Scrivi un commento

Nome
Email (non sarà pubblicata)
Sito Web

Trascrivi il testo che compare nell'immagine


Questo sito è gestito con Bedita 3 Questo sito è pubblicato con una licenza Creative Commons
Valid XHTML 4.01! Valid CSS