®om's blog { un blog libre }

Brevets logiciels : "patent" bénéfiques que ça…

Août, un mois riche en brevets XML

Microsoft, qui a toujours été favorable aux brevets logiciels, et qui le 4 août dernier a réussi à faire valider une demande de brevet relative à la gestion des documents XML, se voit maintenant interdit de vendre Microsoft Word aux États-Unis (et doit verser en plus 290 M$), car il viole un brevet détenu par la firme canadienne i4i (qui se prononce d’ailleurs “eye for eye”, “œil pour œil”).

Lorsqu’on lit ce genre d’information, l’ironie de la situation fait sourire, mais il ne faut pas oublier l’absurdité de cette notion de brevets logiciels…

Il était une fois le brevet 5787499

Avant de revenir sur les brevets en général et sur les brevets logiciels en particulier, il est intéressant de voir le contenu de ce brevet « violé » par Microsoft : il illustre bien (en tout cas pour ceux qui s’y connaissent un peu) le type d’inventions géniales que protègent un brevet logiciel.

Bizarrement indisponible ici et , le voici en pdf.

L’algorithme breveté

Après plein de blabla un peu rebutant sur l’intérêt de cette invention « innovanter », la description détaillée suivie d’exemples montre l’algorithme que ce brevet protège (pages 14 à 16). Le voici :

  1. Start at Character Position zero.

  2. Create storage space for the raw content.

  3. Create storage space for a metacode map.

  4. Set the elements in the map to zero.

  5. Read characters until a metacode is encountered based on metacode detection criteria.

  6. Copy the characters up to the start of the code into the mapped content storage or area.

  7. Increase the character position by the number of characters placed into the mapped content area.

  8. Create a new map element and place the code into it.

  9. With the map element store the character position of the beginning of the code.

  10. If there are more characters in the original then go to step 5.

  11. Conversion is complete, store the metacode map and the mapped content.

Et à quoi ça sert? Tout simplement à séparer un document XML (qui contient donc des balises et du contenu) en deux documents, un qui contient le contenu sans balises, l’autre qui contient les balises et la position où les insérer dans le contenu.

Il s’agit donc de transformer ce document :

<Chapter><Title>The Secret Life of Data</Title><Para>Data is hostile.</Para>The End</Chapter>

en d’une part :

The Secret Life of DataData is hostile. The End

et d’autre part :

1- <Chapter> : position 0
2- <Title> : position 0
3- </Title> : position 23
4- <Para> : position 23
5- </Para> : position 39
6- </Chapter> : position 46

Voilà, vous ne révez pas : ce brevet, qui coûte 290M$ à Microsoft et qui lui vaut l’interdiction de vendre Word aux USA, protège la séparation d’un document en deux documents…

Une absurdité technique

Personne n’en doute après les débats sur Hadopi, ceux qui votent les lois ne sont pas des informaticiens… et ceux qui les écrivent sont en partie des lobbies influents. Pas étonnant avec ces protagonistes d’arriver à des lois absurdes…

Il faut savoir qu’un programme est composé de données et de traitements. Pour le réaliser, un développeur a à sa disposition des structures de données, qui varient un peu selon les API des langages utilisées, mais on retrouve globalement toujours les mêmes (tableaux, listes chaînées, tableaux associatifs…). Quand il veut réaliser une tâche complexe, le programmeur écrit des données dans une structure, en lit dans une autre, les combine… un simple jeu de déplacements de données d’une structure à une autre pour faire ce qu’il veut faire… des procédures qui sont bien connues et même détaillées par exemple dans The Art of Computer Programming.

Un peu comme en mathématiques, on a à notre disposition des chiffres, des lettres (pour les variables par exemple), des fonctions (+, -, ×, ÷, ², , sin, cos, =, , <, >…), on les combine pour obtenir des équations :

  • 2 + 3 = 5
  • x² = 4

Breveter le fait spécifique de séparer les données de manière à avoir les balises d’un côté et le contenu de l’autre, c’est un peu comme si en mathématiques on brevetait le fait de combiner la somme des carrés de deux nombres avec la fonction racine carrée √(a²+b²), parce qu’après tout M. Pythagore il aimerait bien en tirer profit de sa découverte, c’est normal, non?

