掲示板

Import file XML

thumbnail
8年前 に stefano bortolato によって更新されました。

Import file XML

New Member 投稿: 15 参加年月日: 15/02/18 最新の投稿
Salve.
Ho bisogno di un aiuto per una installazione che sto studiando per un archivio storico. Una gran parte dei documenti sono codificati in file in formato TEI (www.tei-c.org), un formato XML.

Come posso importare in LifeRay questi file e poterli vedere come fossero HTML, ODT, DOCX e poterli crecare e "vederli"?

Da quello che ho capito per l'archivistica dovrei usare file XML "Dublin core". In particolare il formato TEI. Al momento i file pronti hanno solo testo. Continuando il lavoro i file saranno composti da testo e immagini.
Quando arriverò a questo punto come posso importare XML+immagini, vederli come file singoli, poterli cerca e "vederli"?

Ho fatto dei test con la portlet "Documenti e Media". E' buona, ma se importo file TEI/XML li interpreta come file ti testo.
Ho pensato di usare il CMS o il Wiki o la Knoldge base, ma l'import dei documenti è molto laboraosia e non mi permette di conservare i metadati archivistici. I documenti da importare sono alcune centinaia di migliaia... Inoltre dei testi da inserire sono pubblicazioni fatte dall'archivio e sono diponibili come file PDF.

Ringrazio anticipatamente per ogni aiuto e/o consiglio.
thumbnail
8年前 に Jader Francia によって更新されました。

RE: Import file XML

Junior Member 投稿: 65 参加年月日: 10/01/31 最新の投稿
Ciao Stefano!
Da quello che capisco tu vorresti fare differenti cose; nel dettaglio:
- importare i file in formato TEI e conservarli così come sono
- trasformare i TEI per una rapida consultazione online (html / pdf)
- indicizzare e ricercare questi contenuti nella maniera più semplice

Se non ho capito male, cercando di farti fare "meno lavoro possibile", io ti suggerirei questo:
- utilizzare la Document & Media Library per conservare direttamente gli XML in formato TEI e i relativi PDF generati
- utilizzare dei Web Content strutturati ad hoc per visualizzare il formato html
- se fai quanto sopra, l'indicizzazione ti viene "gratis" perché sia la D&M che i WC utilizzano gli indici in maniera diretta.

Come fare per salvare i documenti nei vari sistemi? Ottima domanda! emoticon
Qui bisogna capire quanta dimestichezza hai tu con lo sviluppo -o quanto tempo vuoi usare per fare questa cosa-. La soluzione più semplice (anche guardando la documentazione presente sul sito di TEI) è che tu, attraverso delle trasformate XSLT converta i documenti nei formati necessari ai tuoi scopi (ovvero XML per i Web Content e PDF per la Document & Media).

Per la parte PDF ci sono già pronti degli XSLT sul sito di TEI (mi pare però che vadano adattati, ma spero che per te non sia un problema); qui trovi una suite basata su script bash e ANT per creare i vari file: https://github.com/TEIC/Stylesheets/tree/dev/bin

Una volta eseguita la trasformazione, prendi i PDF e i TEI e li carichi (anche massivamente via webdav o interfaccia grafica) in una struttura di cartelle che ritieni più utile. Il vantaggio di questa operazione sarà di indicizzare i documenti (entrambe i formati) e poi renderli disponibile per la ricerca attraverso gli indici che saranno generati dalla Document & Media.
Facendo questa cosa avrai questi benefici:
- i "metadati" di cui parli saranno auspicabilmente salvati estrapolandoli direttamente dai file PDF
- per ogni PDF saranno generate delle PNG che potrai utilizzare all'interno del portale per vedere il PDF senza doverlo scaricare (questo ti viene gratis e, a mio avviso, ti potrebbe essere molto comodo)

