Linked by Thom Holwerda on Wed 2nd May 2012 22:32 UTC, submitted by PLan
Legal "The European Court of Justice ruled on Wednesday that application programming interfaces and other functional characteristics of computer software are not eligible for copyright protection. Users have the right to examine computer software in order to clone its functionality - and vendors cannot override these user rights with a license agreement, the court said." Bravo. A landmark ruling, for sure. If the US courts decide in favour of Oracle in the Google-Oracle case, Europe would instantly become an even friendlier place for technology companies.
Thread beginning with comment 516820
To read all comments associated with this story, please click here.
by JAlexoid on Wed 2nd May 2012 23:28 UTC
Member since:

The fact is that they haven't said anything about APIs in code form.

It is only through the choice, sequence and combination of those words, figures or mathematical concepts that the author may express his creativity in an original manner and achieve a result, namely the user manual for the computer program, which is an intellectual creation (see, to that effect, Infopaq International, paragraph 45).

Point 67 of the ruling.
( )

It's essentially equivalent to "Structure, Sequence and Organization" argument in Oracle vs Google.

Reply Score: 2

by dylansmrjones on Thu 3rd May 2012 00:29 in reply to "NOT APIs"
dylansmrjones Member since:

It only means the user manual containing the API is copyrightable; the API itself is not copyrightable. Only the total combination is. Method names, variables etc. are not copyrightable. Replace the code inside the methods and you are safe.

Reply Parent Score: 3

by galvanash on Thu 3rd May 2012 01:18 in reply to "NOT APIs"
galvanash Member since:

The fact is that they haven't said anything about APIs in code form.

What is an "API in code form"? That doesn't make any sense... An API is by definition abstract - there is no such thing as an "API in code form".

You can document an API - but what you end up with is a description of it. You can write software that implements one of both "sides" of an API, but what you end up with is an implementation of it. In either case you can copyright your work, but in neither case is your work an API...

An API is an abstract idea. The expression of the idea can be copyrighted, but not the idea itself. And contrary to what many people are saying, there is US case law supporting this distinction (lots of it actually).

The difference between US law and this particular EU judgement is that under US law (unfortunately) a license can explicitly bar a party from expressing an API (or other idea) independently. This only applies if you actually agree to such a license of course. This EU decision explicitly nullifies such license clauses.

Reply Parent Score: 2

by henderson101 on Thu 3rd May 2012 14:22 in reply to "RE: NOT APIs"
henderson101 Member since:

"The fact is that they haven't said anything about APIs in code form.

What is an "API in code form"? That doesn't make any sense... An API is by definition abstract - there is no such thing as an "API in code form".

Yes there is... an API is a contract between a Provider and a Consumer. Just because you are used to seeing a C header file, don't be fooled in to believing that is the defacto API, in reality that is just a concrete implementation of an API specification.

CreateNewUser - a method to create a new user account. This recieves the user's name and personal details in a UserRef structure and returns a boolean result to indicate if the function was successful.

API in Pseudo code form:

method CreateNewUser:: receives: UserRef returns: boolean[success==true, failure==false]

You could then provide a model implementation of the API as a C header e.g.:

extern BOOL CreateNewUser(UserRef* userRef);

The actual API is the contract between two blocks of code. Otherwise, do you really think that because the Win32 API (as an example) can't be called directly from Assembler without using the original C headers? Do you believe that the Win32 API (and I'm totally using this as an example API) included in languages such as D or Delphi are just using C headers? No. If you look at a book like the Win32 programmer's reference guide (I forget the exact name, but it is multi volume), the API is detailed as a whole bunch of specifics. This is the API. The C is just one implementation of that API specification.

Reply Parent Score: 3

by ndrw on Thu 3rd May 2012 02:04 in reply to "NOT APIs"
ndrw Member since:

Hmm.. does it mean that from now in Europe GPL==LGPL?

After all #including a header file, and then linking to a library at run-time, is just using an API.

Reply Parent Score: 7

by Alfman on Thu 3rd May 2012 02:55 in reply to "RE: NOT APIs"
Alfman Member since:

That's an incredibly insightful observation. If an API isn't copyrightable, and gets included into a project, then the project should not be considered derived from a copyrighted work.

I don't know how that will play out, however I'd like to bring up GPLv3 section 12:

"12. No Surrender of Others' Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program."

So rather than reverting to LGPL, the GPL states the right to redistribute under the GPL is voided. But since APIs cannot be covered by copyright, what the GPL says is irreverent, so it would effectively loose it's "viral" property and become LGPL. On the other hand, the GPL's provision to void itself could be interpreted as applying to the complete work (API plus source code) instead of just individual header files in isolation.

Of course this would be for the case of dynamic linking, static linking would probably constitute a covered copy in any case because it's still pulling in actual code.

And so our little computer science drama unfolds...

Reply Parent Score: 3