[Liferay&SemanticWeb] La semantica in Liferay con SKOS e Stanbol

Il giorno 11 Giugno 2012 si è tenuto all’Università di Tor Vergata il roadshow di Liferay e faccio qui una sintesi sugli argomenti trattati all’incontro, estratti dal materiale messo online sul portale della didattica di Tor Vergata:

[Materiale Didattico – Roadshow di Liferay – Università di Tor Vergata (Portale della Didattica)]

NOTA. Il materiale viene distribuito nel rispetto delle licenze Creative Commons e citando la fonte e gli autori.

Caratteristiche di Liferay Portal 6. Per quanto riguarda le caratteristiche di Liferay (versione 6), non volendo essere troppo prolissi, possiamo subito rispondere alla domanda sul perché conviene utilizzarlo. Innanzitutto perché è un progetto open-source, che consente un notevole risparmio in termini economici e tempi ristretti per l’installazione e la configurazione di una architettura Portal di tipo Enterprise.

Allo stato attuale, sono stati effettuati circa 6 milioni di download dei Liferay e il numero è destinato a crescere. Grazie ai connettori standard di cui Liferay è fornito, è possibile integrare il Portal con sorgenti esterne eterogenee, dai social network come (Facebook, Twitter e tanti altri che aderiscono allo standard Open Social) a sistemi legacy, repositories esterne e content store (tramite SOAP, Web Services, strumenti di Enterprise Integrations o servizi REST). Inoltre, può essere depiloyato sui maggior web containers diffusi nell’ambito J2EE (JBoss, Tomcat, ad esempio), si connette con i database più diffusi (come MySQL, PostGRESql, Oracle, ecc) e, grazie alla JVM, si può configurare su vari sistemi operativi.

Tra gli Enterprise Portal, secondo Gartner, Liferay si colloca al terzo posto con il 47%, dietro colossi commerciali come Oracle e Microsoft e collocato nel primo quadrante (Leaders e Visionaries) degli Horizontal Portal:  http://blogs.perficient.com/portals/2011/10/31/gartner-magic-quadrant-for-horizontal-portals-2011/

In Italia esistono già molti centri di competenza (localizzati prevalentemente al nord e qui a Roma), che creano quello che è detto Liferay Italian Partner Ecosystem.

Ma come meglio si adatta Liferay? Si può utilizzare per vari scopi:

  • piattaforma per la gestione di siti
  • sistema di gestione documentale
  • sistema per la gestione di contenuti web
  • piattaforma di produttività aziendale
  • piattaforma di sviluppo, integrazione e deploy

Inoltre, sono disponibili strumenti di social collaboration (per aumentare la produttività), che consentono ad un team di cooperare alla stesura di documenti condivisi, formare veri e proprio gruppi di progetto e condividere agevolmente documentazione e informazioni di lavoro.

Caratteristica importante è quella del supporto nativo migliorato per i dispositivi mobile, con un layout grafico che si adatta alle dimensioni dei dispositivi, tramite riconoscimento WURFL.

Altre caratteristiche avanzate di Liferay e nuove funzionalità introdutte nella versione 6, le potete leggere direttamente dalle slide del ROADSHOW. [ROADSHOW_LIFERAY_11062012 – Slides]

Continua la lettura

[SemanticWeb] Liferay RoadShow a Roma: Liferay nel contesto web semantico

Vi segnalo l’incontro a Roma per il prossimo 11 Giugno 2012LIFERAY ROADSHOW ROMA, in cui si parlerà dell’ Integrazione di Liferay con la piattaforma Apache Stanbol per la gestione semantica dei contenuti.

L’evento di Roma sarà caratterizzato dall’utilizzo della piattaforma Liferay in un contesto web semantico.

DOVE? Università di Tor Vergata
Sala Congressi Facoltà di Ingegneria
Via del Politecnico, 1
00133 Roma

