by Dennis Crouch
When Google wrote its program-interface (API) for Android, the company made a strategic decision to mimic the method call structure of Java. Java is an extremely popular and powerful programming language and Google determined that free-riding on Java popularity would facilitate its catch-up game in the third-party app marketplace. As an example, Google used the Java method header “java.lang.Math.max(a,b)”. When called, the “max” function returns the greater of the two inputs. In Android’s API, Google copied a set of 37 different Java “packages” that each contain many classes and method calls (such as “max()”). Overall, Google copied the header structure for more than six-thousand methods. Although Java is offered for both open source and commercial licenses, Google refused to comply with either regime.
Java’s originator Sun Microsystems was known for broadly sharing its creations without enforcing its IP rights. That aura changed when Sun was purchased by Oracle and certainly when Oracle sued Google for copyright infringement, inter alia.
In the Copyright lawsuit, the district court held that the API method headers were not protectable under copyright. However, the Federal Circuit reversed on appeal — finding the Java API taxonomy copyrightable as a whole. In particular, the appellate panel led by Judge O’Malley rejected the idea/expression merger doctrine since there are many other ways that functionally equivalent method-calls could have been constructed besides those found in Java. “Merger cannot bar copyright protection for any lines of declaring source code unless Sun/Oracle had only one way, or a limited number of ways, to write them.”
Now, Google has petitioned the Supreme Court for a writ of certiorari asking:
Whether copyright protection extends to all elements of an original work of computer software, including a system or method of operation, that an author could have written in more than one way.
Here, Google references 17 U.S.C. 102(b) which bars copyright protection for “any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of [its] form [of expression].” And, Google pushes-back against the notion that the merger doctrine accounts for the limits of 102(b) as suggested by the Federal Circuit.
Google also interestingly notes that the Federal Circuit opinion here “erases a fundamental boundary between patent and copyright law.” However, rather than supporting software patents, Google argues that copyright protection here would serve as an end-run around the limitations set by Alice Corp.
Just last Term, this Court confirmed that, while some software-related patent claims may be eligible for patent protection under 35 U.S.C. § 101, many are not. Alice Corp. Pty. Ltd. v. CLS Bank Int’l, 134 S. Ct. 2347 (2014). Like Section 102(b) of the Copyright Act, Section 101 of the Patent Act protects future innovation by preventing anyone from “ ‘inhibit[ing] further discovery by improperly tying up the future use of’ the[] building blocks of human ingenuity.”
Extending copyright protection to methods and systems of operation would undermine the limits on patent protection.
The argument is interesting because it turns the usual analysis on its head. Ordinarily folks argue that copyright and patent should be complementary and that overlap should be avoided. Here, however, the petitioner argues that copyright should not cover a particular subject matter area precisely because it is not covered by patent. This also generally suggests that the case will have an impact on software patent eligibility.
The petition was filed by Daryl Joseffer’s team at King & Spalding and I give a more-likely-than-not chance of grant. In this type of case, the Supreme Court is likely to request input from the Solicitor General and I would expect that the SG/White-House would support grant. If granted, the Federal Circuit will almost certainly be reversed. The merger doctrine is a mess and genuinely needs clarity. The difficult question in my mind is whether the court will be able articulate a reasoned boundary between software that is protectable and that which is not.
In an amicus brief (supporting certiorari) a group of computer scientists (with the Electronic Frontier Foundation) argues that companies should not be able to use copyright to prevent others from interfacing with their systems.
Petition Briefs:
this appears to be a case of willful infringement….somebody will need to pay big money to settle this.
“Copyrightable APIs would discourage this innovation by creating potential liability for the mere act of writing a compatible program.”
p 19
BRIEF OF AMICI CURIAE
COMPUTER SCIENTISTS
IN SUPPORT OF PETITIONER
Attorneys for Amici Curiae
Computer Scientists
November 7, 2014
versus
“There is a practical concern that might be raised related to thecopyrightability of APIs—that a developer could leverage its copyright primarily to prevent interoperable software from being developed. We do not advocate restraining copying that is required for purposes of interoperability, but we do not believe that concern applies in this case.”
p21
Appeal From The United States District Court For TheNorthern District Of California In Case No. 10-CV-3561, Judge William H. Alsup
BRIEF OF AMICI CURIAEEUGENE H. SPAFFORD, Ph.D., ZHI DING, Ph.D.,AND LEE A. HOLLAAR, Ph.D.IN SUPPORT OF APPELLANT
FEBRUARY 19, 2013
None of the FSF’s concern’s actually make any sense when you delve into the details point by point. In general, sure, but not specifically. It’s just fear mongering. More than a little ironic; it’s a bit topsy-turvy.
May I p0int out that all software is functional, and the point of protection is to prevent copying for the useful aspects of software.
We need to put software into a quasi patent mode of protection: require originality, protection only for copying, and a limited term: 10 years.
There should be no question then that APIs are protectable.
May I point out that what you want to point out here does not square with your positions regarding printed matter?
May I point out as well that your refusal to even engage my explanation of Set C and Set B printed matter stands in stark contrast to your position here?
May I also point out that you are still not recogizing that the different IP laws protect different aspects of man’s handiwork, and that a particular handiwork may have more than one aspect and may rightfully be protected by more than one IP law?
Ned let me also remind you that copyright law expressly does not protect what you are labeling as ‘useful aspects.’ That term is the same as ‘utility’ which is protected under a different IP law.
I do not know where you are deriving this “quasi patent mode” thought from, or why you resist the clear place of patent law to protect what patent law is meant to protect.
What is the reason why you refuse to engage in a dialogue on these points?
As I have stated before, your silence screams volumes. Your choice not to address your inconsistencies says far more than you may wish to be said.
Again.
Its very sad that law people have trouble with some issues novices at programming (or CS in general) have no trouble answering.
APIs vs Code, just like Software vs Hardware is plain silly.
But then, its money related issues, so not much surprise that adepts of law want to dictate reality to others here.
PS “On its head” not unless, You account “no software patents” movement… which is mostly software geeks based. But then, who would listen to software professionals* when deciding software matters? 😉
* source:
link to computerworld.co.nz. “The move comes after a quick poll of NZCS members, IT professionals from around New Zealand, found 80 percent opposed patent protection for software.”
New Zealand? So a country that doesn’t produce the code wants to be able to copy it. Gee what a surprise.
And, please tell me something I don’t understand about coding, computer science, or math. Good luck.
You seem to have forgotten.
New Zealand (and Austrailia, and Switzerland) are where TLI/SSL were developed.
They do one hell of a lot of coding.
As far as you not understanding coding – programming comes to mind. And you don’t understand math either.
If you did, then you would have accepted the Curry-Howard proofs that a program is also a math proof.
jesse,
Once again you are caught up in the semantics and you need to recognize the terrain of mathS philosophy.
That terrain that you stand on includes the notion that EVERYTHING is mathS.
Come back to the real world.
Unlike you, I do know the difference.
Things may be DESCRIBED by math, but that doesn’t make the thing math.
You keep confusing yourself.
No jesse,
I am not confused – it is you that is confused, as your reference to Curry-Howards places you in a different domain, and you are not even aware of it.
You are sloppy that way.
It shows you don’t understand software.
No jesse, it shows that I understand software completely, and I understand the difference between the thought of software and software, the difference between philosophy of mathS and the real world – and fully patent eligible – aspect of applied math.
It is you that are lost in the Philospohy world.
Come back to the real world.
That is where your world of law becomes illogical.
“applied math” is just math used to describe some physics.
That does not stop it from being math.
The failure of law is trying to treat it differently.
I have no illogic.
That you do not recognize the boundary between philosophy and reality does not mean what you think it means.
No…
You miss the boundary between law and the universe.
and jesse, once again I invite you to apply your logic fully as discussed below and take it to its conclusion.
Why do you not do so? Is it because you can readily see that the conclusion is false, thus logically showing that you have some serious error in your belief system? Let me know of the day when it actually happens that non-human animals and programmable toasters have equal rights under the law as you would ‘logically’ have the law be.
LOL – tell me of this boundary between the law and the universe…
You use the term ‘boundary,’ but I think that you do not understand what that term means.
Do you understand that t001s created by the hand of man (including t001s of printed matter) are precisely the things that patent law was created to protect?
Recall that Ned Heller has refused to recognize the functional aspects of Set C printed matter in patent eligibility discussions.
How does he square his anti-copyright views here that software (including API’s) are functional and that that functionality rules out copyright protection?
It appears that Ned wants more than just an either-or protection protocol (ignoring the fact that the aspects being protected by the different IP laws are in fact different), he wants a neither-nor protection environment.
Ned,
Care to address your own inconsistencies?
Are you ready to accept the reality of Set C printed matter being different than Set B printed matter?
Recall as well that Ned Heller has refused to join any substantive discussion about my explanation given repeated opportunities and multiple hyper-links back to the original presentation of the explanation.
Why is it that Ned refuses to discuss the explanation, but continues to pursue an agenda at plain odds to that explanation?
Recall that anon sees no inconsistency in these to statements:
1. Software is a machine component.
2. Software is copyrightable.
That’s because the different IP laws cover different aspects.
You act as if you are surprised.
You shouldn’t be.
anon, the real problem is that under Baker v. Selden, copyright cannot protect function; nevertheless, all software is functional.
Thus the courts have struck a compromise: if there are more ways than one to implement the function, then the software is copyrightable.
But this test still does not recognize that protecting OSs, APIs or the like with copyright effectively does protect function regardless because the form is required to interface with the OS, etc.
Form is function.
Still, it must be recognized that copyright in software is justifiable a form of protecting something literally new and useful. Under this thinking, software is like a patent, where only novelty is required because the only thing that is protected is copying.
But if we go this route, copyright protection must or should be limited to the much shorter term.
Ned,
Your post is one long non sequitur.
You need to address the different aspects portion of my post.
To wit, your view of “form is function” is an imperfect application in copyright law of the merger doctrine. Form can perfectly BE function and that may NOT be a deciding factor. Other form (as noted by others on this thread) may serve that very same function, so your attempt to equate to patent protection fails on that accord. It is ONLY when merger is reached and the particular form MUST be used for the function that the function itself has really become protected in violation of the Baker v Seldon case.
You also probably should try to address my post at 19 – your inconsistent views between your arguments here related to copyright and your attempts to ignore the functionality of Set C printed matter in the patent law domain are quite jarring.
There is an interesting contrast that can be made between patent and trademark law though – a careful read (yes, careful and not just any fanciful version) of the TrafFix case (532 US 23) may make for an interesting dialogue on the potential overlap of “aspects” and when such an “overlap” is impacted.
I would also suggest review of link to uspto.gov
“OSs” defined as “code” are copyrightable.
Go look up Linux, Windows, FreeBSD.
All have attached software license which was enforced at some point in time by various courts.
What was NOT enforced (or even put to trial) where APIs those OSes IMPLEMENT.
For example all those OSs implement various APIs (POSIX is most famous). Nobody say that copyright had anything to do there. (No license needed, no license given, no license expected).
So CODE vs API.
Code implement API.
Just like power plugs. Physical thing, and more abstract design which state that plugs have such and such dimensions.
Modern software isn’t just about functions, its also about designs, eg design of UI, code and modules.
Design is copyrightable.
Design of UI, code and modules is as old topic as software.
Hence You false statement by inserting false assertions.
All the math in the verse…
(some here have an affection for this thing called Rule of Law, affection, nigh, let’s call it what it is: love)
link to youtube.com
And over much “love” is called an obsession…
Love also has a tendency to blind one to the truth.
Obsession?
Like your obsession with “software is math” that blinds you to copyright truth, to software-defined-to-be-a-computer-component truth, to thinking-is-a-HUMAN-cognition truth, and that-the-idea-of-software-is-different-than-software truth…?
Like those blindnesses,
Reality bites. Software is math, whether you like it or not.
I have met too many animals that think better than you do.
More logical at any rate.
Your obsession and monologuing continues…
You clench tight your eyes to anything that threatens your belief-driven view.
There is no logic in your mantra – logic would mean that you would actually have to PROPERLY address the blindnesses of yours that I have pointed out.
Instead you chant your mantra, stick your fingers in your ears, and clench tight your eyes.
It isn’t my blindnesses that bother you.
It is the reality that keeps hitting you on the head.
Very much to the contrary, reality does not bother me. The reality is that you are monologuing and closing your eyes to the truths before you, while not offering anything but your “belief-system-I-say-so” blindness to the objective copyright law (cannot copyright math), objective software definition (supplied by multiple people including other anti-software patent people), your out of context but animals think, therefore machines think too fantasies, as well as continuing to ignore the difference between software and merely thinking about software.
Now what is hitting me on the head exactly?
The illogic of your statements eludes you.
There is nothing illogical about my statement.
On the other hand, your continued lack of actually addressing any of the discussion points and wanting to insist on your fantasies is highly illogical.
You should probably NOT be listening to your programmable toaster…
Your fantasy is yours.
Inflicting it on others makes one think you should be protected from yourself…
Inflicting fantasies is your game (after all, you are the one trying to hold out that machines think) – do not be confused by my correctly capturing your tactics.
No.
I said they “think” in the same way you do when you are performing math.
They are just better at than you are as they don’t get distracted.
jesse – machines do not think – AT ALL (your attempt to slide in “like” is rejected).
If you cared at all about patent law, you would not be distracted by semantics, and you might – just might – understand what the mental steps doctrine entails and why it is HUMAN cognition that is protected.
All right – you don’t like the word “like”.
You must follow the rules of math.
So must the computer.
You must not deviate from the rules of math.
So must the computer.
Therefore, what the computer does must mimic what you do, only more reliably as you are easily distracted.
Thus since the computer must do the same thing you do, it is abstract thinking JUST as yours is – though much more limited.
jesse,
That is an even more inane version.
Read Sun Tzu.
Not relevant here.
You need to learn some computer science.
Even the CPU, the part that does most of the work… is called an “Arithmetic Logic Unit”. The rest selects the rule to be processed … which is also math.
Is ARITHMETIC part of math? Why, yes. It is.
Is LOGIC part of math? Why, yes. It is.
Are things directed to the CPU math? Why yes, it has to be, as that is all the CPU can process.
\
You have grabbed semantics without meaning.
Just as you have read Sun Tzu without understanding.
You remain trapped in your 2 D circle, unable to comprehend that you can step UP over the line.
In your ‘world,’ why do the machines that think not have the same rights as a person?
No – that is all the CPU was designed for, that is all it can do.
As to why? Simple, and I told you as well – their ability is much more limited. Right now, they appear to be limited to just the basic math.
But the way research is going, that will change.
Already the IBM Watson application has won games over human abilities to relate questions and answers. It is still primitive, but new ways of programming learning algorithms is being added. It can be viewed that it will be able to teach itself based on what it reads. It cal already do SOME of that, but so far not without help.
Recent research shows that humans only have approximately 50 generalized parallel processing nodes in their brains – a number of which deal with physical motion, one or two with vision… So that leaves open what happens when computers have the same 50 similarly programmed nodes.
As I pointed out before – computers have already passed the Turing test – which only required a computer to fool a majority of the interacting humans into thinking they were communicating with another human. Yes, it was a limited test – the emulation was for a 13 year old.
But the time IS coming when you won’t be able to tell the difference.
As for human thinking? When it comes to basic math, the computer already outperforms nearly all humans.
You are rather trapped in a one dimensional world if you can’t conceive of the possibility that others species may think faster than you, or have other thoughts.
Even the great apes are able to hold conversations. They have also been seen attempting to teach their offspring how to communicate as well.
I believe it rather self centered, and selfish, to believe that humans are the only species that can think.
Such selfishness even used to think some humans couldn’t think – and denied their right to being people. There have been several wars fought over that, and unfortunately such is still happening.
You did not answer me about your programmable toaster.
What is the structure of the number 1?
What is the structure of ‘spin’ (the elemental characteristic of matter)?
You attempt obfuscation with your question – obfuscation previously debunked in a number of ways that you refuse to address (for example, the fact that the idea of software is not the same as software, the fact that software is not something totally in the mind as reflected in the copyright requirement of being fixed in a tangible media (which of course does have structure), and if course the answering question as to what is the structure of Morse’s allowed claim element of ‘space.’
It is laughable that you continue to ignore the lessons of Sun Tzu.
And you still have not answered me about your programmable toaster (or for that matter, the previous point about animals being chattel and also not having equal rights under the law).
Why do you continue to ignore what the law is about? It is not logical for you to pretend that this discussion is not in context of the law, and yet you want to maintain a clearly fallacious position that logically would entail equal rights for animals and programmable toasters as rights to humans.
Your own ‘logic’ shows how very wrong you are. Take a moment and think about it.
So you still don’t know.
A number has no structure… it is a concept.
You are still mistaken as to what I do and do not know.
You do know that software is not “a number,” right?
“1” is not software.
“5” is not software.
Even “42” is not software.
You need to take a longer moment to really think about the logic you are attempting to use.
Actually, you are wrong there…
Software IS a number.
jesse: how can you think about a 1 if the 1 does not have structure?
NWPA,
The structure of a number is indefinite and abstract.
bert, that sounds like it is straight out of a medieval witch trial.
Night, That just shows how little you understand math.
jesse,
You use the word “IS” but I think that you do not understand what that word means.
Anon, I realize you have trouble distinguishing reality from fantasy.
But reality does exist.
jesse,
I am not the one with the troubles.
You exhibit such a shallow grasp on what you have read – and you do not understand when you are discussing mathS (note the “S”). Your l a z i n e s a exhibits itself as you have no answer to the points I present to you: you mouth a theory that you have read, but you do not understand the context of the theory, what it means and how it relates to the real world.
Like I said: you use the word “IS” but I think that you do not understand what the word means.
Look above at this discussion – apply the ‘logic’ you are using fully an let me know where that logic takes you.
Then THINK about why you refuse to discuss your use of ‘logic.’ CLEARLY, your use brings you to an untenable position – and it is illogical for you to ignore this.
NWPA,
You say that numbers have structure yet you are unable to define that structure.
You skirt around jesse’s question What is the structure of the number 1? by asking your own question.
I can think of the number “1” in many different ways which will depend on the context or subject that I am dealing with. Whem I’m looking at a fruit bowl full of apples, the number “1” takes the form of a single apple. On my computer screen or in a book it could be as “1”, “I”, “i”, “one” or, and I know you’ll have trouble with this, “A” or “a” when used in a list of points.
In each of these instances the number I’m thinking about is the number 1. Despite the change in context or form the meaning stays the same – the number is abstract and is of indefinite structure.
The structure of the number “1” is indefinite. I will repeat jesse’s question for you and, because you’re obviously so much better than I am, challenge you to answer it,
What is the structure of the number 1?
I’ve provided an answer and given my reason for my answer
and you do not understand when you are discussing mathS (note the “S”)
Anon, please provide your definition of mathS and why the “S” is relevant. I can only presume that you ascribe some sort of distinction between mathS and math.
In all contexts that I have seen, both mathS and math are abbreviations of the word mathematics. If you think I’m wrong, please provide examples of where this is not the case.
bert,
Do you understand philosophy?
Do you understand the difference between the thought of something and that something?
Do you understand semantics?
Do you understand that a machine cannot think? That a machine cannot process an abstraction as you wish to use that term?
Have you ever heard the term ‘ladders of abstraction?’
Do you realize that the arguments you wish to use against software as a patent eligible matter are in fact isomorphic to ANY subject area as a patent eligible subject matter?
Any!
May I suggest that you read some Tegmark, and grasp what he is saying – from a purely isomorphic logical point of view.
You really do need to keep track of the levels of logic and the interactions with the metaphysical domains that distinguish philosophy from reality.
and bert, please note that software is NOT a number. I addressed this with multiple angles of reply above.
I hope that you realize the fallacy of pursuing that line of questioning. It just is not a matter of “skirting” the question, as it is a matter of realizing the logical fallacy of the question to begin with.
Anon, software is just a number.
A very complicated number, but still, just a number.
This goes back to when mathematicians first developed the concepts of an instruction cycle… somewhere in the 1930s…
You think that the concept of the instruction style was created by mathematicians? In the 1930’s?
Your ignorance is now matched by your hubris.
Tell me this: can you obtain a copyright on a number?
Come back when you have some real understanding and not this mere child’s mouthings of the koolaid anti-software patent crowd.
Another answer without an answer.
I’m afraid you have asked questions that I would not be able answer given the time I have.
I did not realise my question would put you in such a position that you would have to hide behind your own questions.
You think that the concept of the instruction style was created by mathematicians? In the 1930’s?
I believe that was when it was formalized by Turing.
I believe it actually existed as far back as the 1840s when the first computer was being designed… But it was not a formal study.
It has been used for as long as math has existed. Just not formally defined.
BTW, I’m assuming your “style” was a mistype.
If it was deliberate, then sorry about that. I said instruction CYCLE.
an instruction STYLE is a different thing, but is a vague term that appears to refer to how to follow directions…
bert,
I reject the implication that I am in any way hiding behind questions as I not only asked questions but pointed out the fallacy of the question that you and jesse want an answer too.
You really don’t want to play the snarky game with me, do you? Such will not end well for you.
Besides my pointing out the fallacy of software IS a number, the questions I ask are pertinent to the discussion. Take your time and join back up with the discussion when you are able – I would much rather have that type of discussion than a meaningless one on fallacious questions.
jesse, yes, style was a typo – no need to gallop on that horse (you already have enough on your plate and need to complete the path your ‘logic’ takes you first)
– and you are missing the point with your attempt to now limit your discussion to “formalized.”
You need to realize the terrain you are on (still).
Anon, the short answers are
Philosophy – yes
Thought of something vs something – yes
Semantics – yes
Machine thinking – yes, thinking is used as a metaphor. Why do you think that when people use a word that it has to be the meaning that you ascribe to that word? Words have multiple meanings and are used in different ways which is why I ask for definitions.
Machine process abstractions – a (computing) machine processes numbers in the way that it has been designed to process numbers. Whether that is through the mechanical turning of a cog or the workings of a relay or a transistor. The (computing) machine processes movement/electrical charge which represents numbers.
Ladders of abstraction – yes
Isomorphic – means equal shape. Can refer to having the similar form, such as graphene and silicene, or a one-to-one correspondence. I presume your argument here is that of a one-to-one correspondence, which unfortunately software does not have with, for example, a paper clip. Fundamental differences between software and a paper clip include, but are not limited to, a paper clip has mass, software does not.
I don’t understand why you think that I think that philosophy is indistinguishable from reality.
Do you have any particular metaphysical domains in mind?
Which levels of logic are you referring to? Or do you mean types of logic? I ask because levels of logic sounds more like the logical high and logical low that you get in a chip.
anon,
a statement was made,
and you do not understand when you are discussing mathS (note the “S”)
I asked for an explanation for why you make note of the “S”.
Perhaps I made a mistake in assuming your response at 8:26am was a response to my request for an explanation at 8:16am and if I did then I’m sorry for any snark. However, if I was not mistaken then why don’t you answer?
As for snarky games, no I don’t want to play them. They’re a waste of time. That doesn’t mean I’m afraid to play them though… I mean, what are you going to do? Put a contract on my head? School me in the art of typing? Ask me questions that I cannot answer? Insult me?
Nobody here seems to understand what an API is, how it is used, how a compiler works, etc… The best informed among you is at best ill informed.
An API is a “declaration”. It simply tells the compiler this or that object or function or data type exists. It is called so and so, takes these parameters, and exists in the library called so and so.
That is all.
It does not instruct the compiler to insert a function call!
It tells the compiler & linker, where to find the implementation of a given function should the user want to call it.
The API by itself does not call or generate any code.
Code will only be generated when the user code tries to call a function which causes the compiler to “LOOK IT UP” in the API. Just like you look up a name in a phone book and get a list of numbers to call.
In fact when you import an API, it will be loaded into the compiler’s symbol table. The symbol table contains a list of *ahem* symbols, EG.. “java.lang.math.Max” and information associated with that symbol. EG. It is a function that takes two integers, returns an integer, and can be found in the library module, “java.lang.math”.
That is how it works. It maps the text “java.lang.math.Max” to the information needed to call said function.
To say the API contains instructions is on the same level as saying the phone book has instructions. Yes you look up “Dave” in the phone book and you get instructions on what numbers to dial in what order.
I know what an API is and have been programming as long than you. I still program a bit building websites. The way to think of it is that the API is a component of a machine. Just because some of the functionality is shifted to another module doesn’t mean that it is wrong to say the API is doing it. You see how to do that?