“I am not authorizing you to release a Ruby port of Metaphone 3”
github.com
github.com
While he's inarguably incorrect about quite a number of things, it's always better practice to assume the best of a fellow engineer and treat this as a teaching opportunity, not a cause for pitchforks and belittlement.
The package maintainer, threedaymonk, handled it perfectly, imo, by respecting the desires of the individual and not porting it, and closing the issue out quickly without further escalation. While it may have been technically "right" to copy the code, it wouldn't have been worth the damage it would have caused to the person behind it. Credit for handling a unfortunate situation with grace.
I don't think there is anywhere on the internet that will tell you that you can't copy a BSD licence. How did the original author decide on the BSD?
It's easy to make a quick decision when releasing software that cannot be taken back.
And when you're finally realizing your mistake, you can only resort to what we're seeing here: pleas and threats.
And of course, on the whole huge Internet you will always have people who defy you either for legitimate reasons or just out of spite. So it's practically guaranteed that you end up with war.
I cannot make up my mind whether we should blame him (for being so nonchalant with the license) or Google (for luring him into this trap without properly educating him on the consequences).
I sympathize with him, but that doesn't mean there must be someone else to blame.
Well, I will play the devil's advocate. If the code is useful to enough people, then there is damage to everyone else who might have benefited the port.
What I understand from his comments is that he does not only not want you to use his implementation but also "his" algorithm as a basis to the port. Now assuming that he has an efficient algorithm to solve the problem, then he basically forbids other people from using the efficient algorithm.
So the needs of the community's damage may in fact be more than the individual's. Also say the exact same thing happened with GNU toolchain, does the individual's damage still outweighs the community's?
I would not bring this up if his tone in his comments wasn't arrogant despite the fact that he is at fault by not reading making any effort to understand the licence.
EDIT: Can down voters care to comment?
So what? There exist enough codes which are licensed under some kind of "open source" license for which you still have to pay to the patent holder if you actually use the code. While "somebody else" can benefit from using it, he/she still has to pay if the patent holder demands so.
Not every "open source" license is automatically a "GNU" one.
It's not only the moral issue (who benefits) but also the legal one. Even ignoring the legal one, imagine you being in his shoes: you earn money by selling your invention, and for convenience to your clients, you sell them your code. Then somebody asks you to allow him to include your code in some other project which is published under some other "open source license." You agree not knowing what that actually means, for example, because he who asked used misleading language. Later you find out that you misunderstood the effects of that action. Morally, the agreement where one agrees only because he was mislead is certainly not the agreement which has to be enforced. It should be annulled.
Exactly.
Firstly, kudos to project maintainer for handling the situation gracefully. I respect that he respected M3 creator's wishes.
You're quite right in an ideal universe. Ours is far from that. The code for the project is out there, so if someone does not want to pay the programmer, then they will reimplement it in house and no one will ever know about it period. If on the other hand they prefer the port, then there must be a good reason for it such as better compatibility/maintainability/performance/etc.
Now let's go to the ideal universe. Well, if everyone abides the rules, then the project creator effectively contaminated other programmers. If someone interested in solving the same problem examined the code thoroughly, then they are influenced by the solution and that is perfectly reasonable because they looked at the code thinking it is under BSD licence. Now that they know they are influenced by the program, they are ethically obliged to avoid solving the problem or they would be infringing author's "copyright" (that is despite the fact that you cannot copyright an algorithm).
It's hard for me to imagine myself in the shoes of someone with views on intellectual property which are fundamentally very different from my own. I believe that views on IP like his harm the software community immensely. The fact that his specific take on IP (and his interpretation of relevant US law, which may or may not be accurate) is one which he believes benefits himself, combined with the "put yourself in his shoes" argument, is not sufficient for me to change my views.
https://www.google.com/patents/US20090043584
EDIT: Downthread someone looked it up and determined that it failed to issue
Definitely. I believe that most everyday transactions, like when I buy a loaf of bread from a store, should be like that. In general, most simple transactions that occurs within a very short time period without any stipulations for future action from any present party need not be annullable. My claim is that code licensing is an example of this of course any given license only applies to the state of the code when it was released with that license.
Why the outpouring of hostility and contempt? I'm sure I sounded 'arrogant' - perhaps I was not too pleased with the tone of voice of many of the commenters here either.
Yes, I am perfectly aware of the difference between copyright and patent. What I was not aware of is that the copyright notice required by BSD is useful only in asserting the right of the copyright owner to swear away virtually all of the protections normally granted by a copyright notice. It is a legally castrated copyright.
"then he basically forbids other people from using the efficient algorithm" Did I ever say that I was trying to place any restrictions on the use of Metaphone3.java as is or however you might want to privately re-implement it? I donated the my work in the open refine project and it is there for all to see. I had a notion that by allowing the source code to be made available I was doing something good that would make Open Source advocates happy!
I'm glad you find my work useful enough to make a fuss about. Metaphone 3 is the product of my work alone - all the research and resulting 'rules' and logic were developed by myself from primary source data. Metaphone, Double Metaphone, and Metaphone 3 are not derivative works.
Again, my apologies if I misunderstood your "right" to do whatever you want with my work without restriction. Your method of asserting your rights, however, has certainly done nothing to make me feel welcome in your "community".
Yes. BSD is pretty close to public domain. That's what it's for.
2) Why should we feel "happy" when you've pulled a bait-and-switch, and acted as a bully? Your behavior and mindset are grossly at odds with the purpose of open source. Your effort was a trojan horse that's disruptive to the community. In short: You literally missed the point of "open source" entirely.
3) You explicitly stated that the algorithm is "not in the public domain", so falling back to a position that one can merely use Metaphone3.java is disingenuous. Java source is not useful or suitable to those of us in the Ruby world. We don't want to have to deal with the added overhead of a JVM.
4) Don't expect to be welcomed when you act like a bully, because you didn't know what the hell you were doing. It's not our job to teach you what the BSD license means, or what the difference between a copyright and a patent is.
5) Don't let the door hit you on the butt on your way out!
I, on the other hand, am seriously considering taking Metaphone3.java and reimplenting it in several languages, then making those publicly available.
(FYI, when I speak of "rights" in this post, I mean "legal rights", which I personally distinguish from the ethical ideas of "right" and "wrong"--I'm just explaining legality, there is no "ought" in what I say here)
> What I was not aware of is that the copyright notice required by BSD is useful only in asserting the right of the copyright owner to swear away virtually all of the protections normally granted by a copyright notice. It is a legally castrated copyright.
Um, what did you think a license would do? That last sentence, it's pretty much exactly the definition of what a copyright license does (if a little strongly worded).
Copyright is automatic. It only affects works (in your case, written code), not ideas (such as algorithms). You start out with all these rights about copying, distributing and broadcasting that particular work. These rights are exclusive, they belong only to you. That is default copyright, when you don't license anything.
Indeed exactly what a license does, is "castrating" (if you will) your copyrights. You can (partially) grant these rights to others, under certain circumstances, thereby diminishing the value of your own exclusive rights. That's what it does, a license defines under what circumstances you give up your right to exercise your copyrights, with respect to other people.
You start out with full exclusive rights, and a license formalizes how much and under what circumstances you are willing to chip away those rights and share.
Yet again, I must stress, copyright only applies to a "work"--a legal term, in this case referring to the written code of your project, and in general specifically not referring to ideas.
i think we can all agree that being nice and polite to each other is a good thing, as is respecting the wish's of a fellow engineer out of professional courtesy. we shouldn't be confused about the law though. none of those copyright claims were valid.
I work with threedaymonk and the reason that he came across this way is that he is a remarkably nice, well-intentioned, polite person.
Yeah, the author is likely in the wrong/gray (IANAL). But I can't help but be disappointed that posters below immediately jump to "Well, it should be free anyway!" "Why is he protecting his code?" "Here is an evil oppressor trying to keep something valuable to himself."
Here is a developer who tried to build a living using his own software, something many of us aspire to do. Why are we so quick to throw him under the bus? Is it because we instinctively always want to "defend the underdog"?
Because he published it under a license he apparently never intended to honor. It's like trying to charge someone for a free sample after they've eaten it.
FOSS licenses are confusing to people who don't live and breathe them. One other example from quite a few years back was when SugarCRM open-sourced their code and put it under a GPL license. They thought it meant 'you get to see what we're doing', but after a couple of competitors forked off it (we used vTiger, from memory), they got a short, sharp lesson in 'what the GPL means'. Their code from that point on was not GPL'd.
For one, people likely aren't going to be as charitable the second time he does this, and, for two, unless and until he understands what he's doing with licenses, he's a potential land mine to any project he contributes to.
CS courses need more courses on how licensing works, and by "more" I mean "some non-zero number". It's useful to know even if you never enter the FOSS world.
Another (albeit more absurd) example is version control. You can successfully argue that it's not a computer science topic, but anyone graduating with a CS degree will be much better off in the real world having learned about it.
Reusing other people's work(1) is decidedly computer science.
Without it(access to source code) it would be simply impossible to teach ANY CS course. Good luck teaching compilers without accessing one, or OS without being able to read the internals of one.
(1)Like Linux,network stack, LaTex, gnu tools, llvm, valgrind, qt, kde, WebKit engine, grass, OpenStreetMap, Wikipedia, Arduino, OpenScad, freecad and RepRap...
> There's no traditional CS courses I can think of that this would fit in, except for maybe an ethics in CS course, which not all schools have.
All CS programs should have an ethics course, at least, and I think this would work in that context. For example, deontological ethical reasoning is about navigating among conflicting duties, and licenses can certainly impose duties on people.
while it might not fit into an academic computer science research curriculum, a good university program should include courses on these topics anyway. if your school doesn't (or if you didn't go to school!) its still a good idea to learn about law and ethics through self study.
I think basic knowledge of laws concerning your work of field is an important asset to anyone working in tech. Especially if your laws diverge from US ones (e.g. no "fair-use") the internet is a dangerous place sometimes ;)
Quit calling yourselves that: you're all web developers, not engineers. At the end of the day, 95% of what people on HN do revolves around making pretty websites for the internet.
You have not taken the FE exam, you did not study engineering, you are not certified as an engineer. This is just the latest way that CS graduates are trying to self aggrandize and de-trivialize their profession.
I find it rather offensive to generalize everyone on HN into one category. I have read comments from people in all stages of life and many different professions and we do not need this kind of talk.
You can walk up to Woz and tell him he wasn't an "engineer" when he designed the original Apple hardware, but you can't possibly expect anyone with a clue to take you seriously.
I can call myself a software ninja if I wanted to. That doesn't mean I practiced the art of ninjas. I can call myself a code monkey. That doesn't mean I'm actually a monkey. It's just a fucking title, so get over it. If that's my actual title at a company then I'm going to use it publicly too.
It makes sense for safety critical areas to hold people to professional standards and legal liability.
Edit: speling
"Engineer" is a protected job title in the US, but most are able to operate under an industrial exemption and so legally use the title.
The reason why some are picky about the title is that it is a licensed profession, and has some expectations associated with it. If someone tells me they're an engineer, I assume they know how to use a Laplace transform, because that's common across disciplines at the undergraduate level. Same as applying perturbation theory at the graduate level. Same as having a common corpus of basic science knowledge. Same as with professional code of ethics. Etc.
To use your own logic above, calling yourself a software ninja doesn't make you a ninja, and calling yourself a software engineer doesn't make you an engineer. It might be legal, but it's crass.
At your specific institution. Every school has different curriculum, both within the engineering programs themselves, and when compared to other schools. There is no unified curriculum nor is there one unified thing that all engineers, regardless of their schooling, would know because I'm sure, at one school or another, that one thing would not be taught.
And what, exactly, is so crass about it? As I said, it's just a goddamn title. A made up word used to describe yourself. There's nothing inherently disrespectful about using a title. It doesn't instantly diminish the title of every other engineer on the planet just because someone decided to call themselves an engineer without getting a B.AS. I could call myself the Queen of Rotunda, my made up domain. That doesn't suddenly mean that I'm disrespecting Queen Elizabeth, or any other queen in the world.
The whole point of having ABET accredit programs is to standardize a basic body of knowledge. Curricula in mechanical, chemical, electrical, and biomedical all include solving DEQ and PDE systems. Solving those without Laplace transforms is cruel, once the basic principles are understood of course.
If it's just a goddamn title, then you wouldn't be so insistent on using it. You want to use it because it implies a level of education and professionalism. It's crass to use the title because there is such a thing as software engineering, and the people most strongly insisting to use the title don't practice it. Like I said, you can legally use it, but licensed engineers are rolling their eyes when your back is turned.
> there is such a thing as software engineering
Which differs from place to place, yes. Not every program has been accredited but still provide software engineering degrees, perhaps with elements that would not be found in another's curriculum.
> and the people most strongly insisting to use the title don't practice it
Just because you don't have an accreditation does not mean you "don't practice it".
> Like I said, you can legally use it, but licensed engineers are rolling their eyes when your back is turned.
Good for them. They can roll their eyes all they want, it doesn't make them more right to do it.
ABET does accredit international programs.
Some international programs. They don't have nearly enough capacity to accredit every single international engineering program all over the world. I'm sure they have the major ones down, but there's plenty that are probably not which still teach engineering.
> Engineer is a licensed profession, like physician or lawyer.
The license only gives you the right to call yourself a Professional Engineer. Like I said before, unless it is illegal to call yourself an engineer without being a PEng and being licensed, then the "licensed profession" part of it really does not matter. A company can require you to be a PEng in order to receive an "engineer" title in your role, but there is still nothing, short of law that prevents you from using it yourself.
> like physician or lawyer.
And they're both different from engineer, because those licensed professions are actually legally enforced, whereas "engineer" is not legally enforced everywhere.
This all varies between states, but in general, if you for example started a software consulting firm called Vlad Engineering and the principals were not licensed, your local licensing board would likely have beef with you. If you were a software engineer at Vlad Consulting you would probably be okay.
The bottom line is that it's tricky to navigate, and so it was recommended at my school we avoid using engineering anywhere unless we had our PE license.
Civil?
(Edited some details I was wrong about)
Algorithms are sometimes subject to patents, though I believe they shouldn't be, and if the author wanted this sort of control over the algorithm a patent is the path he should have taken, but as far as I can tell the author has not patented this particular algorithm (and I doubt it is novel, as it sounds similar to quite a few pre-existing tools in related fields).
This is just a sort of weird conversation. Why Open Source something if you don't want people to use it in interesting ways?
If you want a non-derivative work you need to do something like a clean room implementation where the one writing the code doesn't have access to the code of the existing implementation: https://en.wikipedia.org/wiki/Clean_room_design
BTW this guy can not stop derivative works once he has released it as BSD.
could he just remove the BSD license from all subsequent commits to the code base? The existing code base will still continue to be BSD licensed of course.
Forfeiting copyright is not possible in some jurisdictions.
I'm not sure what is unclear about a refutation of a single sentence.
Moral rights are generally impossible to forfeit and assign. Economic rights usually (I don't know of any jurisdictions where assigning economic rights to the project maintainer would be impossible - are you?) are possible to assign.
In common law systems, the two are usually traditionally much more closely tied, and when we talk about copyright in English, it is usually the economic rights we're referring to.
The short version is assign FSF copyright, or put it in the public domain.
I know to contribute to Clojure/ClojureScript-proper, I had to sign http://clojure.org/contributing
I can take any BSD code, close source it, develop it further inside my company, then sell it as a proprietary, closed source app.
Or re-license to GPL.
Aside: Isn't is possible to revoke a license?
If you give someone the right to do something and don't specify how you can take it away, you can't take it away again. Without termination clauses a license is a contract thats valid indefinitely.
These licenses are explicit about what they do/do not grant. p
In software, the license is what you sell. I don't buy MS Windows or Photoshop, I buy a license for it. If you sell me a 3-seat license of software v1.0 allowing me to install it on up to 3 computers, you can't come back 2 years later and change the terms to only 1 computer. Now, in 2 years, you might have v2.0 and require a new license for that. But the license you sold me for v1.0 remains in place.
By releasing the software under the BSD license, he basically sold us a license (price immaterial) granting permission to redistribute and alter the code, provided that new code includes the BSD license.
I understand that wasn't his intention. Another commenter pointed out that the author gave permission to another project which was being released under the BSD license. Now anyone that was "sold" the software with that license has been granted those redistribution rights.
If I pay money in return for a license to use Photoshop, there is a reasonable expectation that I can use that indefinitely. I give then money, they give me permission.
If I simply download a piece of open source software from the internet, that isn't the same thing. There's no transaction. There's no anything. If the author subsequently tells me "I hereby revoke all previous licenses", I don't see how that wouldn't have legal weight.
Money has nothing to do with it, all reproduction of bits is automatically covered by copyright law, and has a legal presumption of "all rights reserved" unless explicitly delineated in a license.
Even when paying money, it isn't a reasonable expectation to expect to be able to use it forever for all software. With shrink-wrap or click-through agreements, perhaps, by convention, but plenty of software is sold on subscription for example, or may have revocation clause without refund which is common with MMO games for example.
Some software also may naturally break some day due to incompatibility or disinterest by the author. Other than limited warranty protections by law, there's not much a buyer can do about it. This is of course subject to local laws which may allow moral revocation (France) or stricter warranties.
With regards to downloading a piece of open source, the downloader is consenting to the copyright license it is offered under: it's the same as a click through.
If there is no license, you technically have no right to use or redistribute the software (all rights are reserved).
If there is a license, usually that will explain the author's intentions for fees, redistribution rights, and rights of revocability.
The OSI exists to approve licenses as "open source" when they (among other clauses) explicitly denounce revocability. The only recourse is that an author can refuse to OSI license future modifications or releases of the software (basically making a private fork).
Assuming he holds the copyright for the entirety of the program, he could change the license for all future versions, and he also could stop distributing old versions under the old license (putting a new license on it, or simply discontinuing distribution). But, the old license has already granted thousands, or millions, of people, the right to distribute it under those terms.
http://ifosslawbook.org/france/ ("Moral Rights" heading)
All rights granted under this License are granted for the
term of copyright on the Program, and are irrevocable
provided the stated conditions are met.
How does France work against this?I don't know how this affects the GPL specifically, but you can be pretty sure that if the GPL doesn't contain France-specific French-language legalese to work around it, then it's likely to be revokable whatever the license says. Of course this only affects you if you're in France or have French contributors.
If that's the law in France, it trumps the license text.
Just as the law trumps any clause requiring the sacrifice of the licensee's firstborn on an altar.
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.
Since allowing the licensor to revoke the licence would be an extra condition.> Nevertheless, the Intellectual Property Code provides some specific rules regarding moral rights over software. It provides that the author may not oppose modifications of the software, in as far as such modifications do not affect his honor or reputation, and exercise his right of withdrawal.
The remaining issue is that you can still forbid modifications that "affect your honor or reputation".
[1] http://legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGI...
https://en.wikipedia.org/wiki/Oracle_v._Google https://en.wikipedia.org/wiki/SCO%E2%80%93Linux_controversie...
There are tons and tons of cases in this area.
As the Wikipedia link you gave says:
> Clean room design is usually employed as best practice, but not strictly required by law. In NEC Corp. v Intel Corp. (1990), NEC sought declaratory judgment against Intel's charges that NEC's engineers simply copied the microcode of the 8086 processor in their NEC V20 clone. A US judge ruled that while the early, internal revisions of NEC's microcode were indeed a copyright violation, the later one, which actually went into NEC's product, although derived from the former, were sufficiently different that they could be considered free of copyright violations.
As another example, BSD Unix evolved sufficiently away from AT&T Unix that only a couple of files needed to be replace to get away from AT&T's copyright.
Both derive from someone else's works, but that's a different sense of "derivative" than what copyright law cares about.
However, he failed to grasp some basic IP concepts, especially wrt US law. Algorithms are not copyrightable, and most are not patentable (especially after Alice v CLS) under US law. However, there is solid precedent for similar systems being eligible for patent protection (soundex, other patents that cite his systems as source material, etc). It does not appear that he applied for this protection at this time.
Moreover, under the modification clause of the 3 clause BSD license he used in his source file, there is a significant amount of commentary suggesting such a rewrite would be permissible under the terms of that license. However, re-licensing it under MIT would on the surface not be permitted.
EDIT: he may have applied for a patent. This could preclude the project from including his system. However, I'm not a patent lawyer, so I don't know how well this would hold up in international implementations (github being a US entity makes this point relatively moot).
When patents are involved, it makes more sense to us a license like the GPL3 or Apache2.0, which also grant licenses for any patents which are covered by the code.
Unless he applies (has applied at this point) in a particular country, or has a Patent Cooperation Treaty application filed in some country and is pursuing it in a particular country, he is completely out of luck by publishing his algorithm. (And as another commentor mentioned, post-Alice, it's pretty unlikely that a patent applicant will succeed with software patent applications absent some pretty close coupling to something specific about the computer hardware.)
It's amazing to me that so many software developers have no basic grasp of IP--the thing they work so hard to produce. It's not like it's all that difficult: Copyrights protect the expression of an idea; patents protect inventions. This developer seems to think that copyrights protect ideas.
Indeed. His patent was abandoned, according to the USPTO's PAIR website at [1], after being rejected for non-patentability. Aside from being apparently non-patentable subject matter, the examiner noted that Philips's application was similar to a previously rejected application no. 10/454,261, and rejected the former on the some of the same grounds as the latter.
(I am not a patent lawyer.)
You put out code under a BSD license and people have some reasonable expectations that they can use that code.
I don't see anything about a patent grant - do you have a link to that?
"Metaphone is a phonetic algorithm, published by Lawrence Philips in 1990, for indexing words by their English pronunciation. It fundamentally improves on the Soundex algorithm by using information about variations and inconsistencies in English spelling and pronunciation to produce a more accurate encoding, which does a better job of matching words and names which sound similar. As with Soundex, similar sounding words should share the same keys. Metaphone is available as a built-in operator in a number of systems, including later versions of PHP."
Metaphone 3:
"A professional version was released in October 2009, developed by the same author, Lawrence Philips. It is a commercial product but is sold as source code. Metaphone 3 further improves phonetic encoding of words in the English language, non-English words familiar to Americans, and first names and family names commonly found in the United States."
My guess is that Google requested use of the Metaphone 3 package, Lawrence perhaps didn't understand the what BSD meant, but was willing for Google to use it in their Google-Refine (now Open Refine) codebase so willfully let them pick the most permissive license.
I'm having a real difficult understanding him from his GitHub comments. It's clear that he never intended his algorithm to be re-useable or modifiable in any way, but if he intends to restrict the future use of his Metaphone 3 code or even prevent a port, he's going to find it impossible....
Lesson learnt... it's clear that a work of this magnitude would have taken thousand plus hours... if you don't intend it to be re-usable, then you shouldn't pick a permissive, open source license such as BSD.
It also strikes me as odd that someone who creates intellectual rights for a living (i.e. a software developer), as an independent, does not have a basic understanding of copyright law.
I'm not a lawyer, but some basic understanding is at least to be expected. Still, sucks for him though.
I think that this is more a case of the "unknown unknowns." He probably thought that he did have a good grasp of copyright law and that was why he didn't need to talk to a lawyer.
Any open source license is going to pose the same "problem". If you don't want it to be open source, don't make it open source. Permissive license doesn't even enter into it.
Most Atlassian products are "Open Source" in that after purchase you can download their source code.
You are still not allowed to repackage it / modify it and sell derivative products / run multiple instances of it though.
That said I'd say the problem with the OP thread isn't even about "open source", it's about misunderstanding copyright vs. patents.
https://en.wikipedia.org/wiki/Open-source_software#Open-sour...
Although the OSI definition of "open source software" is
widely accepted, a small number of people and organizations
use the term to refer to software where the source is
available for viewing, but which may not legally be
modified or redistributed.
Which is exactly the point I wanted to make: that there is no one true definition of open source and that, although most technically inclined people agree, there is room for confusion/disagreement.If these sorts of contributions are worthy of downvotes these days then I really don't know what I'm doing here anymore :S
https://github.com/threedaymonk/text/issues/21#issuecomment-...
> "I'm not going to port Metaphone 3 to Ruby, nor am I going to accept or merge any such ports at this time.
> Whilst the licensing of the Java code in question clearly and unambiguously permits such a port, @lphilips54's stated intentions for reuse of the code are unclear and contradictory. I can't see that any benefit would come from integrating something that is surrounded by such confusion."
I'm sure they're within their legal right to copy the code if they wanted to. But that wouldn't be the moral thing to do.
I'm not sure they're within their legal right to do so given metaphone 3 is patented, and the BSD license does not include patent grants, so the patent grant has to be obtained separately from the license.
Indeed, Alice v CLS makes it much more difficult for algorithms to be patented in the US (though hardly impossible), and the only references to a metaphone patent in the USPTO that I or others in here have been able to find have been rejected patent attempts.
If you are going to repeat this everywhere like it is the truth, please provide clarification, because current evidence points to this being incorrect, and I'm sure everyone here would like to be corrected if our current findings are wrong
[1]: http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...
Porting the code released with BSD license would effectively just be donating the work to a private individual. Be glad that the guy was good enough to warn people ahead of time, instead of submerging a patent submarine and surfacing after someone creates a big payday for him.
The idea itself, to determine phonetic rules from spelling quirks in English, is non-patentable, but the specific rules he formulated may be. Anyone else could spend "thousands of hours" creating their own rules. We already have a few in the public domain, such as the "i before e" rule, where the "ei" in "neighbor and weigh" is phonetically an "a", which implies that "-eigh-" is the spelling pattern, which also holds in "eight" and "neigh".
See? Free head start for FOSS.
If there's no patent, the poor guy doesn't have a legal leg to stand on.
Edit: wording.
And apparently he doesn't know what the common meaning of "FOSS" even is.
"Metaphone3.java was released as part of the Open Refine Package under the BSD license" and then "It does not, contrary to popular belief, automatically declare the algorithm to be public domain, or the software to be FOSS. "
It seems rather odd but not totally inconsistent.
Stuff you remember from TV is not the law.
Half-remembered Slashdot debates are not the law.
The law is the law. It varies from place to place and from year to year. It is large, complicated and subtle because it covers everything humans do, which is a large, complicated and subtle problem domain.
Seriously. If you have a legal question: see a freaking lawyer. A few hundred bucks to change the entire course of your life is a bargain. It's less than some plumbers.
From my understanding of this, the author has no right to block any reimplementation of the algorithm in another language because he has released the code under a license that explicitly allows for modification (which says nothing that forces modification to be restricted to a single language). The reimplementation just has to keep the same license and copyright notice.
However, there seems to be a patent pending for the algorithm. If there is an actual patent, he has not actually given anyone the right to use the code or any modifications.
You can reimplement it, but you can't run it without the author's permission (i.e. patent grant).
EDIT: On second thought, one might argue that since the code was licensed under BSD (which says "use in source or binary form") by the patent holder himself, he has given an implicit patent grant to everyone that uses it or modifies it in any way.
Then the examiner points out prior art - a patent application by Ralston, (App #20040054679, Ralston, James, March 18, 2004, "Remotely invoked metaphonic database searching capability") The original Soundex algorithm dates from 1919, the Metaphone algorithm dates from 1990, and Ralston's improvement is on record. Philips' improvement of 2009 just wasn't enough of an advance over the old stuff.
He might have modified the claims to overcome those objections; this was a non-final rejection, and you're allowed another revision cycle with no additional fees. But, for whatever reason, he abandoned the application.
A rejected patent application puts the algorithm into the public domain. Philips has no rights in the algorithm now.
Not so. Metaphone 3 is not a derivative work. Ralston's patent merely uses (original 1990) metaphone as part of its design, and does nothing to improve it.
The patent was abandoned because the U.S. Patent office informed me that it is no longer patenting algorithms.
https://code.google.com/p/google-refine/source/browse/trunk/...
If he wanted to legally protect his algorithm he should have patented it and given a licence to use it only with his BSD-licensed implementation.
Still, IANAL.
[0] Though, IANAL.
https://github.com/OpenRefine/OpenRefine/blob/master/main/sr...
http://www.theregister.co.uk/2014/12/19/judge_spanks_sco_in_...
Groklaw[1] did post the ruling as linked in The Register article and cited on the Wikipedia page[2].
[1]: http://groklaw.net/pdf4/IBM-1132.pdf
[2]: https://en.wikipedia.org/wiki/SCO_v._IBM#cite_note-ibm1132-4
"Since courts are likely to construe implied grants of license narrowly, a licensee should consider obtaining separately from the licensor an explicit grant of patent rights that might be needed for modified versions of BSD-licensed software."
This seems to go against the FOSS[2] freedom 2, the right to distribute modified copies without asking anyone for permission. Now, whether that can be applied in this particular case I don't know, I guess that depends on whether there are patents involved. But in general, BSD does not imply FOSS.
[1]: http://www.rosenlaw.com/oslbook.htm, chapter 5, p. 79
[0] : https://github.com/threedaymonk/text/issues/21#issuecomment-...
https://drive.google.com/viewerng/viewer?url=patentimages.st...
Searching on the USPTO website returns no related patents:
http://patft.uspto.gov/netahtml/PTO/search-bool.html
The indication, to me, is that the patent has not made it past the application process.
Systems such as this, however, have enjoyed patent protection in the past (Soundex, notably), and his own metaphone and double metaphone systems are cited in several other patents. Google patent search is your friend here.
Snarky comment: The USPTO has a habit of not denying any applications.
Well obviously the meta argument, taking a step back, is if the community insists on porting to ruby, doing all the work for him, such that the happy and cooperative leader can now collect sweet support contracts from MORE corporate users and increase the resume fodder value of his original product...
What looks better on dude's resume:
Author of a Java library with 1000 users resulting in $50K/yr support contract revenue
or
Author of a multiplatform Java and Ruby library with 2000 users resulting in $100K/yr support contract revenue
or
Author of a Java library, got into a fight with the ruby community mostly because I don't know the difference between licenses, copyrights, and patents, and now I've only got 500 users and $25K/yr of revenue
"They have no right to do this. Open Source does not mean the source is somehow 'open'. That's my code, not theirs. If I make something private, it means that no matter how desperately you need to call it, I should be able to prevent you from doing so, even long after I've gone to the grave."
While I think the OSS community should be polite and inclusive, I also think that we are all poorer if we ignore contributions due to author behavior. I'm confident that many authors have abhorrent political views and actions. While we should not elevate them as role models, there are times it's reasonable to just use the code.
The Java implementation is protected by copyright.
The algorithm itself would be protected by a patent, which he (generally) could file for within a year of publishing.
And the odds of getting that patent (in the US) would be fairly low, given recent Supreme Court rulings.
For a work to be really Public Domain, only happens under a bunch of specific circumstances that really do not apply here (such as the copyright holder having been dead for a number of years).
You can't really slap a license on something and have it be Public Domain, because that means relinquishing any and all intellectual property rights related to the work. Including personal and moral rights. From Wikipedia:
https://en.wikipedia.org/wiki/Public_domain#Dedicating_works...
> ## Dedicating works to the public domain
> Few if any legal systems have a process for reliably donating works to the public domain. They may even prohibit any attempt by copyright owners to surrender rights automatically conferred by law, particularly moral rights. An alternative is for copyright holders to issue a licence which irrevocably grants as many rights as possible to the general public, e.g., the CC0 licence from Creative Commons.
Note the last remark about Creative Commons' CC0 license. It's about the closest you can get to actually releasing your work to the Public Domain, worldwide (check the Creative Commons website for info about some legal hurdles why you can't "just release something to the Public Domain"). It's not something that happens by accident.
Now obviously the author doesn't have this particular specific meaning in mind, instead rather something else. Except, it would probably help the discussion a lot of he'd use the proper term and accurately defines what he is trying to say.
It seems to be some kind of confusion or collision between the (obviously and pretty straightforwardly copyrighted/licensed) actual written code he released under the BSD License, and his intellectual property rights over the (more nebulous concept of) the algorithm that is described in this code. I'm not at all sure if you can even obtain copyright over the latter. Actually no, I am pretty sure that you cannot. Copyright is very explicitly defined over a work, not an idea, and the work is the actual written code that was released under the BSD License.
That is, if it weren't for the patent issue. And clean room design doesn't help against patents.