💰💌 Si tu te procures un abonnement d'un an au forfait premium de Oui, mais je LLM d'ici le 30 novembre, je t'offre en prime mes quatre formations autodidactes, une valeur de 276 $ ! Clique ici !" 💰💌

Magic Scroll Icon Le grimoire du magicien Magic Scroll Icon

Tout sur les licences de logiciels et de données pour la science des données - Formation gratuite et complète

- 4 285 mots - Temps de lecture estimé: 24 minutes

🌘 Chapitre 1 : Introduction

Cette présentation a été donnée en entreprise en 2022, et je l’offre à la communauté parce que son contenu est toujours très d’actualité.

Le contexte de cette présentation, c’est que la science des données, ou analytique avancée, n’est pas un développement informatique classique.

🌘 Le logiciel libre

La principale raison qui a motivé l’utilisation du logiciel libre en science des données est l’accélération du développement de notre domaine de connaissances.

Le logiciel libre permet de :

🌘 Le logiciel libre permet aussi :

🌘 C’est magique !

Image d'un château de conte de fées la nuit

🌘 Pas si vite !

Image de l'intérieur d'une voiture en mouvement rapide

GitHub, ce n’est pas Walt Disney ! Le logiciel libre est un commun numérique généralement développé par des bénévoles.

Pour bien l’utiliser, c’est important de connaître :

C’est ce qu’on va voir ensemble !

🌘 La reproductibilité

Avant l’utilisation de l’analytique avancée, même en utilisant des logiciels privatifs, les résultats étaient reproductibles, car on utilisait des règles statiques. La fiabilité et la reproductibilité étaient les caractéristiques recherchées pour les logiciels.

Image d'un astronaute travaillant sur une station spatiale

En utilisant la rétro-ingénierie, on pouvait déduire ces règles, même sans avoir accès au code source. Les systèmes étant complexes et peu performants par rapport à aujourd’hui, les règles étaient souvent de simples régressions.

Image d'instructions de montage en briques LEGO

Aujourd’hui, avec l’apprentissage automatique, il ne suffit plus de pouvoir obtenir les règles pour s’assurer de la reproductibilité des résultats. Il faut être capable de reproduire le modèle d’apprentissage. Il nous faut donc avoir les données historiques ainsi que le logiciel qui a permis de créer le modèle.

Image d'un carnet de notes ouvert à côté d'un graphique

De plus en plus, les modèles se complexifient et sont personnalisés pour chaque jeu de données. On ne peut donc plus compter sur un progiciel pour construire des modèles. On utilise un langage de programmation.

Image de boîtes de logiciels Oracle

Donc, pour pouvoir reproduire la création d’un modèle, on considère maintenant qu’il nous faut aussi le code en plus des données. Ce qui nous amène à considérer le logiciel libre, autant que les données, comme deux éléments à l’avant-plan de la science des données.

🌘 Les données ouvertes

Le web regorge de données pouvant être utilisées pour enrichir nos analyses. Cependant, chaque source de données présente différents contextes d’utilisation et des niveaux de permission variées.

Image d'un écran vert avec le texte "access granted"

Image d'un centre commercial moderne

Dissonnance Cognitive

🌘 Chapitre 2 : Historique

Le partage de connaissance est essentiel pour éviter la création de monopoles. Le brevet est un monopole octroyé par l’État à une entreprise qui lui donne potentiellement un pouvoir démesuré et prévient l’innovation. L’entreprise Ford a été une des premières à partager son portefeuille de brevets à ses concurrents sans compensation monétaire ni poursuites.

Image d'une bibliothèque bien garnie

Image d'un moteur de voiture

🌘 Le logiciel libre et la Free Software Foundation

Au début de l’informatique, le code est toujours distribué avec les systèmes informatiques. Jusqu’aux années 1970, la majorité des logiciels sont partagés dans le domaine public par les entreprises et les universités. À l’époque, le coût des logiciels représente une petite fraction du coût du matériel.

Image d'une carte perforée de l'Université de Sussex

Image d'un ordinateur ancien Sperry Univac 90/30

