Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital...

72
Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform Seminario di Cultura Digitale 25 Maggio 2016 Angelo Mario Del Grosso, Istituto di Linguistica Computazionale “A. Zampolli” (ILC-CNR)

Transcript of Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital...

Page 1: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Modelli concettuali e architetture

Object-Oriented

per la progettazione e lo sviluppo di una

Digital Scholarly Platform

Seminario di Cultura Digitale

25 Maggio 2016

Angelo Mario Del Grosso, Istituto di Linguistica Computazionale “A. Zampolli” (ILC-CNR)

Page 2: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Di Cosa NON Parlerò

- Tecnologie Web: HTML, CSS, Javascript

- eXtensible Markup Language (XML)

- Text Encoding Initiative (TEI)

- Semantic Web e Ontologie

- Digital Scholarly Editing

- Natural Language Processing

- Trattamento automatico dei Corpora

- Dibattito sulla definizione delle Digital Humanities

- Digital Philology, Computational Philology, ePhilology

- Collaborative Philology vs Cooperative Philology

- Infrastrutture di Ricerca come Clarin, Dariah, etc.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 3: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Di Cosa Parlerò

- Introduzione e Motivazioni

- Digital Scholarly Platform

- Object-Oriented Design

- Object-Oriented Paradigm

- OOP & OOAD

- UML

- SOLID Principles

- Design Patterns

- Designing the Scholarly Platform

- Conceptual class models

- Scholarly API, Components and Modules

- Risultati

- Progetti e Iniziative in corso

- Saussure, G2A, Clavius, Talmud, Omega

- Conclusioni

- Bibliografia

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 4: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Linguistic Analysis and Parsing

Text Encoding and Digital Scholarly Editing Digital Resources and Digital Archives

Settori di ricerca di riferimento

Software Engineering and Software Development

Data Structures and Algorithms

Information Extraction and Classification

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

String Manipulation and Alignment

Image Processing

Linked Open Data and Semantic Web

Thesauri, Lexicons and Ontologies

InfoVis Semantic AnalysisIncontro tra

discipline computazionali,tecnologie informatiche e discipline

umanistiche

Page 5: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La rappresentazione formale e strutturata di varie tipologie di dati testuali, al fine di codificarli,

elaborarli, persisterli, indicizzarli, interpretarli, confrontarli e recuperarli, è stata ed è ancora una

sfida per l’applicazione di tecnologie digitali e computazionali nell’ambito degli studi umanistici.

Rappresentare ed elaborare documenti testuali

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 6: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

In ambito del textual scholarship è sentita l’esigenza di sviluppare sistemi che

consentano di:

➔ navigare in grandi archivi di testi e di immagini digitali

favorendo il ritrovamento di fenomeni testuali e

intertestuali (passi paralleli, citazioni esplicite o implicite);

➔ favorire il ritrovamento di errori e varianti testuali in

documenti che rappresentano la storia di una stessa opera

(es. copie di manoscritti con variazioni);

➔ consentire di produrre indici e concordanze sia del testo

che delle informazioni di contesto (es. apparato critico),

aumentando le possibilità di effettuare scelte editoriali

corrette;

➔ lavorare ad un testo in modo collaborativo da parte di una

molteplicità di utenti, anche con diverse specializzazioni

(filologi, linguisti, storici, filosofi, ecc.);

Il problema e le necessità degli studiosi del testo

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 7: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Proprietà fondamentali della risorsa testuale

Molteplicità

Proprietà legate alla rappresentazione digitale del

contenuto di un documento

Proprietà legate alla rappresentazione digitale del

documento

Supporto

Edizione

Interpretazione

Livello

Versione

Granularità

Posizione

Layer

Struttura

Semantica

Stile

Comportamento

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 8: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Sfide, motivazioni, obiettivi

Produzione e acquisizione di accurati e dettagliati oggetti testuali digitali

Sviluppo di robusti, efficienti e flessibili componenti software al fine di elaborare e manipolare le risorse testuali acquisite

Integrazione dei dati e dei servizi in una piattaforma di ricerca

Generalizzare i problemi degli studi letterari all’interno del mondo digitale attraverso un processo di analisi del dominio e la definizione di specifiche funzionalità

Modellare la rappresentazione digitale delle fonti testuali attraverso l’uso di diagrammi semi-formali e attraverso la definizione di tipi di dato astratti

Sviluppare tecnologia basata su appropriate strutture dati,algoritmi, APIs, Abstract Data Type

Disporre liberamente dei dati e del codice sorgente degli artefatti (Open Source)

Sviluppare strumenti basati su componenti riusabili (Librerie)

Collaborare direttamente con la comunità di riferimento sia per quanto riguarda l’acquisizione e l’arricchimento dei dati testuali, sia per quanto riguarda lo sviluppo del software

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 9: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Introduzione e Motivazioni

Gli strumenti disponibili per lo studio scientifico

dei documenti testuali generalmente sono

sviluppati senza considerare i metodi e i principi

legati alla progettazione orientata agli oggetti

L’impiego di criteri di progettazione software

orientati agli oggetti consente di implementare una

robusta e flessibile piattaforma costituita da vari

moduli specializzati - indipendenti, ma cooperanti

- in grado di soddisfare efficacemente ed

efficientemente le complesse esigenze degli

studiosi. La progettazione e lo sviluppo di applicazioni

software per lo studio dei testi non si limita a

trasformare una sequenza di operazioni definite

tramite una descrizione informale verso una

sequenza di operazioni descritte formalmente e che

possono quindi essere eseguite dal calcolatore, ma

deve necessariamente prevedere una organizzazione

più complessa tra i vari attori in gioco e la

definizione di Tipi di Dato Astratti (ADTs).

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 10: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Progettare e Sviluppare Servizi e Componenti software per una

piattaforma orientata allo studio scientifico del testo

Progettare una piattaforma web per l’analisi scientifica dei testi è una attività complessa in

quanto le scelte progettuali sono numerose e spesso devono essere fatte avendo a

disposizione informazioni incomplete, anche discordanti e con requisiti molto esigenti

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 11: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

- Paradigma Object-Oriented

- Incapsulamento

- Astrazione

- Ereditarietà

- Polimorfismo

- Unified Modeling Language (UML)

- Diagrammi per la progettazione

Caratteristiche principali della metodologia

- Principi di Base (SOLID Principles)

- Single Responsibility Principle

- Open/Closed Principle

- Liskov Substitution Principle

- Interface Segregation Principle

- Dependency Inversion Principle

- Architecture and Design Patterns

- GoF

- POSA

- Application Programming Interfaces (API)

- Modularity and Components

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 12: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Introduzione al paradigma orientato agli oggetti

- Il paradigma ad oggetti può essere contrapposto al paradigma procedurale

- Sequenza di operazioni con una specifica di input e di output relativa ad una “funzione”

- Generalmente l’output di una operazione diviene l’input dell’operazione successiva

- La filosofia del paradigma ad oggetti

- Definire un sistema software come una collezione di oggetti di vario tipo che interagiscono tra loro

attraverso delle interfacce ben definite (APIs)

- Definire componenti riusabili con specifiche responsabilità in grado di contenere e gestire dati

➢ I componenti di un sistema ad oggetti vengono visti come astrazioni (ADTs) in grado sia di conservare

uno stato (campi dato/proprietà) sia di eseguire operazioni (metodi) per la manipolazione e l’elaborazione

del componente stesso e/o di altri componenti astratti che vi interagiscono.

○ L’esecuzione di una procedura diviene una sequenza di passi, ciascuno dei quali è assegnato ad un

singolo componente che a sua volta può comunicare con altri componenti e decomporre

ulteriormente l’esecuzione del lavoro assegnato

■ L’implementazione di un sistema più o meno complesso si riduce ad assemblare una

collezione di oggetti con responabilità ben definite

➢ Differenza sostanziale tra paradigma procedurale e paradigma ad oggetti:

○ L’ elaborazione dei dati e i dati stessi sono fusi in un unica entità

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 13: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Introduzione al paradigma orientato agli oggetti cont...

- Classi

- Identificare diverse tipologie di entità, definire categorie e gerarchie.

- Creare (istanziare) oggetti appartenenti ad uno specifico tipo di dato.

- Interfacce

- Definire le modalità di interazione tra le varie componenti di un sistema.

- Specificare il “cosa” senza dettagliare il “come”.

- Definire formalmente i requisiti di un componente.

- Accedere agli oggetti delle classi che le implementano (ADTs).

- Ereditarietà e Composizione

- Porre in essere meccanismi di riuso.

- Estendere e modificare le caratteristiche di oggetti genitore (ereditarietà).

- Utilizzare oggetti di altre classi per comporre il proprio specifico comportamento.

- Incapsulamento

- Specificare (esporre) solo il comportamento dei componenti attraverso meccanismi di astrazione,

- Nascondere le implementazioni interne e rendere pubbliche solo le specifiche esterne.

- Impedire ai client del componente di dipendere dai propri dettagli.

- Polimorfismo e binding dinamico

- Riferire oggetti di tipo diverso.

- Gli oggetti riferiti devono essere conformi al tipo di dato che li riferisce.

- Invocare a tempo di esecuzione operazioni senza conoscere a tempo di compilazione chi

concretamente le implementa.

- Coesione e accoppiamento

- Valutare il grado di cooperazione e di uniformità tra le entità di un modulo per ottenere una data

funzionalità (coesione).

- Valutare il grado di interdipendenda tra le varie entità di un modulo (accoppiamento).

- Desiderata: progettare ed implementare un sistema che abbia alta coesione dei moduli e basso

accoppiamento tra essi (obiettivo non banale da raggiungere).

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 14: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Utilizzo della nozione di Tipi di Dato Astratto (ADT)

content

String content = new String(“seq di cara”);