Sulla parte di HTML la cosa si complica un pochino; abbiamo due strade per procedere:
1) livello di difficoltà medio, un po' più sporca ma funzionale: generi i file HTML con gli strumenti che hai usato sopra (ci sono già i convertitori da TEI a HTML nel link che ti ho dato sopra) e poi trascini anche questi all'interno della Document & Media; per la loro parte di presentazione sviluppi una portlet che si interfaccia con la Document & Media e ti permette di vedere questi file già renderizzati in HTML (in pratica fai una portlet che naviga le cartelle della D&M e quando trova un file .html lo "stampa" nella pagina così da vederlo direttamente renderizzato

2) livello di difficoltà alto, molto pulito ed elegante ma sicuramente painfull per la parte di realizzazione: trasformi (con dei fogli di stile XSLT che ti dovresti fare a mano) i tuoi documenti TEI nel formato XML dei Web Content (la cosa qui si complica perché dovresti fare reverse engineering di come sono fatti questi XML in Liferay, però si riesce a fare in maniera abbastanza semplice -se interessa ti scrivo come procedere-) e poi li inserisci all'interno dei Web Content.
Una volta fatto questo, per ogni tipo di documento crei dei template di visualizzazione che "impaginano" il contenuto. Finito di fare questo puoi pubblicare, attraverso la portlet Web Content Display il risultato del tuo lavoro direttamente a video.

Vantaggi della soluzione 1 vs soluzione 2
+ sicuramente molto più semplice da realizzare (anche sviluppando la portlet), perché giocare con i Web Content via codice, se non conosci come funzionano, potrebbe essere molto complicato
+ sicuramente si manutiene meglio (non hai modo di editare i contenuti dei tuoi TEI e i file PFD / HTML che generi sono "statici", però il giro è funzionale al tuo risultato e lo ottieni molto in fretta)
- non puoi editare i tuoi TEI / HTML / PDF

Vantaggi della soluzione 2 vs soluzione 1
+ i file che converti (solo la loro versione all'interno dei Web Content) saranno editabili con gli strumenti del CMS di Liferay (anche se questa la vedo mooolto difficile da realizzare perché se ho capito bene questi TEI rappresentano interi libri, quindi "aprire" in edit uno di questi caricherebbe una form un filino aggressiva dal punto di vista dei campi da gestire / mostrare.. ;))
+ potrai creare più template di visualizzazione a seconda delle necessità di impaginazione che hai
+ tutto questo sarà utilizzabile in formato lista / dettaglio attraverso l'asset publisher, il che ti consentirà di fare delle "pagine" di raccolta che mostrano un "dettaglio" generato automaticamente (qui hai anche il vantaggio indiretto delle friendly url automatiche e delle feature SEO un po' evolute; anche di questo posso fornire maggiori dettagli se ti interessano)
- complessità di realizzazione
- devi imparare come sono fatti gli XML dei Web Content, devi imparare un altro formato di impaginazione (ad esempio Velocity o FreeMarker), devi crearti a mano i tuoi XSLT per creare gli XML dei Web Content

Per dover di cronaca preciso che sia soluzione 1 che soluzione 2 permettono di storicizzare in automatico i file (versionamento): questo significa che se fai una modifica a un file TEI / PDF / HTML e lo ricarichi "sopra" a quello già presente nel sistema Liferay in automatico ti tiene traccia anche delle versioni precedenti.
Questo non so quanto possa valere per te ma siccome è gratis mi piaceva l'idea di fartelo notare! ;)

Concludo dicendo che, allo stato attuale dei fatti, queste sono le prime idee che mi sono venute in mente; se mi fai avere un po' più di specifiche o mi racconti un po' di te e delle skill che hai (sulla programmazione in generale, su Liferay ti posso aiutare io ;)) posso vedere di essere anche un po' più specifico! emoticon

Spero che questo ti possa dare un indirizzo ed esserti d'aiuto; se ti occorre altro, come sempre, sono qui! ;)

Buona giornata, ciao, J.
thumbnail
8年前 に stefano bortolato によって更新されました。

RE: Import file XML

New Member 投稿: 15 参加年月日: 15/02/18 最新の投稿
Grazie Jader.
Ho capito. Ora ci devo studiare sopra e... poi tornerò a bussare a questo portale.

