Skip to content

Aaron Swartz, l’enfant improgrammable d’internet

14/09/2014

Ce billet revient sur deux documents :
le film-documentaire sur Aaron Swartz, The Internet’s Own Boy, que les francophones peuvent regarder grâce à une petite équipe de dévoués de sous-titreurs ;
et un livre d’A. Swartz, inachevé, diffusé à titre posthume par son éditeur :
A Programmable Web.
D’où le titre ci-dessus. Ces deux oeuvres sont sous licence Creative Commons.

The Internet’s Own Boy

The Internet’s Own Boy retrace la vie courte d’Aaron Swartz, qui s’est suicidé à 26 ans alors qu’il était poursuivi en justice pour avoir téléchargé des millions d’articles Jstor. Outre les explications sur les circonstances de la fin de sa vie, ce film permet surtout de découvrir une figure fondatrice d’Internet, moins médiatisée (du moins il me semble) que beaucoup d’autres dont les noms nous sont bien plus familiers.

La version sous-titrée est parue en juillet, peut-être étiez-vous déjà parti en vacances. Si c’est le cas, si vous ne l’avez pas encore vue, prenez le temps de le faire : il ne sera pas perdu.

Je suppose que « figure fondatrice » est inappropriée, vue que Swartz, né en 1986, n’a pu apporter sa contribution à l’internet qu’à partir de 12 ans, en 1998, en inventant une sorte d’ancêtre de Wikipedia : une encyclopédie collaborative en ligne, invitant chaque internaute à partager ses connaissances.

La lecture de A Programmable web permet de se rappeler que le premier navigateur inventé par Tim Berner-Lee était structurellement un outil de lecture/édition des pages web : le web était conçu à l’origine comme un mode de participation permanente, même si par la suite c’est le navigateur Netscape, parti sur une autre logique et une autre technologie qui s’est imposé (A Programmable Web, p. 22-23 de la version PDF). Il a fallu plusieurs années pour revenir à un web réinscriptible.

Où l’on voit qu’à 12 ans, Aaron Swartz était déjà complètement dans une compréhension de ce qu’était et pouvait être le web.

Plutôt que fondateur, disons qu’Aaron Swartz a un rôle fondamental dans plusieurs dimensions du développement d’Internet.

J’ai été particulièrement marqué par les minutes du documentaire consacré au rejet du projet de loi SOPA. Il partait manifestement perdant, tout en continuant à lutter contre ce projet, sous diverses formes. Et il me semble que si sur ce type d’engagement ses compétences techniques lui ont permis plus facilement d’en appréhender les enjeux, celles-ci n’étaient pas indispensables.

De mon point de vue, au-delà des informations biographiques, ce documentaire interpelle fortement sur la responsabilité de chacun face aux enjeux sociaux, notamment ceux liés à Internet — puisque Internet est amené à être au cours du quotidien de tous.

Et l’exemple de SOPA nous permet de nous rappeler que non, rien n’est jamais joué, même quand on pense que c’est trop tard, ou qu’on est dépassé par des forces plus grandes de toute façon.

Tiens, par exemple en ce moment, en France, il est beaucoup question — de nouveau, et ça reviendra régulièrement tant que cette neutralité ne sera pas mise à bas — de la neutralité du Net. En témoignent cet article (partagé sur Twitter par Laure de la Raudière), ou cette infographie (avec des chats, des voitures, des sangliers et des pigeons — ça devrait parler à tout le monde) que je vous invite à partager (même si je lui préfère cet article d’avril 2014 paru sur Rue89 qui expose de manière tout aussi claire pas mal d’enjeux).

Donc Internet est encore en train de se faire (et ce sera sans doute toujours le cas), il y aura encore besoin d’acteurs pour y jouer un rôle fondamental.

Précisons que lorsque Swartz s’est mobilié contre SOPA, il n’était pas seul à défiler. L’évolution d’internet ne dépend pas que de figures qui jouent un rôle fondamental : il dépend aussi de milliers ou millions de personnes qui acceptent, ou non, de jouer un rôle de simple contributeur.

A Programmable Web

