Va bene, dai, mi metto io a fare la rompiballe (tanto mi viene bene...).
TL;DR: Se chi legge il pezzo di Manu Sporny decide di credergli completamente, di pensare che la comunità del Semantic Web sia fatta da emeriti imbecilli con la testa tra le nuvole, a me sta più che bene purchè poi decida di adottare JSON-LD. Penso però che, anche in quanto "opinionated piece", il post sia parziale (nel senso che non la racconta tutta...) e a tratti anche impreciso (per non dire scorretto). Detto questo, JSON-LD è una figata, quindi vedete di impararvelo :-P
Apprezzo molto il lavoro di Manu Sporny in generale e spesso mi trovo in accordo con lui, anche grazie al suo approccio molto pragmatico alle cose. Devo dire che però questo pezzo mi ha un po' delusa e in alcuni punti anche sconcertata. È vero che io sono molto "opinionated" a favore del Semantic Web; facendo parte di quel mondo da più di 10 anni, però, sono anche allergica a quelli che ci tengono a fare distinguo del tipo "Linked Data sì, Semantic Web no" che secondo me sono sono scemenze o echi di buzzword senza vero contenuto (scusa Alberto). In particolare, trovo che il post di Sporny abbia almeno tre pecche, nei confronti del W3C, di RDF e dello sviluppo Web.
Relativamente al W3C, Sporny si prende il merito di aver fatto la prima specifica leggibile da chiunque. È assolutamente vero che ci sono molte specifiche W3C che sono parecchio astruse (quelle di XML ad esempio), ma contesto il fatto che nessuna specifica sia fatta per non-tecnici. Ad esempio, proprio prendendo l'RDF tanto in odio a Sporny, il W3C ha un "RDF Primer" che secondo me è assolutamente comprensibile per chiunque (vi sfido a leggerlo) e che è fatto apposta per chi non vuole i dettagli. Ci sono anche ovviamente le specifiche "Semantics and Abstract Syntax" che io mi sono sempre rifiutata di leggere perchè di nessuna utilità per me (anche se, con un certo sforzo, dovrei essere in grado di comprendere...); trovo però assolutamente imprescindibile che, quando si spiega uno standard, ci siano anche tutti i dettagli complessi e inutili ai più, ma utili agli specialisti del settore che spero non siano sempre considerati i figli della serva.
In più Sporny parla di JSON-LD come se fosse il primo caso di standard W3C con una reale implementazione. Credo che sia noto a (quasi) tutti che qualsiasi specifica del W3C per passare allo stadio finale di "Recommendation" (ovvero di standard conclamato) debba avere almeno 3 implementazioni distinte. Sono ben felice che JSON-LD sia riuscito ad avere queste 3 implementazioni in relativamente così poco tempo (viva viva JSON-LD), ma che non mi vengano a dire che è un'eccezione.
La questione "RDF o non RDF" così come raccontata da Sporny secondo me ha quasi del surreale. La cosa che mi preoccupa di più però è che contribuisce ad un generale misunderstanding su quello che RDF è realmente e che per molti anni ha ostacolato (e probabilmente per molti anni ancora a venire ne ostacolerà) l'adozione presso chi non si preoccupa di capirlo. Scusatemi se mi metto a fare le pulci con pedanteria, ma credo che le parole abbiano una semantica (sissì) e che sia necessario usarle sapendo cosa si sta dicendo.
RDF è un *modello dati*: non è un linguaggio, non è un formato o una sintassi; è un modello dati relazionale, il più semplice modello relazionale possibile, quindi non inventato da quattro invasati del Semantic Web, ma un modello che si basa su una lunga e solidissima storia del mondo relazionale (leggi: database). RDF ha delle sintassi concrete, la più nota delle quali è purtroppo il famigerato RDF/XML, per fortuna non l'unica.
JSON-LD è un *formato* o se volete una sintassi, NON un modello dati. In quanto tale, ovviamente *fa riferimento* ad un modello dati. Non commento sulla storia che JSON-LD è iniziato senza pensare a RDF come modello (?!?), che l'RDF Working Group ne ha scippato la parternità, ecc. ecc. Sicuramente è andata così (nella testa di Manu Sporny), secondo me che molti avessero come retropensiero il modello dati di RDF è scontato, ma ammettiamo che io abbia torto. Dopo lunghe discussioni, valutazioni, opinioni e ripensamenti del working group, il modello dati cui fa riferimento la specifica ufficiale di JSON-LD è... RDF! Ma dai? Davvero? Chi l'avrebbe mai detto?
Lo "shitty RDF" evidentemente tanto shitty non è. Tra l'altro, Sporny cita dei limiti insormontabili del modello RDF francamente inesistenti: ne cito due che mi sembrano ridicoli. RDF non sarebbe in grado di formulare liste: ovviamente falso, c'è modo di esprimere liste in RDF; certo, il modello concettuale è più complesso di quello che il non-specialista immaginerebbe, ma rientra nelle specifiche di dettaglio che dovrebbero leggere solo gli specialisti; certo, scrivere liste in RDF/XML è un delirio, ma in RDF/Turtle (viva viva Turtle) è incredibilmente più semplice e in SPARQL 1.1 è diventato anche facile interrogarle. RDF non prevederebbe il concetto di grafo: è vero che la specifica W3C di RDF del 2004 non includeva i named graph e che questi stanno per essere standardizzati dal W3C solo 10 anni dopo con RDF 1.1 (attualmente ancora Proposed Recommendation); è anche vero però che, da che io mi ricordi, tutte le implementazioni note di RDF store hanno sempre avuto il supporto per i named graph (potrei sbagliarmi, ma credo che anche il primo Sesame avesse una primitiva che "mimava" il concetto di grafo). Il fatto che una specifica W3C non contenga qualcosa non significa che chi la adotta la segua alla lettera senza aggiungerci mai del suo (vedi i milioni di dialetti di HTML che i diversi browser supportano).
Infine, la critica più aspra di Sporny è relativa allo stack tecnologico che serve per "implementare" il Semantic Web. Sporny si vanta di non aver mai usato RDF, SPARQL o un triple/quad store nella sua azienda, e ci credo anche. Così come so che ci sono moltissimi membri della famigerata comunità del Semantic Web che si ostinano a tradurre tutto in Datalog o a usare altri linguaggi esotici tipo OCML; così come aziende "semantiche" tipo Cyc usano un loro linguaggio proprietario o come Freebase che ha definito il suo linguaggio di interrogazione MQL. Va bene, non lo prescrive il dottore di usare RDF e persino Tim Berners-Lee e il W3C non credo che avrebbero alcunchè da ridire.
Però dire che chi usa JSON-LD non ha bisogno d'altro mi sembra francamente una bufala. Se hai tanti dati dove li metti? Non ti serve un XXX-store? E se vuoi interrogare questi dati come fai? Non ti serve un XXX-QL? Va bene, usiamo pure MongoDB o quello che ci è più familiare o qualunque altra cosa sia di moda oggi; però secondo me è falso e fuorviante dire che imparare RDF/SPARQL sia più difficile che imparare un altro stack tecnologico. Quando qualche anno fa avevo provato a usare un graph database (Neo4J, per la cronaca) mi ero dovuta imparare il suo modello e il suo linguaggio di interrogazione; conoscendo SQL e SPARQL, lo avevo trovato astruso e difficile al primo utilizzo, ma non per questo l'ho buttato via o ho pensato che chi era dietro Neo4J fosse un pazzo che si sogna di proporre allo sviluppatore Web medio una cosa insensata. La mia "opinionated" convinzione è che SPARQL sia estremamente intuitivo come linguaggio di interrogazione, per certi versi più semplice ancora di SQL in quanto "navigazionale"; ma vabbè è solo la mia opinione di parte.
In conclusione (scusate la lunghezza e complimenti per la pazienza se state ancora leggendo), viva viva JSON-LD e ancor più viva viva il Semantic Web. Capisco che Manu Sporny si sia stancato di bussare alle porte dei venture capitalist americani che solo a sentire "Semantic Web" chiudono il portafoglio (tranne casi isolati tipo Mark Graves); e capisco quindi che sia suo preciso interesse prendere le distanze da una comunità che viene percepita come una buzzwork che nasconde complessità e insuccesso. Ma, credetemi, i Linked Data *sono* il Semantic Web e poco importa se non viene usato OWL o le caratteristiche più avanzate di RDF 1.1 o SPARQL, rimane cmq Semantic Web. E chi dice di fare Linked Data senza fare Semantic Web semplicemente non ha capito cosa sta facendo. E la comunità del Semantic Web (tranne forse la setta dei logici maledetti) è fatta da persone normali che non pensano in Description Logic nè in XML e che si sbattono con costanza per "spend your time doing something more useful, like actually making machines smarter or helping people publish data".
Nota (veramente) finale: Manu Sporny faccia pure lo sborone, ma il merito di JSON-LD (viva viva JSON-LD) è al 90% di Markus Lanthaler; e ringrazio il cielo che un'altra persona molto pragmatica e molto concreta come David Wood si sia presa la briga di ricondurre ufficialmente JSON-LD al modello RDF malgrado gli anti-Semantic Web...
Perdonate il "rant" ma non ho resistito... :-)
Ciao,
Irene