Ovvvero, quando sono arrivato a galway ero una persona semplice, e riparto più complicato, se non più complesso.

Guardavo l’ontologia più diffusa al mondo, foaf, ad esempio. La usano livejournal, vox, opera e un milione di altri siti.
Serve a descrivere persone, e relazioni tra di esse, ma siccome è stato il primo vocabolario ad avere un’ampia diffusione, è diventato un contenitore per una marea di robe astrattissime, come ad esempio “topic” che collega una pagina al soggetto della stessa.

Eppure, se volessi specificare il nome di una persona, fondamentalmente non funziona. Perché hai le proprietà “name”, “surname”, “first_name”, “givenname” e “familyName”.
Indovina quali devi usare? E come specificare un secondo nome? E perché non c’è un filo di consistenza nel dare un nome alle proprietà?
Broken. E come fissarlo? Lasciando il problema aperto per anni.

Il semweb’aro medio non pensa a risolvere un problema. Pensa a risolvere meta-meta-problemi. O a fare proof of concept che poi la gente adotta lo stesso e restano broken per anni. RDF Review anyone?

Io ad esempio ho provato a chiedere di poter collegare una vcard a una foaf:Person. Semplicemente, avere una proprietà foaf:hasBusinessCard.
Ne è nata una discussione su come gestire le proprietà, come gestire automaticamente gli aggiornamenti delle ontologie, e come usare un metodo di sviluppo basato su personae e uno pseudolinguaggio naturale che sia machine readable.
Due mesi dopo, quella singola riga di codice per aggiungere una cosa che a me serviva ancora non esiste.

Eppure dopo un po’ ti infettano, un pomeriggio parlando con paolo ho incominciato a dirgli che dovevo scrivere un’ontologia per gestire dei prodoti e che però era scomodo da fare con i tool esistenti e quindi avrei dovuto scrivere un tool per farlo ma che sarebbe stato meglio scrivere uno strumento che mi permettessi di generare questo tool e…
Stai diventando un semanticwebb’aro, mi ha detto lui. Ha ragione, solo che era una complessità che aveva senso, per me.

Allo stesso modo, io sono arrivato a galway rubyista, e me ne rivado javanese.

Poco prima di partire, paolo s’è messo a scrivere una servlet che gestisse i ping per il nostro progetto (pensa: tu mi dici un url, io recupero la pagina).
Si poteva risolvere in dieci righe in modo stupido. Lui s’è messo a scrivere la cosa, poi ha generalizato per astrarre il database, e per rendere tutto testabile, e per avere diverse strategie di fetch. A un certo punto s’è girato e m’ha detto sono arrivato a scrivere una abstract factory, sto diventando un javista.

La cosa drammatica è che tutta quella complessità non era assurda per me, ma motivata,tutto aveva perfettamente senso, solo che non si riusciva a vedere a occhio perché invece di essere due righe di codice erano diventate mille.

Quando un ambiente ti porta a pensare cose complicate, è difficile pensare semplicemente.

Antoine de Saint-Exupery, dicendo “perfection is achieved, not when there is nothing left to add, but when there is nothing left to remove” lo diceva ignorando i fattori sociali.
La perfezione è raggiunta quando non c’è niente da togliere, ma la tua impressione di necessità cambia sempre in base all’ambiente.
Non serve a niente bollire l’acqua prima di berla. Il fatto che fosse infetta a galway l’estate scorsa ti fa rivalutare la cosa.