Dès les années 1970 et 1980, les entreprises qui étaient davantage investies dans le développement de matériel informatique se sont mises à s’approprier le code, à le compiler et à distribuer des logiciels propriétaires. Les utilisateurs des ordinateurs devenaient dépendants du fournisseur pour améliorer le logiciel. De plus, il n’y avait pas de mises à jour ou de correctifs. Tu devais acheter la nouvelle version en espérant que ton bogue était réparé. Chaque logiciel était compilé seulement pour ton modèle d’ordinateur. Nouvel ordinateur = nouvelle licence du logiciel.

Richard M. Stallman réalise qu’il devient impossible de déboguer ou améliorer les logiciels qu’il utilise dans son laboratoire.

Image de Richard Stallman lors d'un congrès

Il fonde alors le projet GNU en 1983, afin de créer un système d’exploitation libre et une suite complète de logiciels permettant de développer et de compiler de nouveaux logiciels.

Image du logo GNU (la tête d'un gnou)

Afin d’offrir ces logiciels librement, il crée en 1985 la Free Software Foundation pour vendre ces logiciels et distribuer leur code. En 1989, accompagnée d’Eben Moglen, un avocat spécialisé en droit du logiciel, il rédige la licence publique générale GNU (GPL).

Image du logo GPLv3

🌘 Les distributions

Avec Internet (et non le web, ça n’existe pas encore), le modèle du libre se fait connaître. La compilation de compilateurs GCC et le débogueur GDB sont devenus des standards de l’industrie. Une entreprise, Cygnus Software, est créée pour les supporter en entreprise. Cette entreprise deviendra Red Hat, rachetée par IBM en 2019.

En 1991, Linus Torvalds publie le noyau Linux, alors un projet étudiant, sous la licence GPL.

Image du message original de Linus Torvalds annonçant Linux

Dans les années suivantes, des distributions de logiciels se créent autour du noyau Linux et des logiciels GNU. On les appelle maintenant GNU/Linux. Aujourd’hui, ces distributions servent à faire fonctionner la grande majorité des serveurs connectés à Internet. Une des différences entre les distributions est au niveau du choix des licences des logiciels qu’elles choisissent d’inclure.

🌘 Le mouvement Open Source

La publication de The Cathedral and the Bazaar par Eric S. Raymond a mené à la création de la Mozilla Foundation et la libération du code de Netscape (devenu Mozilla Firefox) sur la Mozilla Public Licence.

Image du logo de l'Open Source Initiative

Le mouvement Open Source est davantage autour de l’agilité et de règles de collaboration.

Il y a un clivage idéologique entre certains membres de la FSF et de l’OSI. L’important, c’est ici les contributions en terme d’uniformisation et de compatibilité des licences.

🌘 La fondation du mouvement Creative Commons

Image de la sketchnote "Copyright, Course Materials and YOU !"

🌘 Le droit d’auteur

Le droit d’auteur sert à empêcher de reproduire son oeuvre sans autorisation. Il couvre les oeuvres de nature littéraire, dramatique, musicale et artistique. Au Canada, le code informatique est considéré comme une oeuvre littéraire.

Image représentant les types d'oeuvres : livre, masques de théâtre, notes de musique, palette de peintre

🌘 Le domaine public

Au Canada, une oeuvre appartient au domaine public de trois façons :

Image d'une pierre tombale, d'une ville et d'un symbole de copyright barré

🌘 Création des licences Creative Commons

Le droit d’auteur est très restrictif. Le domaine public nécessite d’abandonner toutes les provisions du droit d’auteur. L’avocat américain Lawrence Lessig propose en 2001 de créer des licences qui permettent de diviser le droit d’auteur en composantes. C’est la naissance du concept de Creative Commons.

🌘 Le Web sémantique (3.0) de Tim Berners Lee

Le web sémantique est une version du web où toutes les données sont représentées sous la forme de triplets formant des relations. Ces relations sont représentées par des URI qui sont structurées sous la forme d’ontologies. Les ontologies permettent de mettre les objets dans un contexte et d’effectuer du raisonnement logique sur eux.

Dans le domaine des données ouvertes, on classifie le niveau d’ouverture des données sur une échelle de 1 à 5.

Image du diagramme "5 Star Open Data"

🌘 Chapitre 3 : Les types de licences

🌘 Qu’est-ce qu’une licence ?

Une licence est un contrat qui définit comment tous les utilisateurs d’un logiciel, à l’exception de son créateur, peuvent l’utiliser, le partager, le modifier et partager les modifications. Elle peut aussi inclure des restrictions sur le nombre d’utilisateurs, sur le matériel où le logiciel peut être exécuté et sur le type d’usage qui peut en être fait. Certaines licences peuvent aussi interdire l’utilisation dans certains contextes, pour certaines entreprises, ou encore interdire la revente du logiciel sous la forme d’un service. Les licences sont généralement recensées via le système Software Package Data Exchange (SPDX).

🌘 Qu’est-ce qu’un logiciel libre ?

On définit un logiciel comme étant libre lorsqu’il respecte les quatre libertés suivantes :

🌘 Licences avec réciprocité (CopyLeft)

Image d'art postal avec le mot "Copyleft"

Aussi appelées virales ou héréditaires, elles ne peuvent pas être remplacées par des licences plus permissives. Elles permettent de garantir que les futures versions et embranchements du logiciel seront aussi des logiciels libres.

Image de Steve Ballmer sur scène

🌘 Licences permissives

Il existe trois familles principales :

🌘 Pour les logiciels-services (SaaS)

Les licences “réseau” permettent aux utilisateurs d’un logiciel à travers un réseau d’avoir accès au code source.

🌘 Les licences du Québec

Développées par le Gouvernement du Québec, elles sont compatibles en amont avec plusieurs licences populaires mais sont “absorbantes” car les actions en justice doivent avoir lieu au Québec.

🌘 Licences non libres

De plus en plus de groupes critiquent l’utilisation des licences libres, menant à des licences plus restrictives commercialement.

🌘 Généralités

🌘 Oeuvres littéraires et artistiques

Pourquoi s’y intéresser en science des données ?

🌘 Creative Commons (CC)

Les licences CC cèdent certains droits à la communauté via des composantes :

Image montrant les 4 icônes des composantes Creative Commons : Paternité, Partage à l'identique, Pas d'oeuvres dérivées, Pas d'utilisation commerciale

Ces composantes forment 6 licences, plus la CC0 (domaine public).

Image du spectre des licences Creative Commons, du plus ouvert au plus restrictif

Si on combine des œuvres disponibles sur plus d’une licence différente, il faut regarder leur compatibilité et choisir la licence la plus restrictive parmi celles-ci.

Tableau de compatibilité des licences Creative Commons

Enjeux avec les licences CC :

🌘 Free Documentation Licence (FDL)

Conçue pour la documentation logicielle, elle est similaire à la GPL mais avec des sections immuables, ce qui pose problème. C’est une licence à éviter, remplacée par CC-BY-SA-4.0.

🌘 Licence Art Libre (LAL)

Permet de partager du contenu artistique sous des conditions similaires à la GPL. Elle est équivalente et compatible avec CC-BY-SA-4.0.

🌘 Domaine public

Permet d’utiliser le contenu sans condition. Au Canada, cela inclut les œuvres dont le droit d’auteur a expiré, les œuvres gouvernementales après un certain temps, et celles explicitement placées dans le domaine public.

🌘 Matériel (Hardware)

🌘 Chapitre 4 : Les logiciels de sciences des données

Un langage de programmation ne peut pas être couvert par le droit d’auteur. Cependant, les logiciels qui compilent ou interprètent les langages sont couverts et peuvent être libres ou non.

🌘 Logiciels privatifs

Exemples : MATLAB, Oracle PL/SQL, SAS, SPSS, STATA, Wolfram Mathematica.

Considérations légales :

Les programmes écrits pour un outil privatif (ex: SAS, Excel VBA) peuvent être publiés sous des licences libres.

🌘 Les API

Image du logo Oracle sur un immeuble

Organigramme illustrant le procès entre Oracle et Google

🌘 Le langage R

Graphique en mosaïque montrant la répartition des licences des paquets R sur CRAN

RStudio : RStudio et Shiny Server sont publiés sous licence AGPL. Cela signifie que toute personne y accédant (même via une page web) peut demander le code source de ces logiciels, mais pas celui de votre application.

🌘 Le langage Python

Les paquetages sur PyPI ont une distribution de licences variée, avec une prédominance des licences permissives.

Diagramme circulaire montrant la répartition des types de licences sur PyPI

🌘 Le langage Perl

Image de la couverture du livre "Programming with Perl Modules" (le livre au chameau)

L’implémentation principale utilise l’Artistic License (permissive), souvent utilisée conjointement avec la GPL pour la compatibilité.

🌘 Les formats de données

Image abstraite représentant une base de données
Diagramme du format de fichier Apache Parquet

🌘 Les double-licences

Souvent, un logiciel a :

🌘 Combiner les licences

Diagramme de compatibilité des principales licences libres

🌘 Contribuer à la communauté

Image d'autocollants Stack Exchange

Logo de Contributor Agreements

🌘 Chapitre 5 : La manipulation des données ouvertes

🌘 Données et droit d’auteur

L’élément de donnée en soi n’est pas soumis au droit d’auteur, c’est le contenant (la mise en forme, le tableau) qui l’est. Une donnée ouverte doit respecter la vie privée, la sécurité publique, les contrats et les lois.

🌘 Les licences de données ouvertes

Logo de l'Open Knowledge Foundation

🌘 L’utilisation de corpus d’entraînement de modèles

Capture d'écran de l'interface de GitHub Copilot

C’est un sujet débattu (ex: DALL·E-2, GPT-3, GitHub Copilot).
La voie la plus sûre :

🌘 Le web sémantique

Diagramme du nuage de données liées (LOD Cloud)

Un réseau de jeux de données ouvertes interreliées. Les données y sont généralement couvertes par l’Open Database License.

🌘 Le web scraping (moissonnage du web)

Image d'une niveleuse grattant de la glace sur une route

Technique d’extraction de données depuis le code HTML. Son statut légal est ambigu.

Capture d'écran d'un profil LinkedIn

🌘 Chapitre 6 : L’éthique dans le développement du logiciel libre

🌘 D’un modèle d’interdiction à un modèle de consentement

Image d'un symbole de copyright avec des oreilles de Mickey Mouse et le symbole de l'infini

Image d'une pancarte avec le texte "Consent is Sexy"

Le modèle des licences privatives est basé sur l’interdiction. Les licences libres passent à un modèle basé sur le consentement, favorisant le dialogue et la collaboration.

🌘 Le logiciel et l’économie circulaire

Image de trois poubelles : compost, déchets, recyclage

Image d'une pile de déchets électroniques

🌘 Libérer son “vieux” code

Capture d'écran de la page d'accueil de l'Apache Software Foundation

Au lieu de le jeter, du code devenu obsolète pour une entreprise peut être cédé à des fondations (Apache, FSF, etc.) pour qu’il soit utile à d’autres.

🌘 Développer avec la communauté

Image d'un ordinateur portable ouvert avec du code à l'écran, posé sur des livres

🌘 Le mouvement Open Source et les enjeux d’accessibilité, d’équité, de diversité et d’inclusion (AEDI)

Caricature "Superhuman Resources Meeting" sur la diversité

🌘 Conclusion et Ressources

🌘 Merci !

Image d'une feuille de papier avec "Merci !" écrit à la main

L’objectif de cette présentation est de vous encourager à utiliser et à participer au développement du logiciel libre. C’est une opportunité naissante au Québec, car peu de grandes entreprises se sont lancées dans l’aventure. Le risque d’enjeux légaux est faible.

🌘 Quelques ressources

🌘 Sources des images

🌘 Section 1

🌘 Section 2

🌘 Section 3

🌘 Section 4

🌘 Section 5

🌘 Section 6

🌘 Section 7

Shooting Stars IconConsultation ExpressShooting Stars Icon

Bénéficie d'une heure de consultation dédiée avec François pour résoudre tes défis informatiques et stratégiques. Que ce soit pour la migration vers des technologies libres, la sécurisation de tes systèmes, la documentation de tes procédures, la conception de petits systèmes ou l'automatisation de tâches, cette session intensive t'offre des solutions concrètes et un plan d'action clair.

Tu seras libre ensuite de poursuivre avec un forfait de consultation sur mesure ou les programmes DéconstruIT ou Pleine Confiance

Découvre la Consultation Express.
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes