Non deve essere la prima corrispondenza dal titolo Derive che scrivo… tant’è…
Oggi stavo studiando come meglio costruire un database, o meglio stavo studiando MySQL attraverso un progetto concreto su un database reale. In verità già nei giorni scorsi avevo preparato l’architettura delle tabelle, ma senza usare l’Entity Relationship Model, cioè sono andato per tentativi e appunti sul quadernetto… lo so, lo so, non si dovrebbe far così, si perde una sacco di tempo, si rischia di dover cambiare l’architettura le tabelle quando si è già scritto mezzo codice PHP, ecc. ecc. Ma visto che sono in fase di apprendimento, e lavoro per diletto, alle volte mi piace fare le cose come mi vengono lasciando i professionisti i metodi professionali insomma sono un po’ come quelli che si dipingono i mobili comprati grezzi all’IKEA…
Sta di fatto che ieri avevo già preparato le queries per la creazione delle tabelle nel database su un file .sql separato (ve be’ fai da te, ma scrivere direttamente il codice con il Monitor di MySQL è troppo anche per me… odio il maledetto prompt del DOS!). Oggi però mi son detto aspetta che provo a installare MySQL Workbench per vedere graficamente i joins e magari altre cosette carine che non mi son pensato.
Scarico il programma, lo installo, creo una tabella, penso al fatto di dover ricreare tutto il lavoro già fatto in SQL attraverso l’interfaccia grafica del programma, mi viene male, chiudo tutto. Va bene, le tabelle sono pronte, chi se ne frega, se manca qualcosa lo aggiungerò, farò il lavoro del mulo e cambierò il codice PHP in corso d’opera con gran dispendio di tempo… Però una cosa vorrei farla bene fin dall’inizio. Le convenzioni per i nomi. Si le convenzioni per i nomi dei files, delle variabili e compagnia bella in PHP. Fino ad ora ho usato una specie di stile simile a quello di Java (sono le uniche convenzioni che conosco) ma non va: qualche giorno fa leggevo una paginetta collegata al manuale PHP che parlava di convenzioni molto diverse…
E così ricerco le convenzioni su Google e tra una pagina e l’altra mi (re)imbatto in CakePHP, la libreria che cerca di fare con PHP quello che hanno fatto quelli di Ruby on Rails con Ruby. Che bello mi dico, hanno una paginetta chiarissima sulle convezioni, beh che dire potrei adottare le loro, così se un giorno voglio riadattare il codice per CakePHP sarà più semplice. Leggo, bello, chiaro, capisco, si capisco… no, non capisco: cosa sono questi Models, Controllers, Views, Helpers?
Ah qui lo spiegano, mhm interessante, forse dovrei strutturare l’applicazione basandomi su questa roba di architettura del software invece di andare come al solito a casaccio… Però non ho ancora capito bene cosa sia questo MVC, e poi cos’è questa business logic? Vediamo che dice Wikipedia…
Mhm, interessante, e questo CRUD? Che è? Create, read, update and delete (CRUD) are the four basic functions of persistent storage
.
Bello, mi ricorda un po’ la Trimurti induista: Brahma creatore, Visnu conservatore, Shiva distruttore solo che qui hanno separato in due le funzioni di Visnu… aspetta però mi ricorda anche un’altra cosa.. si la memoria, eh be’ persistent storage, cosa vuoi di più?
E così mi son pensato al famoso .xml sulla memoria, famoso per me, per voi magari non ancora…
Vado a ripescare nel mio persistent storage device, vedi disco_fisso/cartelle_di_windows… eccolo. Aspetta che lo pubblico… mhm, ma non posso embeddare l’XML in un post, no devo trasformare tutti i delimitatori dei tags con le entità, però forse avevo già fatto questo lavoro tempo fa in un file sull’altro mio persistent storage device, GoogleDocs. Ah no, su GoogleDocs avevo già pubblicato un documento formattato a liste, senza XML… Mhm, c’è anche una versione più nuova (7 mesi fa) del file sulla memoria… non me la ricordavo più…1
Va bene, alleghiamo questi due files ad un post sul blog, a suo tempo mi ero ripromesso di sviluppare una DTD prima di rendere pubblico questo sistema di mark-up per prendere appunti ma poi ho abbandonato il progetto dopo avere scoperto RDF e le Ontologie (che mi sono ripromesso di studiare…). Ma a proposito, visto che siamo in tema, potrei cominciare a creare dei nomi di file decenti sulla base delle convenzioni RDF per gli URIs di cui avevo visto sul blog di Casual.info.in.a.bottle.
Ecco l’articolo, bello questo articolo, al w3c devono avere cambiato strategia di marketing che si danno alla roba cool… Uff, si ma non è meno ostico del solito, anche se è cool… Oh, Giovanna. Si mi parli ma non ti ascolto, no, non riesco a leggere la documentazione del w3c e a capire cosa mi dici sul tuo grado di infettività influenzale… Ok, aspetta che ti leggo..chiaro no? No, diffiicle da capire? Va be’ ti spiego.
Allora Tim Berners-Lee è il tizio che ha inventato il World Wide Web. Ma non era un’invenzione dei militari?
Bah che ne so, magari lui era un fisico che lavorava per i militari, ma poi i militari avranno creato Internet al massimo, ma il Web l’ha inventato lui perché ha inventato l’HMTL. E cos’è l’HMTL? Beh i computers capiscono solo la sintassi, ma se io dico “La terra è rosa” oppure “La terra è sferica” dal punto di vista sintattico non cambia alcunché, quindi un computer non può capire la differenza, mentre un essere umano si. Per questo, per ora, noi esseri umani siamo ancora superiori a loro, perché capiamo la semantica. Solo che per capire la semantica siamo più lenti. E’ come la differenza che c’è tra Windows Vista e il vecchissimo DOS, con i processori di oggi il DOS sarebbe velocissimo perché non ha grafica, ecco è un po’ una cosa simile.
Vedi, l’HMTL è un linguaggio di mark-up, cioè ti permette di “marchiare”, diciamo così, certi pezzi di testo dicendo alla macchina, questo è un paragrafo, questa è una lista, questa è una citazione, questo è un collegamento ad un altro documento, ecc. E’ testo che parla del testo ed è su questo che è stato fondato il Web, che tu chiami Internet, ma Internet è solo la rete che connette, e cosa connette? Connette delle macchine, ma queste macchine che leggono? Leggono documenti, ecco questa collezione di documenti che è il Web, il famoso WWW, (che non è il WWF…).
Vedi quindi, con questa “marchiatura” del testo le macchine riescono a capire qualcosa di più perché leggendo i marchi che sono scritti secondo una sintassi convenzionale riescono ad interpretarli in qualche modo. Ecco Tim Berners-Lee ha pensato di usare questo stesso strumento non più per rappresentare informazioni circa il testo stesso che viene “marchiato”, ma verso le cose di cui quel testo parla, cioè la semantica, da cui Semantic Web. Capito? Le macchine non capiscono la semantica, gli umani si, quindi noi “marchiamo” il testo con una particolare sintassi così che le macchine possano “capire” la semantica. In realtà non la capiscono davvero, siamo noi che la capiamo per loro, ma alla fine sembra che la capiscano.
Per fare questo serve un linguaggio adatto con le giuste convenzioni e soprattutto serve che tanti esseri umani quando buttano dentro qualche dato su Internet lo “marchino” nel modo giusto così piano piano il Web conterrà al suo interno una rappresentazione semantica del mondo intero, o almeno di buona parte di esso.
Ma da questo nascerà l’intelligenza artificiale?
In un certo senso è possibile. Sai adesso ci son due scuole nella ricerca sull’AI, una che cerca di emulare con le macchine gli schemi di funzionamento della mente, un’altra che cerca di emulare con le macchine l’architettura neurologica del cervello creando super computers con un chip per ogni neurone del cervello. Ma in questo secondo modo non può funzionare!
Esatto, perché hai l’hardware ma non il software per farlo girare. Chissà, forse alla fine le due linee di ricerca confluiranno e avremo un super computer con una mappa chip<->neurone (e connessioni…) che riproduce l’architettura di un cervello umano e gira su un super software basato sull’intero Semantic Web.
Mi fa paura
, perché? E’ solo fantascienza
1 I contenuti del file sulla memoria sono una mia personale rielaborazione del materiale contenuto nel libro Guida allo studio: La Memoria di Marco Polito per Editori Riuniti. Data la lontananza tra le due opere credo che la pubblicazione dei miei files non costituisca violazione delle norme vigenti sul copyright, nel caso lo fosse in ogni caso ritirerò immediatamente il materiale.
The discussion is open, but no one has taken the first step yet... Oh! For heaven's sake, start saying something Janet!