Donc à partir de maintenant, si vous voulez connaître l’hypothénuse d’un triangle rectangle à partir de ses deux autres côtés, et bien il va falloir payer, sinon c’est le procès. Vous avez bien compris, mesdames et messieurs les architectes ?

Bon, finalement, ce n’est pas si grave, √(a²+b²) est breveté, mais √((a+b)²-2ab) ne l’est pas, youhou \o/

Eh oui, parce qu’un algorithme breveté c’est bien gentil, mais on peut arriver au même résultat par un algorithme différent. Par exemple, dans l’algorithme décrit précédemment, pour séparer les balises et le contenu, je fais un premier passage pour trouver toutes les balises, et un second passage pour trouver leur position, et je n’enfreins plus le brevet. On pourrait me rétorquer qu’un brevet protège des algorithmes équivalents, auquel cas je demanderais la définition précise de l’équivalence entre deux algorithmes (avec comme exemple l’algorithme de compression JPEG)…

Et si un brevet protègeait effectivement des « algorithmes équivalents » (si un juriste lit ce billet…), il s’agirait donc d’un brevet sur une idée (ici la séparation des balises et du contenu d’un XML en deux documents séparés).

Pour prendre une autre analogie plus simple, on est dans le même cas qu’une partition de musique : un musicien sait jouer des notes, un compositeur peut agencer les notes dans l’ordre qu’il veut pour faire une mélodie. Mais voilà qu’un compositeur a trouvé que la suite de note do-mi-sol c’était très bien, il dépose donc un brevet dessus. Maintenant, tous ceux qui veulent utiliser ces 3 notes à la suite devront payer ou subir un procès… Les brevets logiciels sont un cas tout aussi stupide.

Les brevets, à quoi bon?

Mettons de côté l’absurdité technique, car après tout, « la technique, on s’en fiche1 ».

Un brevet, ça sert à protéger une invention. Pourquoi? Pour favoriser l’innovation.

Effectivement, sans brevets, comment une entreprise pourrait investir des millions d’euros pour trouver quelque chose (une nouvelle molécule pour fabriquer un médicament par exemple) si aussitôt découvert, tous les concurrents pouvaient en faire commerce ? Il est donc important de protéger l’innovation, pour une durée limitée (généralement 20 ans2).

qui eux ont réussi à obtenir 70 ans de protection des droits patrimoniaux…

Les brevets ont donc une raison d’être.

Pour être brevetable, une invention doit cependant répondre à trois critères essentiels (cf wikipedia) :

  1. Elle doit être nouvelle, c’est-à-dire que rien d’identique n’a jamais été accessible à la connaissance du public, par quelque moyen que ce soit (écrit, oral, utilisation, …), où que ce soit, quand que ce soit.

  2. Sa conception doit être inventive, c’est-à-dire qu’elle ne peut pas découler de manière évidente de l’état de la technique, pour une personne connaissant le domaine technique concerné.

  3. Elle doit être susceptible d’une application industrielle, c’est-à-dire qu’elle peut être utilisée ou fabriquée de manière industrielle (ce qui exclut les œuvres d’art ou d’artisanat, par exemple).

C’est d’ailleurs sur ce troisième point que l’Europe refuse les brevets logiciels3, car elle considère que les logiciels sont des « créations de l’esprit ».

Pour les deux premiers points, des techniques nouvelles et inventives, lorsqu’il s’agit de traiter et de stocker des données sur une certaine forme, on peut en trouver une infinité… Il suffit de les breveter et faire des procès à ceux qui par inadvertance utilisent la même procédure. Et les brevets, ça rapporte !

Certaines sociétés l’ont bien compris, et se constituent des portefeuilles de brevets, leur seule raison d’exister étant de permettre de faire des procès.

NON aux brevets logiciels !

brevets_logiciels

Le logiciel est protégé par la loi sur les droits d’auteur. La loi sur les brevets, par contre, a peu à voir avec la protection. Au contraire, le droit des brevets met grandement en danger les vrais innovateurs parce que leurs créations indépendantes pourraient être attaquées par des racketteurs et des concurrents malveillants.

NON aux brevets logiciels!

  1. Remarque brevetée par plusieurs députés UMP qui ont voté pour Hadopi.

  2. Leurs lobbies sont moins performants que ceux de l’industrie du disque,

  3. Des lobbies rôdent et la bataille n’est pas terminée.

Commentaires

Tu parle de brevet sur une molécule, breveter le vivant est à mon sens en entreprise tout aussi dangereuse que celle de breveter le logiciel.

Je vais paraitre extrémiste, mais mise à part asseoir la domination de firmes mondiales je ne voit pas bien l’utilité des brevets pour le citoyen.

(si un juriste lit ce billet…), il s’agit donc d’un brevet sur une idée <<< en temps que juriste, je peux te préciser qu’un brevet est toujours basé sur un idée, rien d’anormal à ça. Par contre, on ne peux normalement pas breveter une “découverte”

Autre point : “Elle doit être susceptible d’une application industrielle” n’est valable qu’en europe, d’où effectivement l’interdiction des brevets logiciels, et d’autres types de brevets, comme les brevets sur les méthodes commerciales, qui existent aux etats-unis. Car eux etats-unis, cette règle est remplacé par (en gros) “Elle doit être utile”

@+, Arka

Je vais paraitre extrémiste, mais mise à part asseoir la domination de firmes mondiales je ne voit pas bien l’utilité des brevets pour le citoyen.

L’intéret pour le citoyen est d’être au courant des évolutions technique, et de pouvoir les utiliser à l’extinction du brevet (et même avant, si le but n’est pas commercial). Le but est également d’encourager l’innovation, grâce à une “carotte” : SI tu invente un truc, tu as l’exclusivité pendant une durée pouvant atteindre 20 ans. Et ça a eu l’effet voulu, quand les législations de protections ont été mis en place, on a connu une explosion de l’innovation (on a pu comparer facilement, car tout les pays n’ont pas mis ne place leur législation au même moment, la première date de 1790, cette des pays bas de 1910)

Merci pour ce billet intéressant qui explique clairement l’absurdité des brevets logiciels.

J’aime beaucoup l’algo breveté…quelle implémentation futée et puissante ! ;)

Je crois qu’il y a une balise italique pas fermée qui traine… en tout cas depuis ici je vois tout les commentaires en italique, et sur le planet libre ca touche tout les articles en dessous :)

®om

Merci, effectivement il manquait la dernière.

Je me disais aussi c’était bizarre que dans mon nouveau thème tous les commentaires soient en italique…

[…] http://blog.rom1v.com/2009/08/brevets-logiciels-patent-benefiques-que-ca/ […]

Très joli post ;-)

Par contre je ne pense pas que le cœur du problème soit la décomposition d’un document en 2 autres mais plutôt la reprise de la fonctionnalité brevetée du logiciel x4o (XML for Office). Cependant je suis bien d’accord sur la bizzareté de certain brevet logiciel et les limitations qu’ils impliquent pour les autres éditeurs. Je pense même que je vais me mettre à la rédaction de brevets :-))

®om

@ousseynou

Par contre je ne pense pas que le cœur du problème soit la décomposition d’un document en 2 autres mais plutôt la reprise de la fonctionnalité brevetée du logiciel x4o (XML for Office).

Oui, mais cette fonctionnalité concerne justement la séparation d’un document XML en deux (d’une part les balises, de l’autre le contenu).

À la base oui mais il va un peu plus loin :-)) http://www.i4i.com/x4o.htm

Je me demande s’il n’ont pas tout simplement copié l’algo du gars car les sanction sont quand même SUPER HYPER MEGA élevées?

[…] http://blog.rom1v.com/2009/08/brevets-logiciels-patent-benefiques-que-ca/ […]

Grimshu

Je suis 100% persuadé qu’il n’y a pas eu de copiage de code. D’abord, la R&D de MS est l’une des meilleures R&D de Soft du monde (pour les ignorants qui tapent sur MS sans réfléchir, qu’ils se renseignent). Ensuite, après avoir lu le brevet en question et en me basant sur mes connaissances de OOXML, il me semble que le point litigieux concerne l’utilisation du binding entre le custom XML et le contenu du document (sinon, pouquoi Word et pas Excel par exemple?). La techno utilisé par MS (expressions XPath) est radicalement différente de l’algorithme décrit dans le brevet. Pour ce qui est du reste du brevet, ce sont de grosses généralités qui, si elles étaient recevables, condamneraient des centaines d’autres applications ou standard existants (ODF, CSS, XSL, architecture MVC, etc …)

®om

@Grimshu

Pour ce qui est du reste du brevet, ce sont de grosses généralités qui, si elles étaient recevables, condamneraient des centaines d’autres applications ou standard existants (ODF, CSS, XSL, architecture MVC, etc …)

C’est exactement ce pourquoi les brevets logiciels sont absurdes : ce sont toujours de grosses généralités qui n’ont rien d’innovant…

Grimshu

Je dirais plutôt que c’est une dérive du système des brevets, tout comme il existe une dérive du système judiciaire aux US. Je ne suis pas particulièrement favorable aux brevets, mais s’ils sont attribués avec intelligence et parcimonie, je n’ai rien contre non plus. Un brevet logiciel doit traiter un point spécifique, et non de généralités comme la séparation présentation/contenu, qui est un principe de design général. L’algorithme présenté dans le brevet, et que tu décris très bien dans ton post, est assez spécifique pour être brevettable. Cependant, une autre condition pour brevetter un algorithme est qu’il doit être non trivial. Et dans le cas qui nous intérèsse c’est déja plus discutable. En résumé: si jamais j’avais mon mon à dire je dirais que ce brevet là n’aurait jamais du être déposé. Et quand bien même il existe, je ne vois pour ma part aucun lien substantiel avec ce qu’a fait MS …

®om

Tous les algorithmes en eux-même sont triviaux.

Ce qui est non-trivial, c’est toujours le concept mathématique qu’il y a derrière. Et les mathématiques ça ne se brevète pas.

nurf

Je suis 100% persuadé qu’il n’y a pas eu de copiage de code. D’abord, la R&D de MS est l’une des meilleures R&D de Soft du monde (pour les ignorants qui tapent sur MS sans réfléchir, qu’ils se renseignent)

Mais bien sur…. c’est à pouffer de rire. Tu veux des exemple ? .Net ?? grosse repompe à mort de J2ee… il suffit de voir les evo des java dans le temps pour se rendre compte que, ah tiens .Net posséde les memes caractéristiques. ex : RMI de J2ee. renommé en WCF chez .Net. La 3d de vista ? wouaaa repompe de Compiz, Power shell sur serveur 2008 mmmh tiens ça serais pas style linux ligne de commande ça ? repompe. La R& D c’est pas de la repompe, c’est créér du nouveau. Alors quand je lis MS posséde la meilleur r&d au monde… mouahahahaha, pour faire de la r&d moi même je peux t’affirmer que non !

Excellent article. Super site. Je pense faire un link prochainement. Bonne continuation!

http://boycottnovell.com/2009/12/02/timbl-on-swpats-eu-centralisation/

En anglais. Intéressant.

C’est un assez gros problème ce genre de choses quand même, les brevets, c’est bien, les brevets mal utilisés, c’est beaucoup moins bien !

Quand je vois que soit l’algo est breveté et dans ce cas là, on contourne, soit toute l’idée est breveté et là c’est vraiment, vraiment pas normal…

Pour celui qui dit que MS à copié sur tout, je me suis demandé quelque chose, c’est que une fois, j’ai parlé à quelqu’un qui était sur Mac et il me disait que Aero de Vista venait majoritairement de Mac OS X, voilà maintenant que tu me dis que la 3D vient de Compiz, faudrait se décider ! Pareil pour la création des fenêtres, qui est le premier ? L’un dit que c’est Mac (à l’époque) et l’autre me dit que c’est Linux avec X…donc à partir de ce moment là, les histoires de copies à n’en plus finir, je ne les crois plus. Ces points de vus différents prouve que forcément, quelqu’un est de mauvaise foi (si ce n’est plus), de part cela, je préfère croire personne que m’abreuver de ces bêtises de copies sur “qui a copié sur qui ?”. Le jour où on me fourniras une réponse prouvée, peut-être qu’à ce moment là, je croirais tout cela

Poster un commentaire

Nom : (requis)
E-mail : (optionnel, non publié)
Site web : (optionnel)
Quelle est la 3e lettre du mot blog ? (antispam)

Les commentaires sont formatés en markdown.