decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
A simplistic answer for "What is an API?" | 270 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
A simplistic answer for "What is an API?"
Authored by: Anonymous on Friday, April 20 2012 @ 03:53 PM EDT
I had a similar idea but was thinking about higher level concepts rather than a
key and lock. The issue I see if everyone is talking in the abstract and not in
terms of something a judge/jury can easily understand; think see and touch vs.
abstract idea.

Take for example the US Federal Courthouse in San Francisco:

1. The Architect who designed the building created a Blueprint. (For Java)
2. You have the construction company who built the building. (Sun)
3. Owner who owns the building and the rights, which I assume would be Federal
Government. (Sun/Oracle)
3. Inspector who made sure the building was up to code and the Blueprint was
followed as well as any other Federal Building that wants to use the Blueprint.
(JCP? but only if you want it to be Federal car) (Charge Money)
4. People who use the facility (Judges, Lawyers, Juries, Defendants, Plaintiffs,
Court Recorders, Janitors etc.)

Where do API's come into play? How do you use the building, locate it,
directory, emergency plan etc.

1. Top level API might be US.* as this might apply to other facilities that are
owned by building owner or Federal Government (i.e. prison, FBI facility,
military, IRS etc.). This would equal Java.*
2. To get more specific you might have US.Buildings.Courthouse
3. There might be other things that will share this API in the future like
US.Military.AirForce

Use cases.
1. As an Architect I have to ask myself how I find this courtroom.
US.Buildings.Courthouse.Room_Name(city, build_num, room_name)
US.Buildings.Courthouse.Room_Number(city, build_num, room_num)

2. How do I exit the room, building etc. during an emergency?
US.Buildings.Courthouse.Emergency_exit()

My example is very long and not fully thought through, but I would step through
the iteration process with the jury to see why it takes so long to create a good
API but how it isn't protected.

In this case Google wanted to create a building that would use the API's that
were created for Java, which they helped build, but they didn't want the
building certified by the Federal Inspector (JCP). The Google building is a
corporate building (Android) and it is under different rules. Just because I
have a directory up front to let people know how to find a room or a fire exit
doesn't mean Oracle owns the concept of a directory or a fire exit. This is
something everyone uses and is logical.

Lastly, Google may have a different method to do a room lookup vs. Oracle so the
API call might be named similarly; however, the logic on the backend most likely
is different, and it is this piece that is protected not the API.

[ Reply to This | Parent | # ]

I have an example
Authored by: Anonymous on Friday, April 20 2012 @ 05:46 PM EDT
I have a language. I call it "crockpot". Crockpot can be used to
create applications I call "dishes". Dishes are not all the same,
however, and so I have included some APIs that provide basic 'specifications'
for some types of recipes. I organize them into classes, such as
"soups", "stews", "gumbos", etc. Each
specification lists ingredients, and also gives a method and process for using
them: proper selection of ingredients, sequence of ingredients, proper
temperature and length of time necessary to complete.

The dish developer may follow the APIs I have provided and get the same dish, or
they may create their own. Certain parts of the specification though are not
user selectable, such as temperature. Crockpot only provides 3 possibilities:
off, medium, or high, and may only be selected through a built in mechanism
called "the switch".

So even if a developer chooses to create their own APIs, those will at some
point incorporate the switch in order to regulate temperature. Furthermore, if
the developer wishes to distribute the dish to a wider audience, they must
either compile a large stockpile of pre-prepared completed dishes, or else they
must publish their API.

So what is copyrightable? Not crockpot, because it isn't an implementation.
The API is *may* be, but only to the extent someone literally republishes it.
While the dish itself may be copyrightable, it can't infringe on the API
copyright, and experience shows that two implementations of the same dish are
rarely the same, so infringement would be hard. It also isn't a derivative work
because it doesn't incorporate the API.

A simplistic prtrayal of this case. Oracle bought a crockpot from Sun. It
included a recipe book. Google built their own crockpot-like device, made their
own recipe book, and freely distributed it. Their "Android Gumbo" has
since become very popular. Oracle now claims that not only the gumbo, but any
dish made from Googles recipe book infringes their crockpot because Google used
some of the same names for their classes.

[ Reply to This | Parent | # ]

Whatever it is, the interface is vanishingly thin
Authored by: Ian Al on Saturday, April 21 2012 @ 11:23 AM EDT
Take the interface between an electrical plug and a socket. We can specify the
shape of the pins on the plug and the corresponding socket holes. That
specification is of the electromechanical interface, but the interface between
the pins and the pin holes has no dimension. If it did, no electrical contact
would be made.

An individual API has no dimension because it is an abstract idea. It only
exists in our mind. You cannot buy a box of them. The API Specification is
merely showing what shape of language is necessary to plug into the library.

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )