Топ-100
Indietro

ⓘ Reificazione, informatica. In informatica, la reificazione è il processo tramite cui un concetto astratto viene trasformato in un modello dei dati o altri ogget ..




                                     

ⓘ Reificazione (informatica)

In informatica, la reificazione è il processo tramite cui un concetto astratto viene trasformato in un modello dei dati o altri oggetti creati tramite un linguaggio di programmazione. Un oggetto computabile/indirizzabile, detto "risorsa", viene creato nel sistema per incapsulare un oggetto non computabile o indirizzabile.

Informalmente, reificare un concetto o comportamento astratti significa renderli un first-class object, come un tipo, un oggetto, unentità o un valore, ovvero una qualche struttura che supporti le operazioni più comuni, quali lessere passata come argomento, ritornata da una funzione o assegnata ad una variabile.

La reificazione è una tecnica molto comune nel paradigma object-oriented, in analisi concettuale e nella rappresentazione della conoscenza.

                                     

1. Reificazione e linguaggi riflessivi

Nel contesto dei linguaggi di programmazione, la reificazione è il processo tramite cui taluni aspetti del programma o del linguaggio programmazione, che altrimenti sarebbero impliciti nel codice compilato e a tempo di esecuzione, vengono espressi dal linguaggio stesso. Tramite la reificazione, il programma può analizzare tutti questi aspetti come dati ordinari. Nei linguaggi riflessivi, il referente ovvero la struttura creata tramite reificazione è causalmente connesso allaspetto reificato, in modo che una modifica del primo riguardi anche il secondo.

La reificazione, almeno parzialmente, può essere espressa nellutilizzo di vari linguaggi:

  • In Java esistono dei reifiable types "tipi reificabili" che sono "completamente disponibili a tempo di esecuzione" ovvero, i loro metadati non vengono cancellati durante la compilazione del sorgente
  • In C#, la reificazione è utilizzata per eseguire il polimorfismo parametrico.
  • Il linguaggio Scheme reifica le continuazioni approximately, the call stack.
  • Molti linguaggi, come Lisp, JavaScript e Curl, forniscono una procedura chiamata eval o evaluate che reifica a tutti gli effetti linterprete del linguaggio. Ad esempio, scrivendo uno script JavaScript del tipo:equivale a scrivere In questo modo, come si può notare è molto semplice manipolare gli oggetti senza utilizzare direttamente i nomi delle variabili, bensì ricavandoli dinamicamente.
  • In C vengono reificati i dettagli di basso livello degli indirizzi di memoria. A differenza di molti altri linguaggi, infatti, la gestione della memoria viene eseguita direttamente nel codice sorgente, per cui sono necessarie tecniche per la gestione dei metadati delle variabili del programma. In particolare, lindirizzo di memoria viene reificato e reso disponibile per la manipolazione diretta da altri costrutti del linguaggio. Nella seguente linea di codice, ad esempio, viene creato il puntatore buffer per permettere di accedere allindirizzo di memoria 0xB800000
                                     

2. Reificazione dei dati e refinement

Nel metodo formale VDM, la reificazione è detta refinement "raffinamento". Il data refinement consiste nel sostituire il tipo di dati astratto usato nella progettazione di un algoritmo o di un sistema con una rispettiva struttura dati concreta.

                                     

3. Reificazione nella modellazione concettuale

La reificazione è largamente impiegata nella modellazione concettuale. Reificare una relazione significa rappresentarla come unentità.

Per esempio, considerando la relazione AppartieneAmembro:Persona, Comitato, unistanza di AppartieneA rappresenta il fatto che una persona sia membro di un comitato. La figura in basso raffigura un esempio di istanze della relazione in forma tabulare. La reificazione della relazione AppartieneA consiste nel trasformarla in unentità Appartenenza, la quale, tramite due relazioni ad hoc AppartenenzaP e AppartenenzaC viene collegata, rispettivamente, alle entità Persona e Comitato.