Justement, dans A Programmable Web, Aaron Swartz aborde un de ces autres chantiers sur les lesquels il faut être vigilants : la concentration du web autour de quelques plates-formes (les GAFA), cette concentration qui empêche à la longue traîne d’être opérationnelle, cette concentration qui nous permet de lire plusieurs fois par semaine des billets d’Olivier Ertzscheid, futurologue angoissant.

Aaron Swart propose d’aller vers des logiciels peer-to-peer :

Un logiciel en peer-to-peer, si on arrive à faire en sorte que ça marche, semblerait rassembler le meilleur des deux univers : la liberté de modifier le mode de fonctionnement d’un programme sur nos ordinateurs locaux aussi bien que la possibilité de partager et de collaborer avec d’autres personnes sur Internet. Et pour ceux qui se préoccupent de liberté [il dit ailleurs : les êtres humains veulent généralement être libres. Si vous ne me croyez pas, demandez à un ami de vous enfermer dans le coffre de votre voiture, puis réévaluez votre position] (comme pour ceux qui aiment partager de la musique), ça paraît être le prochain grand projet de la recherche à venir.

Si je comprends bien, il dit : « Un logiciel peer-to-peer, ce serait cool. Vous ne comprenez pas trop comment c’est censé marcher ? Moi non plus, mais l’essentiel est que vous compreniez que c’est vraiment une solution« .

Ce que je retiens de la démarche de Swartz, c’est qu’il ne faut pas faire des questions techniques un pré-requis pour s’autoriser à s’intéresser à quelque chose, et estimer que c’est important. D’ailleurs, la technique, on la développe souvent après avoir identifié qu’il y avait là une compétence importante à acquérir, pas avant. Donc le point de départ, c’est bien de comprendre les enjeux, pas la machinerie.

Plus globalement, A Programmable Web est un ouvrage assez déconcertant. La commande de l’éditeur était : une petite synthèse sur la question du web sémantique.

Et Aaron Swartz commence par dégommer les efforts du W3C en matière de normalisation – à tel point qu’on pourrait croire qu’il trouve que le web de données, RDF, tout ça, c’est vraiment n’importe quoi (le dernier chapitre semble révéler qu’en fait non, c’est plutôt quelque chose de très intéressant et très puissant #spoiler) :

Au lieu de l’attitude « Allez, on va fabriquer quelque chose qui fonctionne » qui a permis au web (et à Internet) d’avoir un tel succès, ils ont importé l’état d’esprit normatif des mathématiciens, et les structures institutionnelles des personnels universitaires et militaires. Ils ont formé commissions (committees) pour former des groupes de travail écrire des ébauches (drafts) d’ontologies qui listaient soigneusement (dans des documents Word de 100 pages) toutes les choses de l’Univers et les diverses propriétés qu’elles pouvaient avoir, et ils ont passé des heures dans des débats talmudiques pour déterminer si une machine à laver était un robot de cuisine ou un appareil de ménage.

[…]

Et c’est comme ça que le « Semantic Web Activity » du Worldwide Web Consortium (W3C) a passé son temps à rédiger des standards sur des standards : l’Extensible Markup Language (XML), le Resource Description Framework (RDF), le Web Ontology Language (OWL), les outils de Gleaning Resource Descriptions from Dialects of Languages (GRDDL), le Simple Protocol And RDF Query Language (SPARQL) […].
Peu ont été largement utilisés, et ceux pour lesquels ce fut le cas (XML) sont devenus des fléaux pour toute la planète, une offense contre les programmeurs acharnés qui avaient produit des formats sensés (comme JSON), pour favoriser plutôt des boules de poils [?] hyper-compliquées sans aucun rapport avec la réalité.

Un peu plus loin, Aaron Swart fait une longue diatribe sur XML, mais j’en ferai un billet à part entière car je comprends mieux à présent le problème natif avec l’EAD.

Pour en revenir au web sémantique et aux technologies du Lined Data, il est vrai que tant que les développements liés à cette technologie restaient au niveau du W3C et des normes, ça ne prenait pas. Et puis il y a eu DBPedia, donc une application concrète avec une masse d’informations produites — et ça a vraiment démarré (voir la toute récente mise à jour du schéma recensant les publications de jeux de données liées, le Linked Open Data Cloud Diagram)

Ce qui précède, c’était l’introduction. Je ne vais pas vous traduire tout l’ouvrage, je vous invite plutôt à le lire (d’autant que comme c’est un brouillon, Swartz s’autorise certaines libertés savoureuses), car il remet pas mal d’idées en place. Et, ce qui est excellent, il incite parfois à protester (je n’avais pas envie d’être d’accord avec tout).

En voici donc juste quelques extraits.

Le plan est le suivant :

[Pour comprendre le web sémantique] nous allons commencer par essayer de comprendre l’architecture du web — ce qui va bien, et à l’occasion ce qui ne va pas, mais surtout pourquoi elle est ainsi. Nous verrons comment elle permet aux utilisateurs et aux moteurs de recherche de co-exister paisiblement tout en supportant n’importe quoi, du partage de photos aux transactions financières.

Nous continuerons en analysant ce que signifie élaborer un programme par dessus le web — comment écrire un logiciel qui serve correctement à la fois ses utilisateurs immédiats aussi bien que les développeurs qui veulent construire quelque chose dessus. Trop souvent, une API est conçu à l’issue du développement d’une application existante, comme une arrière-pensée ou un élément complètement indépendant.

Aaron Swartz consacre plusieurs pages à la structures de bonnes URL. Ces pages sont essentielles car nous oublions trop souvent dans notre navigation, et plus encore en s’habituant aux applis mobiles, que l’URL est la clé de voûte du web, puisque c’est elle qui donne accès aux choses (je dis aux choses, parce que jusqu’à il y a quelques années les URL donnaient surtout accès aux documents seulement, mais c’est de moins en moins vrai). Le maintien et la lisibilité des URL préserve en grande partie des enclosures du web (outre les questions juridiques de réutilisation, évidemment).

Les URLS ne doivent pas être considérées comme un effet de bord ou un question secondaire, comme beaucoup semblent le souhaiter. Designer les URLs est la part la plus importante de l’élaboration d’une application web et il faut commencer par là. La manière dont elles sont construire permet de déduire toute une série d’informations implicites sur le contenu de votre site, comment il est structuré et comment il devrait être utilisé ; toutes ces questions sont importantes et ne doivent pas être évacuées.

Aaron Swartz consacre ensuite du temps à expliquer les méthodes GET et POST de l’architecture REST. En gros, c’est la manière dont notre navigateur est capable de dialoguer avec des bases de données accessibles sur le web via des pages web (généralement des formulaires de requêtes). On est au coeur de la question du web de données, puisque celui-ci cherche à résoudre la question du décloisonnement de ces bases (puisque la structure des données stockées se perd dès lors qu’on ne les récupère qu’en HTML, non sémantique — ou si peu).

En résumé, GET est une commande lancée par un navigateur pour obtenir une ressource ; POST sert à agir sur cette ressource (à modifier l’information, par exemple).

Le chapitre 4 explique pourquoi le concepteur d’un logiciel en ligne (de type Gmail, Google Calendar ou Trello) a tout intérêt à autoriser ses utilisateurs à exporter leurs données stockées : c’est seulement ainsi qu’il convaincra les internautes qu’ils ne risquent pas de les perdre en venant les déposer chez lui.

Le chapitre 5 s’occupe des API. Et comme c’est là qu’il parle de XML et de JSON, je me le garde pour un autre billet. Surtout, Aaron Swartz (à travers l’exemple d’un catalogue de livres mis en ligne) glisse progressivement de la nécessité de mettre en place des API, à l’utilité de publier les données en RDF.

L’argument principal donné au chapitre 6 est le suivant : votre API ne pourra jamais envisager tous les types de requêtes qu’un internaute voudrait faire — et c’est là que SPARQL, interrogeant des données RDFisées, permet une bien plus grande liberté (cf. de recents exemples de requêtes tordues complexes intellectuellement créatives de requêtes, donc, ici ou ), et donc ouvrent à un plus grand potentiel votre base de données aux développeurs.

Une remarque tout de même :

RDF peut avoir toutes ces nombreuses caractéristiques sympathiques, mais il y a un gros revers : il est incomparablement plus compliqué à utiliser que JSON. Comme XML, il a son propre modèle de données, ce qui signifie qu’il faut écrire un code spécial pour transposer sa manière de voir le monde et la vôtre. Il y a des outils et des techniques pour amoindrir cela (comme mon propre outil RDFTramp [Swartz fournit en note un lien vers http://www.aaronsw.com/2002/rdftramp/, qui ne fonctionne plus], qui essaie de faire ressembler RDF à des objets Python bien plus normaux), mais ça reste un sérieux problème.

Le chapitre 7 retrace rapidement l’histoire de l’open source et du GNU Project.

La conclusion au chapitre 8 décrit un logiciel qui semble très intéressant et dont j’ignorais l’existence : CWM.

Un des outils les plus excitants du Web Sémantique est un programme appelé CWM […]. CWM (prononcez COOM) est un des programmes les plus formidables que j’aie vus ; c’est un véritable couteau suisse des données, intégralement consacré au RDF.
Evidemment, il assure les bases — lire et écrire des fichiers RDF de différents formats, combiner plusieurs fichiers, produire des résultats dans un format soigné.
Evidemment, il peut aussi faire une recherche dans un jeu de données pour répondre à votre requête de la même manière que le fait SPARQL.
Mais CWM va un peu plus loin. Il ne se contente pas de rechercher dans les données : il réfléchit sur elle. CWM peut appliquer des règles logiques ; voici un exemple :
{?x a :Man} => {?x :mortality :mortal}
(si quelque chose est un homme, alors cette chose est mortelle.) Donnez cela à CWM, avec ce qui suit :
:Socrate a :Man.
Et il va en déduire logiquement que Socrate est mortel. De tels ensembles de règles ont évidemment toutes sortes d’usages […]
Mais CWM peut faire beaucoup plus que des simples inférences logiques de base. Il a aussi une large variété de fonctions implémentées, qui peuvent aller de processus mathématiques à de la cryptographie avancée. Grâce à elles et à quelques règles intelligentes, vous pouvez bâtir des programmes entiers avec CWM.
Au fait, rien de tout cela n’est nouveau — presque tout le logiciel a été conçu en 2001.

Et enfin, le Tabulator :

Vous devriez essayer le dernier projet de Tim [Berner-Lee] : le Tabulator. C’est une petite extension pour votre navigateur web qui vous permet de voir les documents RDF associés aux pages web standard.

En conclusion, je pensais lire le livre avec l’espoir de me dire à la fin : « Ca, c’est fait ». J’en ressors avec beaucoup d’autres choses à faire… Et vous aussi.

9 commentaires
  1. tuwx permalink
    15/09/2014 11:31

    Merci pour cette synthèse.
    Désolé de me montrer si rigide, mais internet *n’est pas* le web. Cette confusion, si fréquente, empêche de saisir tous les enjeux, notamment ceux de la neutralité…

  2. 15/09/2014 11:59

    @tuwx : Merci pour cette précision importante et utile – mais j’avoue que je ne vois pas trop à quel moment j’ai fait la confusion.
    Ah si, quand je dis que les URL sont la clé de voûte d’Internet (et peut-être ailleurs ?). Désolé.
    J’ai fait 2-3 corrections, j’espère avoir évacué toutes les confusions trop rapides.

  3. 15/09/2014 19:53

    Un article fort intéressant ! Merci pour la découverte, ça donne envie de voir le film-documentaire.

  4. tuwx permalink
    15/09/2014 22:15

    En effet, il n’y avait pas tant de confusion que cela. Mea culpa, je me suis un peu emballé.

    Du coup, j’en profite pour dire que je lis toujours ce blog avec grand intérêt, et en particulier cet article.

    *Hâte de lire la suite des réflexions sur EAD.*

  5. 16/09/2014 07:50

    @Tuwx : Surtout ne vous excusez jamais de relever des erreurs sur ce blog, c’est toujours LA chose à faire !

Trackbacks

  1. Aaron Swartz, l'enfant improgrammable d'interne...
  2. Aaron Swartz, l’enfant improgrammable d’internet | Veille juridique
  3. Aaron Swartz, l'enfant improgrammable d'interne...
  4. Le XML pour écrire du texte, l’EAD pour produire des données (avec du A. Swartz dedans) | Bibliothèques [reloaded]

Les commentaires sont fermés.

%d blogueurs aiment cette page :