Subject: RE: Patent-based dual-licensing open source business model
From: "Lawrence Rosen" <lrosen@rosenlaw.com>
Date: Tue, 26 Sep 2006 10:39:12 -0700

Brian Behlendorf wrote:
> You completely misunderstand the context, then, of my comment.  Larry's
> proposed business model is that I am compelled to release as Open Source
> the source code to my software that implements the patent.  The boundary
> of what is "software that implements the patent" is thus extremely
> important - is it the entire mesh of different systems within my
> enterprise?  Or is the smallest portion of that collection of systems
> that, when removed, cause me to no longer practice the patent?  I'm pretty
> sure it's closer to the latter than the former, but reasonable minds may
> differ, and the patent holder is always going to be motivated around a
> broad interpretation.  There either was or still is a patent on
> "delivering multimedia objects via a network connection".  There's another
> one on "holding customer credentials and payment information in a database
> so that with 'one click' a customer can order an object from a catalog".
> These are very broad kinds of business patents that a myriad of software
> systems are employed to implement, and where it would be very difficut to
> functionally separate out from the rest of the code.

Brian, there is no specific "boundary of ... software that implements the
patent." If you distribute software that infringes a valid patent, you must
stop doing so or get a license.

One of the reasons I described Rob Cameron's inventions here was to make it
obvious that the number of lines of code is not dispositive. It is the
*method* claimed in the patent and the *method* actually implemented in the
software that determines whether there is patent infringement. So if you can
avoid infringing a patented method by removing three lines of code, or 3000
lines of code, or by not distributing the program at all, that solves the
infringement problem. In fact, I think it might be sufficient in some cases
to add a one-byte branch-around so that the software no longer infringes
when run. 

The legal burden is initially on the patent owner to prove infringement.
Certainly a patent owner is motivated to make as broad arguments as
possible. Fortunately, patent disputes (especially when there are public
outcries from the open source community or when the financial stakes are
sufficient to warrant the cost of litigation) have two sides, not just one.
MOST patent disputes are resolved long before they get to the litigation
stage, just as most GPL copyright disputes are resolved by quiet back-room
discussions between FSF and the accused infringer long before the parties
get to court.

You keep summarizing problem business method patents by offering one-line
overviews of the patents. It is more appropriate to analyze the claims
rather than the overview. This is not to say that there aren't claims that
should not have issued, or for which there is prior art that the examiner(s)
missed. I agree with you that, in particular for broad business method
patents, it would be very difficult to separate functionally the infringing
from the non-infringing part of the code. But that isn't generally the case
with software patents for accomplishing specific useful methods.

/Larry Rosen

> -----Original Message-----
> From: Brian Behlendorf [mailto:brian@collab.net]
> Sent: Monday, September 25, 2006 8:36 PM
> To: simo
> Cc: 'Free Software for Business'
> Subject: RE: Patent-based dual-licensing open source business model
> 
> On Sat, 23 Sep 2006, simo wrote:
> > On Tue, 2006-09-19 at 15:54 -0700, Brian Behlendorf wrote:
> >> I'm not talking about "unrelated" works, I'm talking about scope within
> a
> >> single codebase.  What defines the boundaries of a piece of software,
> when
> >> it's not just one staticly linked executable running on bare metal?
> There
> >> is complexity here that "patent law" doesn't address.  Even my "clear
> >> statement" didn't fix it.  "Smallest portion of code that embodies the
> >> patent" might be one way of putting it.  I'd put forth that patent law
> is
> >> even more subjectively enforced than copyright law, so punting to the
> >> courts for interpretation is not useful as a potential consumer of the
> >> patent.
> >
> > Brian, I'm sorry to say that here you show you don;t know how patents
> > and patents claims work.
> 
> You have my permission to revise the above statement if the below clears
> things up for you.
> 
> > It doesn't matter at all where are the software boundaries. It all ends
> > up on whether or not your code implement the claim or not, the form this
> > code takes does not matter at all, you can rewrite it in 100 different
> > languages, and the claim may still be true and covering your code (it
> > really depends on how good is the lawyer+customer in writing the patent
> > claim, there is a push from the PTO at being as generic as possible so
> > that the claim can be as broad as possible).
> 
> You completely misunderstand the context, then, of my comment.  Larry's
> proposed business model is that I am compelled to release as Open Source
> the source code to my software that implements the patent.  The boundary
> of what is "software that implements the patent" is thus extremely
> important - is it the entire mesh of different systems within my
> enterprise?  Or is the smallest portion of that collection of systems
> that, when removed, cause me to no longer practice the patent?  I'm pretty
> sure it's closer to the latter than the former, but reasonable minds may
> differ, and the patent holder is always going to be motivated around a
> broad interpretation.  There either was or still is a patent on
> "delivering multimedia objects via a network connection".  There's another
> one on "holding customer credentials and payment information in a database
> so that with 'one click' a customer can order an object from a catalog".
> These are very broad kinds of business patents that a myriad of software
> systems are employed to implement, and where it would be very difficut to
> functionally separate out from the rest of the code.
> 
>  	Brian