Nel contesto della modellazione dei dati, reificare una relazione è indispensabile quando si vuole trattare la relazione stessa come unentità. Nellesempio sopra, luso dellentità Appartenenza potrebbe servire a definire la relazione che indica quale persona stabilisce lappartenenza di unaltra persona ad un comitato, ovvero StabiliscePersona, Appartenenza.

Nel contesto dellimplementazione di una base di dati, la reificazione è necessaria quando la relazione non ha vincoli di cardinalità. Nellesempio sopra, una persona può essere membro di più comitati, e un comitato può avere più membri. Questa situazione non è esprimibile né integrando la relazione nella tabella Persona tramite un eventuale attributo Persona.appartiene_a né integrandola nella tabella Comitato tramite un eventuale attributo Comitato.partecipanti, in quanto un attributo può contenere un solo valore. La soluzione più semplice è inserire tutte le istanze della relazione AppartieneA in una tabella Appartenenza avente due attributi, membro e comitato, imponendo i necessari vincoli di foreign key verso le tabelle Persona e Comitato, rispettivamente.

Analogamente, anche gli attributi di unentità possono essere reificati, qualora siano troppo complessi.

UML fornisce il costrutto association class per definire le relazioni reificate. Tale costrutto è sia di tipo "classe" che "associazione".



                                     

4.1. Reificazione nel Web semantico RDF e OWL

Nei linguaggi per il Web semantico, come Resource Description Framework RDF e Web Ontology Language OWL, ogni affermazione statement è costituita da una relazione binaria, formata da soggetto, predicato e oggetto. Uno statement viene utilizzato per collegare due risorse o una risorsa e un valore. Talvolta, tuttavia, può essere necessario esprimere predicati riguardanti la stessa relazione. Ad esempio, potremmo voler rappresentare alcune proprietà della relazione stessa, come il suo grado di affidabilità, la sua rilevanza, la forza con cui soggetto e oggetto sono connessi, ecc.

Seguendo lesempio sui comitati riportato nella sezione sulla modellazione concettuale, una particolare persona può essere indicata con URIref person:p1, e un particolare comitato ex:c1. La tripla RDF descrivente il fatto che p1 è membro di c1 è la seguente:

Si considerino ora i due seguenti casi:

  • si vuole esprimere il fatto che una persona abbia registrato tale nomina nella base di dati.
  • si vuole esprimere il fatto che una persona abbia nominato unaltra persona membro di un particolare comitato;

Nel primo caso si può attuare la classica reificazione come sopra:

Nel secondo caso, si necessita di esprimere affermazioni riguardanti lo statement stesso. Per far ciò, RDF fornisce un vocabolario dedicato alla descrizione degli statement, costituito dal tipo rdf:Statement e dalle proprietà rdf:subject, rdf:predicate, e rdf:object.

Queste quattro triple indicano che la risorsa indicata con URIref ex:appartenenza0004Stat è uno statement RDF, che il soggetto di tale statement si riferisce alla risorsa identificata con person:p1, il predicato alla risorsa identificata con committee:AppartieneA e loggetto alla risorsa identificata con ex:c1. Utilizzando la reificazione secondo tale convenzione, possiamo successivamente esprimere il fatto che person:p3 ha aggiunto la suddetta affermazione nella base di dati:

                                     
  • della merce e una reificazione della persona, un trasformare cioè le persone in oggetti. Un analisi approfondita della reificazione Verdinglichung, cioè
  • interna prende il nome di reificazione e l oggetto rappresentato da una reificazione è detto il suo referente. La reificazione è una rappresentazione causalmente
  • consultato il 21 dicembre 2019. Parametro sconosciuto li gua ignorato aiuto Ereditarietà informatica Paradigma di programmazione Reificazione informatica
  • In informatica nell ambito della progettazione dei database, il modello entity - relationship detto anche modello E - R in italiano: modello entità - associazione
  • dell idea di nulla può condurre facilmente all errore logico noto come reificazione ovvero al considerare reale ciò che è astratto Tuttavia molti esistenzialisti
  • Per esempio C a differenza di Java, utilizza sin dalla versione 2 la reificazione per generare oggetti generici che possono essere usati come classi, riservando