Saturday, 30 June 2012

Patents and Copyright

I was making sure I has something right: that binary executables are copyrighted works derivative of their source code; because it occurred to me that it might actually not be true after reading the US copyright office's description of video game copyright as only applying to the text and pictorial content - basically that a game is copyright on the art(s) data files alone.  This lead me down a rabbit hole that ended up here.

And that got me thinking, could we fix the FUBAR patent situation with copyright.  I know it's heresy to say so, but copyright might actually work out as a good idea (because what we've got with patents and crap sure as Hell isn't sustainable or sensible with big companies fighting with patent portfolios that make for a dangerously close to criminal oligopoly in any tech hardware adjacent marketplace).

If we describe how something complex is done (with many different potential implementations) as expression but block patents (what needs to get done, cookbook), as the EU does for software*, but consider the creation of such a complex process to be a derivative work that encapsulates the expression in the building then we might be getting somewhere.

Are two derivative works that are the same but can be shown to be independently derived from different source works a copyright conflict?  Could we make them not?  Use copyright as a chain of derivation with more force applied to the sanctity of the non-derivatives?  Basically you would have copyright on an executable as derivation of your source code but an independently created binary which shares too much common machine code to be safe from copyright infringement claim from an expressively different source (we already have to measure this to see if one source file is a derivation of another) would not cause a conflict.  It would provide an interesting case for decompilation of that binary, creating a derivative work of both source files (which traditionally requires someone to derive from two distinct sources, unless I'm missing something obvious).

So how does this apply to the world of patent-fuck (assuming we're going to blow them out of the water for complex machines)?  Intel don't have patents on x86 or anything like that any more.  They have a process for making their CPUs, a hugely complex design process for working out transistor layouts from their requirements using expressive (but often highly automated - we're talking machines that build machines** here) design that ends up with billions of transistors on a die in an exact configuration.  Because of the copyright on their complex machine*** then the CPUs that come out of it are likely a derivative expression of that creativity and so if you built your own fab and started making clone CPUs like Intel's then they would be works duplicated without permission.  If you independently designed a non-derivative process for working out transistor positions to make your own x86 CPU then even if the final transistor placements has overlap with an Intel CPU you would only need to show the non-derivative nature of your process of design to show it wasn't infringement.  AMD don't need any permission/patents to make a CPU as long as they're not stealing Intel's design software/workflow or blindly duplicating transistor layouts with no design of their own (you can't steal my source code or copy my executable).

Of course, you have to consider the potentially derivative work for containing that expression (complexity) found in the original work.  I can write a massive, unique program to write Hello World but the binary is unlikely to have copyright protection as derivative as the compile/optimisation process strips the expression from the original (unless it doesn't - think Rube Goldberg machine type situation, those things could get to the point of being expressive art in themselves and so could a complex enough Hello World as long as the optimisation wasn't able to strip it out).  And we've already got (in the world I just built in my head) this protection from coincidental derivation to a common point from differing ancestors to prevent it being a really big problem.

Your drugs (assuming complex molecules etc) are copyrighted derivatives by the process you went through to discover and develop them that cannot just be ripped off by someone copying the molecules but if they're naturally occurring or can be developed without just copying your work then that's cool.  Obviously that leads to the issue of copyright terms and how we'd need to build up copyright term lengths for a whole host of new things to get us closer to patent terms in those fields.  It's a whole minefield but we already live in a world when a drug patent can evergreened by changes like patenting the other handedness of the molecule or changing the damn tablet colour/shape so we're already SNAFU; it's hard to think we can make things worse!

Is this a perfect idea?  Hell no.  I've only thought about it for 30 minutes and I'm sure there would be work to make it in any way sane.  But I think the EU software world, where if you take the EXE I created and duplicate it and sell it as your own then I'm actually protected, but I can't protect the ideas of what it does**** from someone independently creating the same thing (or as a tiny fragment of functionality inside my copyrighted source code) is a good model.  As long as the process is complex (non-trivial) and expressive (non-obvious and many routes to functionality) then the thing it builds (as long as that maintains the complexity) is a derivative expression of that crafting/translation process.  We just have to make sure we acknowledge that our claim to expressivity says that the derived copyright is not exclusive as many different expressions can give rise to the same derived work and this can't block a second (distinct) original work being created and having a valid derived work.

I kinda started this though process imagining two short stories which are clearly copyrighted works and yet talk about something very similar (or even the same event or identical high-level plotline) and using Google Translate on them (a totally automated process).  The rough translations that result should obviously retain copyright as derivative works that maintain much of the expression of the originals but may (somewhat unlikely, not impossible) well share more commonality***** due to the weakness of computer translation to simplify somewhat and try to make something readable from the translation process.  Compiling is a translation process which optimises and strips some expression (but not enough for us to worry about the derived work being necessarily non-copyright, the granularity of expression is still there in the details over a large program).  That's basically how I justified not even thinking about stripping executable copyright, it seems to make perfect sense, and rather considered implementing the same thing into the meat-space of complex hardware.  Also I have no idea how the originally linked article worries about ReactOS as if the functionality is so small as to be necessarily identical by functionality constraint then there was (probably) no copyrightable work in the source code and (certainly) the derived binary at that point.  Two novels may share some sentences but it isn't a copyright issue, we already have a long history of working out what constitutes plagiarism and copyright infringement of expressive works to rely on to work out any edge cases.

* Is ScummVM only legal in the US because Lucas failed to patent the functionality of the engine (and possibly because anyone who writes software thinks software patents are scum and hugely damaging to the industry so internally campaign against them)?

** As someone who has spend a decent amount of time writing code that writes code, I can also see my hand in the code that my code writes as long as it is of sufficient complexity to be copyright if it was to by from my own keyboard then I see no reason to block it because it is one step removed from my keyboard as I wrote the code that wrote the code.  Typically we create code without enough expression as code generated by code is often saving us doing something non-expressive/boring by automation.  That is not always true.

*** Split being - functional so no copyright: 'make an x86 cpu with these constraints...'; expressive source code equivalent: design software etc that is interacted with and tweaked to actually do the design; derivative potentially-expressive binary equivalent: final layout of transistors on that CPU.

****  'Make a camera on-screen that looks as if it comes from a human eye's perspective or film camera and allows movement of the player-character'; 'Take a binary data stream encoded with MPEG compression and decode it to the visible data it encodes', 'Count the number of transitions of shadow volume to camera position to work out if an object is in shadow'.

*****  Even whole blocks may be totally identical now potentially baring the names of people and objects - and we already know switching up var names isn't transformative to strip copyright for fair use so has a danger of being considered NOP work and so making them identical.

So, what am I not considering here?  Couldn't this actually work to get us out of this patent quagmire?  We're already in a mess (and the US is in a real mess with software patents) so why not try and unify us under copyright to prevent blind duplication but allow parallel development and independent creation.  I'm not sure if we need to worry about retaining patents for things too simple to be complex enough to be expressive, because if it's that simple and there is only one right way to implement the functionality then do you really need a stick to beat anyone else who tries to do what you just happened to patent first?