QUANDO? 11 GIUGNO 2012 – ore 14,00 – 17,30

 

 

 

Programma

14:00-14:30 Registrazione partecipanti
14:30-15:00 Presentazione Liferay e nuova piattaforma 6.1
15:00-15:30 Introduzione al Web Semantico [Etcware Srl]
15:30-16:00 Liferay e SKOSware, integrazione con prodotto per la gestione di tesauri SKOS, ricerca e navigazione
16:30-17:00 Case Study [Etcware S.r.l.]
17:00-17:30 Integrazione di Liferay con la piattaforma Apache Stanbol per la gestione semantica dei contenuti. [Etcware S.r.l.]

INFORMAZIONI: Per partecipare all’evento, totalmente gratuito, é richiesta la registrazione tramite il portale Liferay. Per maggiori informazioni contattate ufficio.marketing@smc.it

SITO DELL’EVENTOhttp://www.smc.it/liferay-roadshow-roma

[SemanticWeb] Apache Stanbol: la semantica nei content management systems

Apache Stanbol è un progetto open-source che fornisce uno stack software modulare e un set di componenti riusabili per la gestione semantica dei contenuti.
L’iniziativa è dell’European R&D project IKS (Interactive Knowledge Stack for small to medium CMS providers). La “mission” di IKS è quella di portare le tecnologie semantiche come componenti open-source integrate nei piccoli e medi CMS provider. Infatti, abbiamo applicazioni di tale tecnologia in Alfresco e Liferay.

Apache Stanbol automatizza l’identificazione (detection) delle “named entities” (persone, luoghi e organizzazioni, nonchè link verso risorse esterne, come DBpedia). Il processo di estrazione di queste informazioni (detto di “enhancement“) è ad uno stato abbastanza maturo, infatti le sue caratteristiche di base sono già impiegate dai CMS più utilizzati allo stato attuale (Liferay e Alfresco, come già detto in precedenza).

I componenti di Apache Stanbol sono accessibili tramite interfacce RESTFul e mettono a disposizione servizi semantici per gestire i contenuti. E’ possibile estendere i sistemi tradizionali di content management (CMS) con questi servizi semantici (interni ed esterni). Il core di Stanbol è scritto in Java e si basa sul component framework OSGi.

Le principali caratteristiche di Stanbol sono:

  • Arricchimento semantico dei contenuti: i servizi di Stanbol aggiungono informazioni semantiche a parti di contenuto “non semantico”
  • Reasoning: i servizi sono capaci di ritrovare informazioni semantiche nel contenuto
  • Knowledge Models: i servizi vengono utilizzati per definire e manipolare i data model (ad esempio, le ontologie) che sono usati per memorizzare le informazioni semantiche

Le caratteristiche messe a disposizione da Apache Stanbol sono accessibili, direttamente dai CMS, con interfacce utente avanzate.
La demo online (di base) è disponibile a questo link: http://stanbol.demo.nuxeo.com/

Documentazione di Apache Stanbol: http://incubator.apache.org/stanbol/docs/trunk/index.html

Integrazione di Apache Stanbol con un CMS. Basta connettere il proprio CMS via HTTP ad una istanza di Apache Stanbol, oppure usando un CMS adapter component che faccia da bridge tra un CMIS/JCR compliant content repositories e il repository di metadati semantici presente in Apache Stanbol.

Ecco i vari servizi offerti da Stanbol ai CMS che lo integrano:

  • Basic Content Enhancement: analisi testuale dei contenuti, con estrazione delle named entities (person, place, organization), link suggeriti verso sorgenti open-data
  • Definizione di “local” entities: uso di entità “locali” (come Thesaurus) per rappresentare il contesto di una organizzazione (grazie al suo componente Entityhub). Questo aspetto è particolarmente importante poichè i servizi potrebbero non essere necessariamente esternalizzati su Internet, ma l’organizzazione potrebbe impiegarli nella propria rete aziendale
  • Supporto multilingue: la ricerca testuale del contenuto avviene in più lingue (EN, DE, SV, DA, PT e NL)
  • Ricerca semantica nel Portale: memorizza e indicizza gli item dei contenuti, migliorando la ricerca semantica nell’applicazione
  • Refactoring Enhancements for SEO: “refactor” dei risultati estratti, collegandoli alla propria ontologia
  • Trasformazione della struttura del repository del CMS in vere e proprie ontologie
  • Inserimento di altre repository come thesaurus o ontologie di dominio

Apache Stanbol usa una interfaccia stateless per permettere agli utenti di inviare contenuto agli Enhancement Engines (i motori di cui è composto Stanbol e ottenere risultati (enhancements) in formato RDF (Resource Definition Framework), senza memorizzare nulla sul server.

Inoltre, mette a disposizione un meccanismo per lavorare con vocabolari in linguaggi standard come dataset codificati in SKOS (Simple Knowledge Organization Systems) o RDF. Il componente Entityhub di Stanbol crea e gestisce gli indici estratti da questi dataset e i vari Enhancement Engines li usano durante il processo di “enhancement“.

Gli Enhancement Engines sono diversi e suddivisi in categorie (Preprocessing, Natural Language Processing, Linking Suggestions, PostProcessing/Other):

  • Preprocessing: Language Identification Engine, Tika Engine e Metaxa Engine (effettuano l’identificazione linguistica del contenuto testuale, l’estrazione di testo e metadati da vari formati documentali con Apache Tika)
  • Natural Language Processing: Named Entity Extraction Enhancement Engine (NLP processing con OpenNLP Engine e identificazione di persone, luoghi e organizzazioni), KeywordLinking Engine (NLP processing con OpenNLP, supporto multilingue, identificazione delle occorrenze di entità non tipate, come concetti, tassonomie locali, …)
  • Linking Suggestions: Named Entity Tagging Engine (suggerimenti di link da fonti dette Linked DataSources, come DBpedia), Geonames Enhancement Engine (suggerimento di link usando geonames.org e organizzazione gerarchica dei link per le locations), OpenCalais Enhancement Engine (integra servizi da Open Calais), Zemanta Enhancement Engine (integra i servizi di Zemanta)
  • Postprocessing/Other: CachingDereferencerEngine (deprecato, ma ritrova contenuti addizionali per la presentazione degli enhancement results), Refactor Engine (trasforma i risultati –enhancements– in accordo con l’ontologia target)

Le named entities estratte (persone, luoghi e organizzazioni) sono strutturate secondo un grafo RDF, particolarmente comodo per utilizzare le informazioni all’esterno del motore, per descrivere l’intera repository e ricercare i risultati.

 ————————————————————————

Appuntamento al LIFERAY ROADSHOW a ROMA:

Vi segnalo l’incontro a Roma per il prossimo 11 Giugno 2012: LIFERAY ROADSHOW ROMA, in cui si parlerà dell’ Integrazione di Liferay con la piattaforma Apache Stanbol per la gestione semantica dei contenuti.

DOVE? Università di Tor Vergata
Sala Congressi Facoltà di Ingegneria
Via del Politecnico, 1
00133 Roma

QUANDO? 11 GIUGNO 2012 – ore 14,00 – 17,30

INFORMAZIONI: Per partecipare all’evento, totalmente gratuito, é richiesta la registrazione tramite il portale Liferay. Per maggiori informazioni contattate ufficio.marketing@smc.it

————————————————————————

Articoli utili:

[Liferay5] Problema cancellazione utente/i da pannello di controllo

Mi è capitato un bug nella cancellazione degli utenti da pannello di controllo di Liferay. La versione incriminata è la 5.2.3. Il sistema ha creato in maniera errata alcuni account utente in fase di registrazione ed, evidentemente, alcune informazioni erano vitali per poter ricercare tali utenze da pannello di controllo, ed eseguire su di essi operazioni di modifica o cancellazione.

Probabilmente, il motivo di errata registrazione era dovuto ad una gestione non transazionale della creazione degli utenti in fase di autenticazione (è stata modificata la classe LoginUtil di Liferay, chiamando un WerbService per recuperare le informazioni di un utente registrato e memorizzando l’account sul db di Liferay, associandolo a gruppi e ruoli predefiniti).

Qualcosa in questi passi suddetti è andato storto, magari per un eccessivo carico di accessi al sistema. Fatto sta che alcuni account contenevano informazioni incomplete (utenze non associate a gruppi/ruoli, dettagli personali non aggiornati, … ) e non erano ricercabili dal quadro di controllo di Liferay e, dunque, nemmeno modificabili o cancellabili. Dopo averci sbattuto la testa e avendo provato diverse strade, la questione si è risolta con la soluzione che sto qui a dirvi, ossia con una cancellazione forzata con uno script SQL sulle tabelle di sistema di Liferay.

Da premettere che la cancellazione di questi account “corrotti” è stata necessaria per permettere a tali utenti di poter accedere al sistema con le proprie credenziali di posta. Liferay riconosce come già registrato al sistema un utente in base alla sua email (o screenName).

So che non è consigliabile mettere le mani sul db di Liferay, ma a mali estremi, estremi rimedi. Non potendo risolvere altrimenti (primo tentativo fatto con una portlet che richiamava le API di Liferay per la cancellazione di un utente – UserLocalServiceUtil.deleteUser(long idUser) – che ha funzionato solo per alcuni utenti), è stato indispensabile ed inevitabile cancellare con una query secca gli account corrotti.

Vi allego la procedura SQL creata (utilizzata su MySQL), che si può adattare anche ad altri DBMS. La soluzione è stata trovata nel forum di Liferay, di cui allego il link in fondo a questo articolo, ma modificando lo script SQL facendo delle cancellazioni puntuali sugli account corrotti e non sui record “orfani” che non trovano un riferimento (idUser) nella tabella User_. Usando, infatti, questa ultima soluzione (segnalata appunto nel post anzidetto), venivano cancellate una serie di informazioni vitali per il corretto funzionamento del sistema.

Ecco come si è proceduto per la cancellazione degli account utente “corrotti” dallo schema di Liferay, con una transazione SQL,:

  1. creazione di una tabella di appoggio (l’abbiamo chiamata USERS_TO_DELETE) in cui abbiamo elencato gli ID degli account da cancellare. Questi ID non sono altro che quelli che si recuperano dalla tabella User_ (colonna userID);
  2. creazione dello procedura SQL che elimina prima tutti record corrispondenti agli ID enumerati al punto 1 dalla tabella User_ e, successivamente, tutti i riferimenti agli stessi nelle altre tabelle di sistema di Liferay;
  3. Nello script SQL è stato mappato staticamente l’id di sistema del model “com.liferay.portal.model.User” (ID=10039 preso dalla tabella ClassName_);
  4. A questo punto, basta lanciare la procedura, a server spento!
  5. Dopo aver riavviato il server di Liferay, basta lanciare da pannello di amministrazione la funzionalità di svuotamento della cache del database (Quadro di controllo >> Gestione del server >> Svuota la cache del database).

Seguendo i precedenti passi, gli account che vogliamo eliminare, con tutte le informazioni correlate, vengono cancellati (in modo definitivo) dal sistema. Importante è l’operazione di svuotamento della cache del database, poiché mi è capitato di veder “magicamente” ricomparire un account cancellato!

Vi allego la procedura SQL e una serie di riferimenti usati per risolvere il problema.

Allegati

Procedura SQL Delete Users Liferay
Titolo: Procedura SQL Delete Users Liferay (0 click)
Etichetta:
Filename: procedure_delete_users_liferay.zip
Dimensione: 1 kB

Vi consiglio di leggere anche: