Workflow definition and implementation allowed many business companies, in the last 20 years, to optimize productive processes and achieve better results. Workflow based technologies provided the necessary tools and basic theory to model processes in many, and different, fields of application. Healthcare facilities are a good example of how workflow based technologies allow a more efficient use of resources (e.g. doctors, nurses, technicians, operating rooms, laboratories etc.) and a better coordination of all the tasks involving patient care. In particular, surgical procedures are very often standardized in a sequence of tasks to the benefit of the entire surgical team during surgery. This thesis work includes the development of software to support the definition and the implementation of workflows in robot equipped surgical operating room. The software moves through the previously defined tasks sequence to support and interact with the robotic instrumentation. The aspect of novelty is to provide a software tool for a general approach for the definition, management and execution of workflow that is directly embedded in the robot framework. The implementation solution we developed, offers a software architecture and a collection of basic functions for the implementation of a Workflow Based Assistant (WBA). Currently, healthcare organizations use robot technology for many surgery procedures and from neurosurgery to cardiac procedures robots became precious operative room assistants. Robots and robotics are experiencing a constant development in terms of complexity and flexibility of use and operative rooms benefit from the accuracy and reliability that robot can provide. Their functions evolved in years, from tools able to perform specific surgery tasks to increasingly complex procedures. An important aspect concerning modern robot applications in the operating room is the source of information that these tools are able to collect about the environment that surrounds them. Robots in the operating room, for example, already perform, gesture recognition, stereovision and motion tracking to enhance human machine interaction paradigms. The WBA we developed is offered as a software tool to integrate surgical environment inputs in the execution of the desired workflow. With this purpose we created a software architecture that includes pre-implemented software systems and specifically developed applications. The software architecture of the WBA is made of three main elements: a workflow management system, an ontology and an application that interacts with the robot instrumentation. 1. The Workflow Management System YAWL (Yet Another Workflow Language) is a software suite based on (and named after) a concise and powerful modelling language. The WBA includes the YAWL system for the design and the execution of the different workflows. Among other performing tools, YAWL is equipped with an intuitive graphical editor and the YAWL execution engine, two important components of the software system. YAWL allows the definition of workflows over many levels of granularity. To the final user is offered the possibility to define, with the YAWL Editor, all the tasks that compose the workflow, the task connections, the workflow variables and the switch conditions. The YAWL Engine is responsible for the runtime execution of tasks and the correct scheduling of tasks in accordance to what was defined in the design phase of the workflow. 2. The Ontology is the second component of the WBA. Ontologies can be defined as an open and meaningful formal specification of concepts and relations that characterize a certain domain of knowledge. Ontologies find use in many robot applications because they can provide an efficient approach in describing and translating formalized knowledge from human to software. As in this case, using an ontology to describe a domain not only helps the human user with organizing data about tasks, but also software application can access and use these information. The ontology we defined, conceptualizes and describes workflows. The structure organizes in a hierarchy of concepts (with the related links) all the kind of tasks, the operations that a task can execute, conditions for the task conclusions etc. that any task can perform at runtime. The final user has the possibility to define how each of the tasks of the workflow he’s creating should behave, by filling the ontology structure with task elements and their properties. Describing a new workflow to be implemented with the WBA is a process that combines the design of the task sequence with the YAWL Editor and the data entry in the ontology about all the tasks behavior. This “data base” is fundamental for the third component of the WBA. 3. The application that collects input and information from the previous two and interacts with the robot environment is the third fundamental component of the WBA. During the implementation of a workflow, this application receives information from the YAWL Engine concerning the activated task, it queries the ontology on the active properties of the task and when it receives a notification from the operating room that the task is concluded, hands back the execution of the task to the YAWL Engine. This process cyclically repeats until the workflow is concluded. The WBA is meant to interact with robot instrumentation controlled with one of the most popular operating system for robot control, the Robot Operating System (ROS). For our application development we chose Rosjava, the first pure implementation of ROS in Java. The application we developed for the WBA is a part of the connection net where also the robot instrumentation is inserted. The project included the development of the implementation solutions and the communication protocol to connect the YAWL system, the Rosjava application and the ontology. The thesis work also presents the implementation for a workflow performed in neurosurgery with the WBA. The chosen procedure is the Stereoelectroencephalography (SEEG), used to implant electrodes in the skull of patients affected by serious form of epilepsy and identified in collaboration with the clinical team of the hospital “Niguarda Ca’ Grande”, Milan (Italy). The SEEG procedure is analyzed, the single tasks defined with the YAWL editor, and the ontology filled up with all the necessary elements. Inside the laboratory of the institute of “Intelligence Controls and Robotics (IPR)” of the Karlsruhe Institute of Technology (KIT) the corresponding input were given to the WBA to execute few SEEG simulation procedures. With simulation, we evaluated the WBA performances in terms of plasticity to adapt to a real life scenario, cohesion to the desired behavior, software and its component’s stability and timeframes of execution. The WBA revealed stable and the different functions timeframe of execution comparable to practical applications. Few possible integrations with other software or extensions in the functions had been suggested as future development.

Definire e implementare Worflows ha permesso a molte aziende, negli ultimi 20 anni, di ottimizzare i processi produttivi e raggiungere risultati sempre migliori. Tecnologie basate su workflow hanno fornito il gli strumenti e le teorie necessarie per modellizzare processi in campi d’applicazione anche molto diversi tra loro. Le strutture per healthcare sono un valido esempio di come le tecnologie basate su workflow permettano un utilizzo più efficiente delle risorse (es. dottori, infermieri, tecnici, sale operatorie, laboratori ecc.) e una miglior coordinazione dei diversi task che coinvolgono la cura del paziente. Le procedure chirurgiche in particolare sono spesso standardizzate in una sequenza di task a beneficio dell’intera équipe durante l’operazione. Questo lavoro di tesi si occupa dello sviluppo di un software per supportare la definizione e l’implementazione di workflow in sale operatorie equipaggiate con robot. Il software si sposta all’interno della sequenza di task definita preventivamente per supportare e interagire con la strumentazione robotica. L’aspetto di originalità sta nel fornire uno strumento software per un approccio generalizzato alla definizione, gestione ed esecuzione di workflow che si inseriscono direttamente nel robot framework. Quella trovata è una soluzione implementativa che offre un’architettura software e una serie di funzioni di base per l’implementazione di un Workflow Based Assistant (WBA). Al giorno d’oggi, le strutture per healthcare utilizzano le tecnologie robotiche per molte procedure chirurgiche e dalla neurochirurgia alla cardiochirurgia i robot sono diventati preziosi assistenti chirurgici. I robot e la robotica sono protagonisti di una costante crescita in termini di complessità e flessibilità d’utilizzo, sempre più campi di applicazione beneficiano dell’accuratezza e affidabilità che i robot forniscono. Le loro funzioni si sono evolute e negli anni, da strumenti in grado di eseguire specifici task chirurgici a funzioni sempre più complesse. Un aspetto molto importante riguardo il moderno utilizzo di robot in sala operatoria è la fonte di informazioni che questi strumenti sono in grado di collezionare rispetto all’ambiente che li circonda. I robot in sala operatoria, per esempio, sono già in grado di eseguire operazioni di gesture recognition, stereovision and motion tracking, volte a migliorare le interazioni uomo-macchina. Il WBA si propone come uno strumento software per integrare questi input dall’ambiente operatorio nell’esecuzione del workflow desiderato. A questo scopo abbiamo sviluppato un’architettura software che include sistemi software già disponibili e applicazioni appositamente create. L’architettura software del WBA si compone di tre elementi principali: un sistema di workflow management, un’ontologia e un’applicazione che interagisce con la strumentazione robotica. 1. Il Workflow Management System YAWL (Yet Another Workflow Language) è una software suite che poggia su un omonimo linguaggio di modellazione conciso e performante. Il WBA include il sistema YAWL per il design e l’esecuzione dei diversi workflow. Tra i diversi strumenti che offre, YAWL è corredato da un editor grafico intuitivo ed un YAWL execution engine, due componenti fondamentali del sistema software. YAWL costituisce un linguaggio espressivo e permette di definire workflows su molti livelli di granularità. All’utente finale è offerta la possibilità di definire, attraverso lo YAWL Editor, i diversi task che compongono il workflow, le loro connessioni, le variabili proprie del workflow e le condizioni di switch tra i diversi task. Al YAWL Engine è affidata invece l’esecuzione runtime dei task vera e propria e la corretta pianificazione dei vari tasks in accordo con quanto definito nella fase di design del workflow. 2. L’Ontologia è il secondo componente fondamentale del WBA. Le ontologie possono essere definite come una specificazione formale aperta e significativa dei concetti e le relazioni che caratterizzano un certo dominio di conoscenza. Le ontologie trovano utilizzo in mote applicazioni per la robotica perché offrono un approccio nel descrivere e traslare conoscenza formalizzata da uomo a software. Come in questo caso, utilizzare un’ontologia per descrivere un dominio, non aiuta solo l’utente ad organizzare le informazioni riguardanti i task, ma anche eventuali applicazioni software possono accedere a queste informazioni. L’ontologia che abbiamo definito, concettualizza e descrive workflow. La sua struttura organizza in una gerarchia di concetti (con le relative relazioni) i vari tipi di task, tutte le operazioni che un task può compiere, le condizioni in cui il task si può considerare concluso ecc. da eseguire nella fase di runtime. L’utente finale ha la possibilità di indicare come ogni task del workflow che sta definendo debba comportarsi, inserendo nella struttura dell’ontologia nuovi elementi task e le loro proprietà. La descrizione di un nuovo workflow da implementare con il WBA è un processo che combina il design della sequenza di task con lo YAWL Editor e l’inserimento delle caratteristiche di ciascun task all’interno dell’ontologia. Questa “base di dati” è fondamentale al terzo componente del WBA. 3. L’applicazione che colleziona input e informazioni dalle due precedenti e interagisce con l’ambiente robot è il terzo e ultimo componente fondamentale del WBA. Durante l’esecuzione di un workflow, questa applicazione riceve informazioni dal YAWL Engine riguardo il task attivato, interroga l’ontologia sulle proprietà attive del task e quando riceve notifica dalla sala operatoria che il task è concluso, riconsegna l’esecuzione del task al YAWL Engine. Questo processo si ripete ciclicamente fino alla conclusione del workflow. Il WBA è stato sviluppato per interagire con strumentazione robotica controllata con uno dei più usati sistemi operativi per il robot-control, il Robot Operating System (ROS). Per l’implementazione della nostra applicazione abbiamo utilizzato il più moderno Rosjava, la prima pura implementazione di ROS in Java. L’applicazione che abbiamo sviluppato per il WBA è parte integrante della rete di connessione in cui è inserita e comunica anche tutta la strumentazione robotica con cui il WBA si interfaccia. Il progetto ha compreso anche lo sviluppo delle soluzioni implementative e il protocollo di comunicazione per connettere il YAWL system, l’applicazione Rosjava e l’ontologia. Il lavoro di tesi comprende anche un’applicazione del WBA per un workflow utilizzato in neurochirurgia. La procedura scelta è quella per la Stereoelettroencefalografia (SEEG), utilizzata per impiantare elettrodi all’interno del cranio di pazienti che soffrono di gravi forme di epilessia ed identificata in collaborazione con l’equipe clinica dell’ospedale “Niguarda Ca’ Grande”, Milan (Italia). La procedura SEEG è stata analizzata, i singoli task definiti con lo YAWL Editor, e l’ontologia compilata con tutti i singoli elementi necessari. All’interno del laboratorio dell’istituto di “Intelligence Controls and Robotics (IPR)” del Karlsruhe Institute of Technology (KIT) al WBA sono stati forniti gli input per simulare l’esecuzione di una serie di procedure SEEG. Le simulazioni sono servite a valutare le performace del WBA in termini di plasticità nell’adattarsi ad una condizione reale, aderenza al comportamento desiderato, stabilità del software e dei suoi componenti e le tempistiche d’esecuzione. Il WBA si è rivelato stabile e le tempistiche di esecuzione delle diverse funzioni compatibili con l’applicazione pratica. Alcune possibili integrazioni con altri software o ampliamenti delle funzionalità del WBA sono stati individuati e proposti come sviluppi futuri.

Development and implementation of a workflow based assistant for surgical robot equipped operating rooms

BRIOSCHI, LUIGI MARIA
2013/2014

Abstract

Workflow definition and implementation allowed many business companies, in the last 20 years, to optimize productive processes and achieve better results. Workflow based technologies provided the necessary tools and basic theory to model processes in many, and different, fields of application. Healthcare facilities are a good example of how workflow based technologies allow a more efficient use of resources (e.g. doctors, nurses, technicians, operating rooms, laboratories etc.) and a better coordination of all the tasks involving patient care. In particular, surgical procedures are very often standardized in a sequence of tasks to the benefit of the entire surgical team during surgery. This thesis work includes the development of software to support the definition and the implementation of workflows in robot equipped surgical operating room. The software moves through the previously defined tasks sequence to support and interact with the robotic instrumentation. The aspect of novelty is to provide a software tool for a general approach for the definition, management and execution of workflow that is directly embedded in the robot framework. The implementation solution we developed, offers a software architecture and a collection of basic functions for the implementation of a Workflow Based Assistant (WBA). Currently, healthcare organizations use robot technology for many surgery procedures and from neurosurgery to cardiac procedures robots became precious operative room assistants. Robots and robotics are experiencing a constant development in terms of complexity and flexibility of use and operative rooms benefit from the accuracy and reliability that robot can provide. Their functions evolved in years, from tools able to perform specific surgery tasks to increasingly complex procedures. An important aspect concerning modern robot applications in the operating room is the source of information that these tools are able to collect about the environment that surrounds them. Robots in the operating room, for example, already perform, gesture recognition, stereovision and motion tracking to enhance human machine interaction paradigms. The WBA we developed is offered as a software tool to integrate surgical environment inputs in the execution of the desired workflow. With this purpose we created a software architecture that includes pre-implemented software systems and specifically developed applications. The software architecture of the WBA is made of three main elements: a workflow management system, an ontology and an application that interacts with the robot instrumentation. 1. The Workflow Management System YAWL (Yet Another Workflow Language) is a software suite based on (and named after) a concise and powerful modelling language. The WBA includes the YAWL system for the design and the execution of the different workflows. Among other performing tools, YAWL is equipped with an intuitive graphical editor and the YAWL execution engine, two important components of the software system. YAWL allows the definition of workflows over many levels of granularity. To the final user is offered the possibility to define, with the YAWL Editor, all the tasks that compose the workflow, the task connections, the workflow variables and the switch conditions. The YAWL Engine is responsible for the runtime execution of tasks and the correct scheduling of tasks in accordance to what was defined in the design phase of the workflow. 2. The Ontology is the second component of the WBA. Ontologies can be defined as an open and meaningful formal specification of concepts and relations that characterize a certain domain of knowledge. Ontologies find use in many robot applications because they can provide an efficient approach in describing and translating formalized knowledge from human to software. As in this case, using an ontology to describe a domain not only helps the human user with organizing data about tasks, but also software application can access and use these information. The ontology we defined, conceptualizes and describes workflows. The structure organizes in a hierarchy of concepts (with the related links) all the kind of tasks, the operations that a task can execute, conditions for the task conclusions etc. that any task can perform at runtime. The final user has the possibility to define how each of the tasks of the workflow he’s creating should behave, by filling the ontology structure with task elements and their properties. Describing a new workflow to be implemented with the WBA is a process that combines the design of the task sequence with the YAWL Editor and the data entry in the ontology about all the tasks behavior. This “data base” is fundamental for the third component of the WBA. 3. The application that collects input and information from the previous two and interacts with the robot environment is the third fundamental component of the WBA. During the implementation of a workflow, this application receives information from the YAWL Engine concerning the activated task, it queries the ontology on the active properties of the task and when it receives a notification from the operating room that the task is concluded, hands back the execution of the task to the YAWL Engine. This process cyclically repeats until the workflow is concluded. The WBA is meant to interact with robot instrumentation controlled with one of the most popular operating system for robot control, the Robot Operating System (ROS). For our application development we chose Rosjava, the first pure implementation of ROS in Java. The application we developed for the WBA is a part of the connection net where also the robot instrumentation is inserted. The project included the development of the implementation solutions and the communication protocol to connect the YAWL system, the Rosjava application and the ontology. The thesis work also presents the implementation for a workflow performed in neurosurgery with the WBA. The chosen procedure is the Stereoelectroencephalography (SEEG), used to implant electrodes in the skull of patients affected by serious form of epilepsy and identified in collaboration with the clinical team of the hospital “Niguarda Ca’ Grande”, Milan (Italy). The SEEG procedure is analyzed, the single tasks defined with the YAWL editor, and the ontology filled up with all the necessary elements. Inside the laboratory of the institute of “Intelligence Controls and Robotics (IPR)” of the Karlsruhe Institute of Technology (KIT) the corresponding input were given to the WBA to execute few SEEG simulation procedures. With simulation, we evaluated the WBA performances in terms of plasticity to adapt to a real life scenario, cohesion to the desired behavior, software and its component’s stability and timeframes of execution. The WBA revealed stable and the different functions timeframe of execution comparable to practical applications. Few possible integrations with other software or extensions in the functions had been suggested as future development.
BEYL, TIM
PERRONE, ROBERTA
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-dic-2014
2013/2014
Definire e implementare Worflows ha permesso a molte aziende, negli ultimi 20 anni, di ottimizzare i processi produttivi e raggiungere risultati sempre migliori. Tecnologie basate su workflow hanno fornito il gli strumenti e le teorie necessarie per modellizzare processi in campi d’applicazione anche molto diversi tra loro. Le strutture per healthcare sono un valido esempio di come le tecnologie basate su workflow permettano un utilizzo più efficiente delle risorse (es. dottori, infermieri, tecnici, sale operatorie, laboratori ecc.) e una miglior coordinazione dei diversi task che coinvolgono la cura del paziente. Le procedure chirurgiche in particolare sono spesso standardizzate in una sequenza di task a beneficio dell’intera équipe durante l’operazione. Questo lavoro di tesi si occupa dello sviluppo di un software per supportare la definizione e l’implementazione di workflow in sale operatorie equipaggiate con robot. Il software si sposta all’interno della sequenza di task definita preventivamente per supportare e interagire con la strumentazione robotica. L’aspetto di originalità sta nel fornire uno strumento software per un approccio generalizzato alla definizione, gestione ed esecuzione di workflow che si inseriscono direttamente nel robot framework. Quella trovata è una soluzione implementativa che offre un’architettura software e una serie di funzioni di base per l’implementazione di un Workflow Based Assistant (WBA). Al giorno d’oggi, le strutture per healthcare utilizzano le tecnologie robotiche per molte procedure chirurgiche e dalla neurochirurgia alla cardiochirurgia i robot sono diventati preziosi assistenti chirurgici. I robot e la robotica sono protagonisti di una costante crescita in termini di complessità e flessibilità d’utilizzo, sempre più campi di applicazione beneficiano dell’accuratezza e affidabilità che i robot forniscono. Le loro funzioni si sono evolute e negli anni, da strumenti in grado di eseguire specifici task chirurgici a funzioni sempre più complesse. Un aspetto molto importante riguardo il moderno utilizzo di robot in sala operatoria è la fonte di informazioni che questi strumenti sono in grado di collezionare rispetto all’ambiente che li circonda. I robot in sala operatoria, per esempio, sono già in grado di eseguire operazioni di gesture recognition, stereovision and motion tracking, volte a migliorare le interazioni uomo-macchina. Il WBA si propone come uno strumento software per integrare questi input dall’ambiente operatorio nell’esecuzione del workflow desiderato. A questo scopo abbiamo sviluppato un’architettura software che include sistemi software già disponibili e applicazioni appositamente create. L’architettura software del WBA si compone di tre elementi principali: un sistema di workflow management, un’ontologia e un’applicazione che interagisce con la strumentazione robotica. 1. Il Workflow Management System YAWL (Yet Another Workflow Language) è una software suite che poggia su un omonimo linguaggio di modellazione conciso e performante. Il WBA include il sistema YAWL per il design e l’esecuzione dei diversi workflow. Tra i diversi strumenti che offre, YAWL è corredato da un editor grafico intuitivo ed un YAWL execution engine, due componenti fondamentali del sistema software. YAWL costituisce un linguaggio espressivo e permette di definire workflows su molti livelli di granularità. All’utente finale è offerta la possibilità di definire, attraverso lo YAWL Editor, i diversi task che compongono il workflow, le loro connessioni, le variabili proprie del workflow e le condizioni di switch tra i diversi task. Al YAWL Engine è affidata invece l’esecuzione runtime dei task vera e propria e la corretta pianificazione dei vari tasks in accordo con quanto definito nella fase di design del workflow. 2. L’Ontologia è il secondo componente fondamentale del WBA. Le ontologie possono essere definite come una specificazione formale aperta e significativa dei concetti e le relazioni che caratterizzano un certo dominio di conoscenza. Le ontologie trovano utilizzo in mote applicazioni per la robotica perché offrono un approccio nel descrivere e traslare conoscenza formalizzata da uomo a software. Come in questo caso, utilizzare un’ontologia per descrivere un dominio, non aiuta solo l’utente ad organizzare le informazioni riguardanti i task, ma anche eventuali applicazioni software possono accedere a queste informazioni. L’ontologia che abbiamo definito, concettualizza e descrive workflow. La sua struttura organizza in una gerarchia di concetti (con le relative relazioni) i vari tipi di task, tutte le operazioni che un task può compiere, le condizioni in cui il task si può considerare concluso ecc. da eseguire nella fase di runtime. L’utente finale ha la possibilità di indicare come ogni task del workflow che sta definendo debba comportarsi, inserendo nella struttura dell’ontologia nuovi elementi task e le loro proprietà. La descrizione di un nuovo workflow da implementare con il WBA è un processo che combina il design della sequenza di task con lo YAWL Editor e l’inserimento delle caratteristiche di ciascun task all’interno dell’ontologia. Questa “base di dati” è fondamentale al terzo componente del WBA. 3. L’applicazione che colleziona input e informazioni dalle due precedenti e interagisce con l’ambiente robot è il terzo e ultimo componente fondamentale del WBA. Durante l’esecuzione di un workflow, questa applicazione riceve informazioni dal YAWL Engine riguardo il task attivato, interroga l’ontologia sulle proprietà attive del task e quando riceve notifica dalla sala operatoria che il task è concluso, riconsegna l’esecuzione del task al YAWL Engine. Questo processo si ripete ciclicamente fino alla conclusione del workflow. Il WBA è stato sviluppato per interagire con strumentazione robotica controllata con uno dei più usati sistemi operativi per il robot-control, il Robot Operating System (ROS). Per l’implementazione della nostra applicazione abbiamo utilizzato il più moderno Rosjava, la prima pura implementazione di ROS in Java. L’applicazione che abbiamo sviluppato per il WBA è parte integrante della rete di connessione in cui è inserita e comunica anche tutta la strumentazione robotica con cui il WBA si interfaccia. Il progetto ha compreso anche lo sviluppo delle soluzioni implementative e il protocollo di comunicazione per connettere il YAWL system, l’applicazione Rosjava e l’ontologia. Il lavoro di tesi comprende anche un’applicazione del WBA per un workflow utilizzato in neurochirurgia. La procedura scelta è quella per la Stereoelettroencefalografia (SEEG), utilizzata per impiantare elettrodi all’interno del cranio di pazienti che soffrono di gravi forme di epilessia ed identificata in collaborazione con l’equipe clinica dell’ospedale “Niguarda Ca’ Grande”, Milan (Italia). La procedura SEEG è stata analizzata, i singoli task definiti con lo YAWL Editor, e l’ontologia compilata con tutti i singoli elementi necessari. All’interno del laboratorio dell’istituto di “Intelligence Controls and Robotics (IPR)” del Karlsruhe Institute of Technology (KIT) al WBA sono stati forniti gli input per simulare l’esecuzione di una serie di procedure SEEG. Le simulazioni sono servite a valutare le performace del WBA in termini di plasticità nell’adattarsi ad una condizione reale, aderenza al comportamento desiderato, stabilità del software e dei suoi componenti e le tempistiche d’esecuzione. Il WBA si è rivelato stabile e le tempistiche di esecuzione delle diverse funzioni compatibili con l’applicazione pratica. Alcune possibili integrazioni con altri software o ampliamenti delle funzionalità del WBA sono stati individuati e proposti come sviluppi futuri.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2014_12_Brioschi.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Testo della tesi
Dimensione 2.89 MB
Formato Adobe PDF
2.89 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/102155