URI id = URI.create(“//source/text/000”);

Text text = Text.of(content, id);

id

text

Qualsiasi testo

//source/text/000

URI String

Riferimenti ad Oggetti

Istanze di classi (Oggetti)

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 15: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Introduzione allo Unified Modeling Language

Documentare e descrivere un sistema è strategico se si

ha l’obiettivo di progettare in modo collaborativo una

applicazione complessa che si rivolge ad una comunità i

cui requisiti sono in continua evoluzione.

Lo standard de-facto, sancito dalla Object Management

Group - OMG 2003, per la progettazione e la

documentazione di sistemi orientati agli oggetti è lo

Unified Modeling Language (UML).

L’UML è un linguaggio semi-formale che sfrutta una

notazione grafica per progettare software. Attraverso i

diagrammi messi a disposizione dal linguaggio è

possibile definire, tra le altre cose, le componenti e i

modelli concettuali delle classi di un sistema, oltre alle

relazioni che intercorrono tra le entità.

La documentazione generata con l’UML è

universalmente riconosciuta e compresa. Essa può

quindi essere discussa, migliorata e presentata in

modo collaborativo in conferenze e articoli della

comunità di riferimento.

Esempio di diagramma UML dei casi d’uso

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 16: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Introduzione allo Unified Modeling Language

Definisce la dimensione

statica del sistema senza

tener conto del tempo

Definisce la dimensione

comportamentale del

sistema

Definisce le operazioni,

le interazioni e le

attività degli oggetti

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 17: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Diagrammi UML e relazioni tra entità

Use case diagramClass Diagram

Gli elementi dei diagrammi sono inter-connessi attraverso vari tipi di

relazioni: Associazione, Dipendenza, Composizione, Aggregazione,

Specializzazione, Implementazione, Realizzazione, etc...

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 18: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Diagramma di Sequenza e Diagramma dei Componenti

CIST… Componenti Libreria

Componenti sviluppati per il modulo di lemmatizzazione e

relative interfacce di “require” e “provide”

La modalità di interazione delle componenti definisce il

comportamento del sistema. In particolare, il tipo di

relazione determina gli aspetti di dipendenza tra i vari

moduli.

Diagramma di sequenza che descrive l’

interazione tra le varie componenti del

sistema di analisi linguistica

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 19: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

In molti linguaggi di programmazione OO come Java o C++, una classe derivata si dice che

estende o che eredita da una superclasse e può implementare e sovrascrivere metodi della

classe genitrice (override) completando il meccanismo di binding dinamico. Questi

meccanismi sono il cuore del paradigma ad oggetti, ma sono anche fonte di molte

limitazioni se usati senza ponderazione (favorire la composizione all’ereditarietà).

Ancora sulla Ereditatierà e sul Polimorfismo

L’ereditarietà è un meccanismo alla base del paradigma orientato agli oggetti. Esso consente di

generalizzare funzionalità e di attivare pratiche di riuso dei componenti. In particolare, la relazione

di ereditarietà intercorre tra due classi, una classe antenato detta superclasse, e una classe

discendente detta derivata o sottoclasse. Sfruttare adeguatamente il meccanismo del polimorfismo

permette di progettare sistemi maggiormente flessibili e estensibili.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 20: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Un componente è una unità di

produzione e di rilascio indipendente

che, combinata con altre componenti,

forma un sistema complesso e

modulare. I componenti ben

progettati devono assicurare:

- Massima Coesione

- Minimo Accoppiamento

Dagli Oggetti ai Componenti: una questione di granularità

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 21: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

OOAD: Analisi dei requisiti e definizione delle componenti

Generalmente il processo di Analisi, Progettazione e Sviluppo software (OOAD) inizia con una fase di analisi,

nella quale si definiscono i requisiti del sistema e i casi d’uso che l’applicazione intende supportare. In ambito

DH è importante coinvolgere la comunità fin dalle prime fasi di sviluppo e condividere tutte le scelte di

design con gli “utenti finali”.

- A partire da questa fase è possibile creare un primo modello del sistema e identificare le componenti di

base dell’applicazione

User stories by courtesy of Bridget AlmasAngelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 22: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Modelli Concettuali Object Oriented

Al fine di progettare ed implementare uno strumento efficace,

efficiente, riusabile ed estensibile per lo studio scientifico del

testo, è essenziale definire un modello concettuale delle classi e le

relazioni essenziali che intercorrono tra esse

Identificare le giuste classi e le

responsabilità da attribuire ad esse è

un compito tutt’altro che banale.

Molte metodologie sono state

avanzate per guidare questa fase

progettuale e quasi tutte prevedono

un lavoro di affinamento iterativo.

Lo studio e la conoscenza

approfondita del dominio di

interesse e l’applicazione sistematica

dei principi dell’Object-Oriented

sono di fondamentale importanza.

La definizione del Modello

Concettuale delle Classi è un passo

fondamentale per la realizzazione di

una applicazione software orientata

agli oggetti. Il Modello corrisponde

ad entità identificabili nel dominio

analizzato e sono oggetti e concetti

noti agli utenti del sistema.

il Modello in tal senso è una

semplificazione e una astrazione

della realtà, ne definisce e ne coglie l’

essenza.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 23: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Rappresentazione dei dati e API

Particolare attenzione è

rivolta alla definizione di

opportune Application

Programming Interface (API).

La standardizzazione e la

specifica delle Interfacce di

Programmazione

garantiscono genericità,

flessibilità e robustezza delle

soluzioni identificate.

Version b = VersionManager.select(Version.BASE);Witness baseDocument = Witness.getDoc(b);

Source word = baseDocument.getStream( Granularity.LEAF).positionAt(“3”);String wordString = word.toString();

Analizzare il dominio e modellarlo sfruttando il paradigma ad oggetti

attraverso opportune API che identifichino specifici casi d’uso

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 24: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

API come metalinguiaggio e linguaggio Domain Specific

Document teiDocument = AbstractBuilderFactory.buildDocument(

new File("features.properties"),

new File("teiDocument.xml"));

Sentence[] sentences = teiDocument.getSentences();

Le Application Programming Interfaces (APIs)

garantiscono:

1) la disponibilità a lungo termine delle funzionalità

pubbliche dei componenti (servizi ed entry point)

2) lo sviluppo community-driven degli strumenti

software, producendo in tal modo una sorta di meta-

linguaggio

3) la separazione tra le applicazioni dei client dalle

implementazioni fornite dai provider

4) l’utilizzo intuitivo del tool (shallow understanding)

I client della piattaforma invocano i servizi esposti dai

componenti attraverso entry-point nettamente separate

dalle entità che ne implementano le funzionalità

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 25: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

I principi base dell’Object Oriented - SOLID

Durante la realizzazione di un sistema ad oggetti, il progettista deve scegliere tra diverse soluzioni che

rispondono a particolari requisiti. Esistono delle regole e dei principi che possono guidare il processo di

identificazione delle classi, dei componenti, delle funzionalità e dei meccanismi che regolano la loro

interazione.

● I principi SOLID sono alla base di una buona

progettazione dei sistemi orientati agli oggetti.

● Astrarre e incapsulare le parti che variano è il

meccanismo alla base di quasi tutti i principi che

regolano la progettazione orientata agli oggetti

Il termine SOLID è un acronimo

mnemonico che indica un insieme di cinque

principi introdotti nell’ambito della

programmazione ad oggetti da un famoso

ingegnere, Robert Cecil Martin.

● Conoscere opportunamente questi principi è essenziale per

“sfruttare” al massimo il paradigma Object-Oriented e le

sue caratteristiche di base: Riusabilità e Estensibilità.

● Single Responsibility Principle (SRP)

● Open-Close Principle (OCP)

● Liskov Substitution Principle (LSP)

● Interface Segregation Principle (ISP)

● Dependency Inversion Principle (DIP)

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 26: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Single Responsibility Principle (SRP)

➔ Un oggetto deve avere una ed una sola resposabilità e

tale responsabilità deve essere completamente

incapsulata in una classe (coesione).

- Una classe deve avere una sola ragione per cambiare

➔ La progettazione di una piattaforma per lo studio del testo deve

comprendere un insieme di moduli poco accoppiati e ben definiti, con

singole responsabilità e poche dipendenze, facilmente comprensibili e

manutenibili.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 27: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Single Responsibility Principle (SRP) - Esempio

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 28: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Open-Close Principle (OCP)

➔ Gli oggetti e i componenti devono essere progettati

mantenendoli “aperti” per le estensioni, ma “chiusi”

per le modifiche.

- Cambiare il comportamento di una parte del

sistema senza compromettere l’intera l’

applicazione

➔ Gli utenti di una piattaforma per lo studio del testo sono molteplici e con

requisiti e necessità che variano ed aumentano nel corso del tempo e nel

corso della progettazione e dello sviluppo del sistema.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 29: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Open-Close Principle (OCP) - Esempio

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 30: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Liskov Substitution Principle (LSP)

➔ I riferimenti agli oggetti che prevedono anche classi

derivate devono preservare sempre lo stesso

comportamento anche nel caso in cui si utilizzi una

classe derivata.

- Le sottoclassi devono essere sostituibili dalle proprie

classi base

➔ Gli utenti di un sistema per lo studio del testo necessitano di una

piattaforma flessibile, ma allo stesso tempo estremamente robusta

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 31: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Liskov Substitution Principle (LSP) - Esempio

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 32: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Interface Segregation Principle (ISP)

➔ Gli utenti (client) di un componente o di un oggetto

non devono dipendere da interfacce che non usano

- Molte interfacce specifiche sono da preferire ad

una singola interfaccia generica

➔ Le entità che costituiscono una piattaforma per lo studio del testo giocano

vari ruoli in relazione a vari punti di vista e in relazione agli utenti che le

utilizzeranno

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 33: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Interface Segregation Principle (ISP) - Esempio

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 34: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Dependency Inversion Principle (DIP)

➔ Le entità astratte non devono dipendere da entità

concrete. Le astrazioni non devono dipendere dai

dettagli implementativi, ma i dettagli implementativi

devono dipendere sulle astrazioni.

- Dipendere solo dalle interfacce e dalle astrazioni

➔ Gli utenti della piattaforma utilizzano moduli flessibili e uniformi che

dipendono solo dai servizi che espongono (interfacce) e non da come

questi vengono realizzati (dettagli interni). Ciò permette di cambiare l’

implementazione dei componenti del sistema senza cambiare l’

interazione con essi.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 35: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Dependency Inversion Principle (DIP) - Esempio

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 36: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Design Patterns

La progettazione di un sistema software spesso deve risolvere

problematiche comuni a molteplici scenari.

Questo ha portato nel corso del tempo a definire molte soluzioni

robuste e riusabili per molti problemi ricorrenti. I Design Patterns.

Un Design Pattern è una soluzione ad un problema

ricorrente di progettazione. Si compone di un insieme di

classi che attraverso il meccanismo di delega e di

ereditarietà permette di risolvere elegantemente ed

efficacemente tale problema.

Queste soluzioni possono essere adattate e perfezionate

per il particolare dominio dello studio scientifico del

testo.

I Design Patterns hanno giocato e giocano un ruolo fondamentale nella progettazione e

documentazione della Digital Scholarly Platform.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 37: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Design Patterns cont...

La migliore risorsa per approfondire i più noti Design Patterns è il classico

catalogo scritto da Gamma, Helm, Johnson, and Vlissides (aka Gang of Four -

GoF) Design Patterns: Elements of Reusable Object-Oriented Software

I Design Pattern permettono:

- di utilizzare le componenti della

piattaforma indipendentemente

da come le sue parti vengono

create e assemblate.

- di organizzare efficacemente la

struttura delle componenti

coinvolte uniformando sia i

servizi esposti sia le responsabilità

delle varie entità

- di implementare strategie di

elaborazione e algoritmi tra le

componenti in modo flessibile e

dinamico

Creazionali (5) Strutturali (7) Comportamentali (11) 23 Patterns

★ Singleton

★ Abstract

Factory

★ Prototype

★ Factory

Method

★ Builder

★ Proxy

★ Flyweight

★ Bridge

★ Facade

★ Decorator

★ Adapter

★ Composite

★ Observer

★ Template Method

★ Command

★ Iterator

★ State

★ Mediator

★ Strategy

★ Chain of Resp.

★ Visitor

★ Interpreter

★ Memento

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 38: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Design Patterns cont...

Pattern creazionali, come il singleton e il factory, pattern di behavior, come lo observer e pattern strutturali come il proxy sono stati utilizzati per modellare il dominio di interesse e per progettare i componenti del sistema per lo studio dei testi.

I design pattern aiutano a creare un modello object-oriented delle entità del dominio il più possibile disaccoppiato e astratto.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 39: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Esempio Design Patterns (Factory)

Il Factory permette di disaccoppiare in modo molto elegante la creazione e l’uso di un oggetto dalla sua classe concreta. I vantaggi di tale meccanismo sono molteplici. Tra i quali vi è la possibilità di sfruttare pienamente il meccanismo di binding dinamico in modo del tutto trasparente al Client.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 40: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Esempio Design Patterns (Composite Component)

Il Composite Component è un Design Pattern che modella la struttura gerarchica di una risorsa attraverso un’unica interfaccia e due diversi tipi di nodi concreti. Vale a dire, i nodi intermedi e i nodi foglia sono entrambi specializzazione della stessa classe base

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 41: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Esempio Design Patterns (Observer)

Uno dei problemi più ricorrenti nell’ambito dello studio scientifico dei testi è mantenere aggiornato lo stato di diverse entità che condividono informazioni. Il pattern Observer permette di creare un modello disaccoppiato ed efficace per la gestione di risorse correlate

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 42: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Esempio Design Patterns (Strategy)

Il diagramma UML mostra l’utilizzo di più pattern in sinergia per la realizzazione del componente di analisi linguistica multilingua.

In base al testo da analizzare il sistema è in grado di istanziare le componenti adatte ed elaborare correttamente il testo che l’utente ha selezionato (pattern strategy)

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 43: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La natura gerarchica della rappresentazione digitale delle risorse testuali incoraggia l’utilizzo del pattern Visitor per l’attraversamento delle entità del modello in modo flessibile e personalizzabile

Esempio Design Patterns (Visitor)

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 44: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Verso la modellizzazione Object-Oriented della Piattaforma

Grazie alle esperienze maturate in seno a numerose

iniziative nel campo delle Digital Humanities, è stato

possibile realizzare alcuni modelli concettuali basati sui

principi e sulle tecniche precedentemente introdotti.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 45: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Modelli Concettuali Object Oriented (Tradition and Editorial Text)

Modello che semplifica la

tradizione di un testo.

I testimoni sono fonti primarie

che veicolano un testo, ma con

errori e varianti.

Sarà opera dell’editore studiare

la molteplicità delle fonti e

stabilire quale sia il testo da

accogliere e ricostruire

Modello concettuale delle classi progettato ed implementato per il

sistema del progetto PRIN 2008 “Per una edizione digitale dei

manoscritti di F. de Saussure”

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 46: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Modelli Concettuali Object Oriented (Source-Composite)

Modello delle classi che aggiunge la

prospettiva della annotazione e la

separazione tra supporto e contenuto,

mantenendo una visione gerarchica.

Il Modello implementa anche alcuni

Design Pattern tra i più conosciuti

come il Composite Component, il

Typed-Relationship, il Pattern Role.

Il modello è stato progettato e

implementato per il sistema del

progetto ERC Ideas Advanced Grant

249431 “Greek into Arabic.

Philosophical Concepts and Linguistic

Bridges”.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 47: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Modelli Concettuali Object Oriented (Annotation-Locus)

Modello delle classi che elabora

ulteriormente l’idea della fonte primaria

come separazione tra supporto e

contenuto. Il Modello si basa sul concetto

di stand-off e permette di rappresentare

vari livelli e varie dimensioni di

annotazione con varie gerarchie, anche

sovrapposte.

Il modello è stato progettato e

implementato per il sistema

realizzato per l’iniziativa

“Clavius on The Web”.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 48: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Esempio di utilizzo del Modello

text = Text.of("Un qualsiasi testo da annotare.",URI.create("//source/text/000"));

annotation = AnnotationText.of("Annotazione sul testo", URI.create("//annotation/text/123"));annotation.addLocus(text, 13, 18); /*annotata la parola testo*/annotation.save();

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 49: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Casi di studio e implementazioni dei vari modelli

➔ Saussurre

➔ GreekIntoArabic

➔ Clavius

➔ Talmud

➔ Verso Omega

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 50: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

PRIN - “Per una edizione digitale dei manoscritti di F. de Saussure”

- la trascrizione del testo deve indicare tutte le varie fasi

redazionali del testo (cancellature, correzioni, aggiunte, ecc.)

- necessita di visualizzazione dell’immagine digitale (per

controllo del testo sia per l’editore che per il fruitore)

- accesso alla trascrizione e all’immagine digitale (con zoom,

etc.)

Coordinato dal Professore Daniele Gambarara dell’Università della Calabria

Obiettivo:

Progettazione e sviluppo di una applicazione Web per lo studio e l’edizione dei manoscritti di

Ferdinand de Saussure. (l’edizione del manoscritto Theorie des sonantes, pubblicata da Maria Pia

Marchese nel 2002)

Partecipanti:

- Università della Calabria;

- Università di Firenze;

- Consiglio Nazionale delle Ricerche - Istituto di Linguistica Computazionale "Antonio

Zampolli" (CNR-ILC, Pisa);

- Università di Salerno.

Requisiti:

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 51: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

L’applicazione “de Saussure” - visualizzazione parallela

La visualizzazione principale dell’applicazione include i fogli trascritti dei manoscritti

L’immagine e il testo sono visualizzate in parallelo con in nota tutte le fasi redazionali del testo

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 52: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

L’applicazione “de Saussure” - Indici e Concordanze

Un importante funzionalità del sistema è la ricerca di termini plurilingui presenti nel testo.

Un utente può cercare una parola sia per forma sia per lemma e verificarne la presenza nel testo

Result page

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 53: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Comment Area

Comment List Transcription

Classification

Text & Image Selection

Image

L’applicazione “de Saussure” - Annotations and Comments

Funzionalità essenziale è rappresentata dalla annotazione e dal commento.

Un utente seleziona un frammento e lo annota/commenta sfruttando un sistema di classificazione

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 54: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

The ERC project Ideas, Advanced Grant 249431

Greek into Arabic: Philosophical Concepts and Linguistic Bridges

Coordinato dalla Prof.ssa Cristina D’Ancona dell’Università di Pisa

Obiettivo:

Progettazione e sviluppo di una applicazione Web per lo studio della traduzione di

alcuni capitoli delle Enneadi di Plotino in arabo. Traduzione nota con il titolo di

Pseudo-Teologia di Aristotele. Realizzata nel IX sec.

Partecipanti:

- Università di Pisa

- Università di Bochum (Germania);

- Consiglio Nazionale delle Ricerche - Istituto di

Linguistica Computazionale "Antonio Zampolli"

(CNR-ILC, Pisa).

- I testi in greco e in arabo devono essere allineati e gestiti in

modo sincronizzato (per lo studio della traduzione)

- I testi devono essere annotati semanticamente e

linguisticamente (per lo studio dei fenomeni di traduzione)

- Ricerca avanzata crosslinguistica (legami tra gli indici e le

concordanze dei due testi)

Requisiti:

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 55: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Greek into Arabic - Pericopatura parallela

La caratteristica di base del sistema è lo studio parallelo dei testi in lingua greca e araba

Un utente segmenta i due testi associando le porzioni che hanno un legame intertestuale (pericopatura)

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 56: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La funzionalità di ricerca avanzata permette di interrogare il testo attraverso un lessico greco-arabo

Un utente esperto chiede al sistema di visualizzare i luoghi del testo impostando vari filtri crosslinguistici

Greek into Arabic - Concordanze contrastive

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 57: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Greek into Arabic - Analisi linguistica

La funzionalità di analisi linguistica del testo permette di aggiungere informazioni morfosintattiche

Un utente esperto studia i fenomeni linguistici dei due testi con l’ausilio del calcolatore

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 58: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

- piattaforma integrata per accesso e navigazione via Web dei

manoscritti e delle informazioni racchiuse in essi

- riproduzione digitale del facsimile accompagnata dalla sua

trascrizione, l’analisi linguistica del testo latino e le

annotazioni lessicali e semantiche

- creazione di una risorsa termino-ontologica dedicata al

dominio astronomico e matematico del XVI-XVII secolo,

chiamata CLAVIUS

Il progetto Clavius On the Web

Finanziato dal Registo.it con sede presso il CNR di Pisa

Obiettivo:

Progettazione e sviluppo di una applicazione Web per la valorizzazione del carteggio

di Cristoforo Clavio con i grandi scienziati e studiosi dell’epoca: 330 lettere trasmesse

dai codici APUG 529-530

Partecipanti:

- Istituto di Informatica e Telematica (IIT-CNR)

- Archivio Storico della Pontificia Università Gregoriana (APUG)

- Istituto di Linguistica Computazionale "A. Zampolli" (ILC-CNR)

Requisiti:

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 59: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La prima funzionalità implementa il supporto alla trascrizione delle lettere

Un utente esperto visualizza l’immagine facsimile del manoscritto e ne trascrive il contenuto

Il progetto Clavius On the Web

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 60: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La seconda funzionalità implementa il supporto per l’annotazione semantica delle lettere

Un utente esperto arricchisce il testo grazie ad un sistema di annotazione orientato al web semantico (RDF)

Il progetto Clavius On the Web

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 61: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La caratteristica di analisi semi automatica della lingua latina

Un utente chiede al sistema di analizzare il contenuto testuale delle lettere per poi correggere eventuali errori

Il progetto Clavius On the Web

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 62: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Il progetto Clavius On the Web

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 63: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Progetto Traduzione Talmud Babilonese

- velocizzare il processo di traduzione;

- produrre una traduzione omogenea;

- far lavorare una molteplicità di utenti, con differenti profili:

- allo stesso testo;

- nello stesso tempo;

- da qualsiasi parte del mondo;

- assistere nella redazione dell’edizione a stampa.

Finanziato dal MIUR e monitorato dalla Presidenza del Consiglio dei Ministri

Obiettivo:

Produrre una traduzione in Italiano del Talmud Babilonese da pubblicare attraverso

una edizione a stampa e una edizione digitale

Partecipanti:

- Consiglio Nazionale delle Ricerche

- Unione delle Comunità Ebraiche Italiane

- Collegio Rabbinico Italiano

Requisiti:

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 64: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Albero delle Fonti Tabella delle Traduzioni e FiltriNote, Glossari, Suggerimenti e

Analisi Linguistica

Il pannello principale implementa tutte le funzionalità per il supporto alla traduzione

Progetto Traduzione Talmud Babilonese

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 65: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

La gestione dei glossari permette di descrivere i termini più significativi del testo

Uno studioso può recuperare i termini annotati e visualizzare la descrizione e il luogo dove occorrono

Progetto Traduzione Talmud Babilonese

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 66: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Il sistema, opportunamente personalizzato, è in sperimentazione anche nelle scuole secondarie

Gli studenti approfondiscono i classici analizzando e commentando un testo e le relative traduzioni

Versione “Educational” della piattaforma

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 67: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Verso una piattaforma per lo studio scientifico dei testi

Image management

Multilayered Annotation

Lexica, terminologies and ontologies

Assisted Translation

Text Processing

Linguistic Analysis

Advanced Search

Editing and Publishing

Full text searchesSemantic searches

Linguistic searches

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 68: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

❏ Definizione dei requisiti e delle specifiche utente guidata dalla comunità e dal dominio (user-stories, use-

cases, user-scenarios, story-boards)

❏ Definizione dei tipi di dato astratti (entità e funzionalità) che sintetizzino le caratteristiche comuni del

dominio (e.g., testo, documento, annotazione, apparato, corpus, indici, catalogo, etc)

❏ Definizione di modelli software in grado di esemplificare le complesse relazioni esistenti tra i tipi di dato

astratti del dominio d’interesse

❏ Definizione di soluzioni generiche e riusabili (Pattern) per il design di strumenti software

❏ Definizione di Moduli e Componenti riusabili che offrano chiare e condivise Application Programming

Interface (API)

❏ Definizione di architetture flessibili in grado di conseguire l’estensibilità degli artefatti (μ-kernel)

❏ Definizione di Servizi Web condivisi dalla comunità in grado di richiamare le funzionalità dei componenti

da remoto (μ-services, RESTfull e simili)

❏ Definizione di algoritmi e strutture dato efficaci ed efficienti per la risoluzione di problemi specifici

(ottimizzazione, pecision-recall, indexing, matching, querying, etc)

Il progetto di sviluppo di una piattaforma per lo studio scientifico dei testi deve necessariamente impiegare una

metodologia robusta di analisi, progettazione e implementazione del software.

Concludendo… c’è tanto da fare!!

Riusabilità, Flessibilità, Estensibilità e Manutenibilità delle componenti nonchè coesione tra le entità e basso

accoppiamento tra i moduli.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 69: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Ma… in pratica?

- Inoltre, l’umanista digitale può trovarsi nella condizione di dover

mettere il cappello dell’informatico:

- In questi casi, una maggiore consapevolezza dei problemi e

delle possibili soluzioni tecniche che tipicamente si incontrano

nello sviluppo di software per le digital humanities può essere

di grande aiuto

- In uno scenario nel quale gli strumenti digitali sono sviluppati

secondo i principi dell’OO, l’umanista digitale sarà agevolato nel

suo lavoro di studio, dato che, tali strumenti, saranno:

- robusti e sicuri

- facilmente modificabili

- maggiormente comprensibili

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 70: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Davide Albanesicomputer scientist

Andrea Bellandicomputer scientist

Giulia Benottodigital humanist

Angelo Mario Del Grossoinformation engineer

Emiliano Giovannetticomputer scientist

Simone Marchicomputer scientist

Ouafae NahliArabic expert

Silvia Piccinilinguist

Web application development, Requirement analysis, Design and development of object-oriented software, Databases

Ontologies and Lexica, Knowledge Engineering, Uncertain Knowledge, Computer-Assisted Translation, Translation Memory

Distributional Semantics, Information extraction from texts, Distributional analysis of literary texts, Semantic relation extraction

Models for Object-Oriented Applications, Digital Humanities, Text Processing, Text Encoding, Scholarly Editing

Knowledge Engineering, Ontologies, Computational Lexica, Natural Language Processing, Information Extraction from texts

Natural Language Processing, Term extraction, Ontology learning, Software engineering

Natural Language Processing, Morphosyntax of Arabic, Arabic Lexicography

Computational Lexicography, Terminology, Ontologies, Knowledge Representation

languages: Java, SQL

languages: Java, XML, OWL

languages: Latin, Perl

languages: Java, XML, UML

languages: Java, OWL

languages: Java, C, Perl, Bash

languages: Latin, Greek, Sanskrit, Old Slavonic, Classic Armenian,

Lithuanian, Latvian, Bulgarian, Russian, German

languages: Arabic, French

La squadra del laboratorio presso l’ILC

Hanno contribuito ai lavori presentati anche il dott. Andrea Bozzi, la dott.ssa Nilda Ruimy, il dott. Federico

Boschetti e tutti i partecipanti ai vari progetti menzionati

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 71: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Riferimenti bibliografici

● A. Bozzi, "Computer-assisted scholarly editing of manuscript sources," in New publication cultures in the humanities: exploring the paradigm shift, P. Davidhazi, Ed. Amsterdam: Amsterdam University Press, 2014, pp. 99-115.

● A. Bozzi, “Edizione elettronica e filologia computazionale”, in A. Stussi (a cura di), “Fondamenti di critica testuale”, Il Mulino Manuali, Bologna, 2006, pp. 207-232.

● F. Buschmann, K. Henney, and D. C. Schmidt, Pattern-Oriented Software Architecture, On Patterns and Pattern Languages, ser. Pattern-Oriented Software Architecture. Hoboken: John Wiley & Sons, 2007.

● G. Crane, B.Seales, and M. Terras, “Cyberinfrastructure for Classical Philology,” Digital Humanities Quarterly, 3 (1), 2009.

● M. Fowler, “Analysis Patterns: Reusable Object Models”. Menlo Park, Calif. ; Harlow : Addison Wesley. 1996.

● E. Gamma, R. Helm, R.Johnson, and J. Vlissides, “Design Patterns: Elements of Reusable Object-Oriented Software”. Reading, Mass: Addison-Wesley, 1995.

● M. Lamé, V. Valchera, and F. Boschetti, “Epigrafia digitale. Paradigmi di rappresentazione per il trattamento digitale delle epigrafi,” Epigraphica, LXXIV vol. 1-2, 2012, pp. 331-338.

● M. McCandless, E. Hatcher, and O. Gospodneti , “Lucene in action”, Manning, 2010.

● P. Robinson, "Towards a theory of digital editions," Variants, no. 10, pp. 105-131, 2013.

● R. Siemens, M. Timney, C. Leitch, C. Koolen, A. Garnett et al., "Toward modeling the social edition: An approach to understanding the electronic scholarly edition in the context of new and emerging social media," Literary and Linguistic Computing, vol. 27, no. 4, pp. 445-461, 2012.

● G. Stewart, G. Crane, and A. Babeu: A New Generation of Textual Corpora. JCDL 2007, pp. 356–365.

Angelo Mario Del Grosso - Seminario LABCD - 25 Maggio 2016 - Modellazione OO per DH

Page 72: Modelli concettuali e architetture Object-Oriented per la progettazione e lo sviluppo di una Digital Scholarly Platform

Grazie per l’attenzione

Angelo Mario Del Grosso

DOMANDE…?

Seminario LABCD - Pisa, 25.05.2016

[email protected]@gmail.com

Modelli concettuali e architetture

Object-Oriented

per la progettazione e lo sviluppo di una

Digital Scholarly Platform