Intanto approffitto per verificare quello che ho capito che si può fare con questo fantastico Liferay (nota: non ho ancora letto tutto il manuale).
I documenti da inserire sono file video, audio, diverse immagini (quasi tutte tiff), file PDF e una infinità di file DOC/TEI. I TEI sono tutti il risultato di migrazioni dagli originali DOC/RTF.
Studiando LifeRay, per quello che ho imparato fino ad ora, immaginavo di usare la "Document & Media Library" per tutti questi documenti. Nel pilot su cui sto lavorando, con questa ipotesi, ho visto i seguenti punti a favore:
- import dei documenti facile e veloce (soprattutto per il personale dell'archivio)
- estrazione dei testi e indicizzazione automatica
- possibilità di associare metadati specifici conformi alla classificazione fatta dall'archivio
- creazione atomatica di anteprime
- consultazoine dei contenuti come immagini (uno dei requisi è di limitare al massimo la copia dei contenuti. La conversione fatta da Liferay permette di soddisfare bene al requisito).

Dopo questa esplorazione ho immaginato di usare la "Document & Media Library" come ambiente principale per la consultazione e l'inserimento dei documenti. Inoltre aggiungendo la portlet "enhanced meta-search" (disponibile nel marketplace) mi permette ai avere dei filtri nella ricerca conformi alla classificazione fatta dall'archivio (altro requisito da soddisfare). Inoltre il sistema dei Permessi permette di gestire accessi e permessi come posto nei requisiti di committenza.

Fino a qui le mie ipotesi sono corrette?

Ora qui, da quello che mi hai detto, per avere gli strssi vantaggi con i file TEI devo sviluppare un pezzettino nuovo per Liferay. (pregusto già l'avventuare per qualcosa di nuovo :-) ).
Con i file TEI, nel prossimo futuro, avrò la situazione di un file XML ed n° file di immagini. In questo caso con la "Document & Media Library" saranno visibili tutti i file (ma, se non ho capito male, con lo sviluppo custom potrebbe diventare visibile solo il file principale xml). Le persone che aggiorneranno e inseriranno i contenuti non sono informatici e vorrei offrirgli uno strumento semplice e intuitivo. Quindi imagino che la cosa più semplice è che abbiano un solo file per documento da inserier/aggiornare.
Per il file "unico" sto pensando di usare OpenOffice/LiberOffice mantenendo la stessa architettura: file unico zippato, contenente le immagini, i file xml, rdf, ecc... (anche qui c'è dello sviluppo. Da quanto ho capito dovrebbe essere sufficente creare un filtro partendo dal pacchetto fornito dal consorzio TEI :-) ).
A questo punto dovrei svilupare un pezzo della "Document & Media Library" per fargli leggere questi nuovi file. Ipotizzo che potrei prendere spunto dal codice che interpreta i file ODT fornendogli le strutture TEI.

Riguardo a questa seconda parte può funzionare?

Un'ultimo problema che sto studiando è l'automazione dell'import dei meta-dati TEI (es. titolo, data, autore, natura del documento, collocazione, ecc....).
L'ipotesi che sto considerando è di creare i "Tipi Documenti", con tutti i relativi campi, conformi ai metadati TEI. Successivamente immagino di dover svilupare il codice che legge i file TEI in modo che, trovati questi metadati, li inserista nel corretto "Tipo Documento".

Riguardo a questa ultim aparte può funzionare?

Per dare una idea delle dimensioni del lavor in questo momento sono disponibiil informato elettronico circa 30.500 documenti. Considerando che l'acquisizione fotografica degli originali è , al momento, inferiore all'1%....

Grazie infite (soprattutto per aver letto questo poema!). Ma un ocnfronto con chi conosce bene Liferay mi è indispensabile visto che lo conosco poco. Per il mio personale giudizio, comunque, fatto il confronto cno gli altri prodotti simili che conosco Liferay è veramente una potenza.

Un saluto e ancora grazie.
thumbnail
8年前 に Jader Francia によって更新されました。

RE: Import file XML

Junior Member 投稿: 65 参加年月日: 10/01/31 最新の投稿
Ciao Stefano!
Allora, rispondo citando implicitamente il primo, secondo e terzo requisito che censisci nel tuo post! emoticon

Allora, risposta alla prima ipotesi e' si: tutto corretto! Onestamente non conosco il portlet "enhanced meta-search", pero' mi hai risvegliato la curiosità e presto me lo guarderò! ;)

Per quanto riguarda la seconda parte invece ho un po' di perplessità. La D&M può indicizzare e salvare i singoli file, nel caso però che tu carichi un file zip avresti il problema che non indicizzeresti e archivieresti i contenuti dello zip ma solo il file zip stesso. Quindi forse questo è funzionalmente sbagliato rispetto a quanto ti occorre.
Cosa diversa, invece, se tu facessi un tuo portlet che, una volta uploadato lo ZIP, prende i singoli pezzi (il TEI, le immagini, etc.) e le "ricompone" in un oggetto che poi indicizza e che poi archivia -ma qui "spacchettando" il contenuto dello zip e salvando le meta informazioni- all'interno della D&M.
Questo lo vedo molto più fattibile; se ti interessa come procedere, sul nostro blog trovi già dei semilavorati che ti potrebbero tornare comodo, come ad esempio come leggere uno zip o come scrivere una portlet! Il link è questo, nel caso ti servisse: http://blog.d-vel.com/

Il terzo quesito, infine, è a mio avviso correlato al secondo: i metadati, infatti, potresti aggiornarli o contestualmente alla creazione dell'oggetto sopra indicato (magari prevedendo un tuo formato proprietario di XML da includere oppure "leggendo" opportunamente i file TEI) oppure con un tool a parte, nel quale carichi il file con le meta informazioni e poi lanciandone una reindicizzazione.

Venendo un po' più al pratico emoticon, visto che non ti sei tirato indietro sul poema precedente emoticon, ecco qualche topic che dovresti affrontare per chiudere il cerchio! emoticon

-> Service Builder: per capire come creare tue tabelle applicative sulle quali salvare eventualmente tuoi dati custom (non è necessario che tu utilizzi sempre e solo la D&M, quello è anche un framework quindi puoi fare dei tuoi oggetti che la usano magari solo per archiviare i file elettronici -noi facciamo sempre così, ad esempio! emoticon-
-> Indexer: è l'oggetto ponte tra gli oggetti di dominio (custom o di portale, come ad esempio la D&M), con l'indice di Lucene che è il vero motore di ricerca.
Di questo potrebbe interessarti come funziona sulle entità custom ma anche in modalità Hook; se controlli, infatti, c'è un particolare hook che ti permette di fare dei PostIndexer: degli oggetti che hanno la possibilità di intervenire per arricchire a posteriori l'indice di portale.
-> SAXReaderUtil: l'oggetto di utilità che ti trasforma automagicamente la String xml in un simpatico DOM ad oggetti per farci sopra query XPATH
-> Specifica JSR168 / JSR286 che, se ancora non hai letto, ti consiglio vivamente: sono di fatto la specifica delle portlet che ti spiega come fare a farne una tua! emoticon

Ciò detto, come sempre, sono a disposizione in caso tu avessi dubbi o problemi su quanto sopra! emoticon
Ci sentiamo presto, divertiti e spassatela emoticon, ciao, J.
thumbnail
8年前 に stefano bortolato によって更新されました。

RE: Import file XML

New Member 投稿: 15 参加年月日: 15/02/18 最新の投稿
Ciao Jader.
Grazie per il tuo aiuto, i consigli e le dritte.
Ora vado a studiare un po' e a saccheggiare il blog degli sviluppatori blog.d-vel.com che mi hai indicato.
Un saluto, un grazie ed un risentirci il prossimo anno ;)
thumbnail
8年前 に Daniele Baggio によって更新されました。

R: Import file XML

Expert 投稿: 336 参加年月日: 08/12/05 最新の投稿
Interessante il contesto e quanto hai scritto. Mi pare tutto fattibile con soddisfazione.
Tienici aggiornati.

@baxtheman



Sent from my Android device with Liferay.com Forums