Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metaphone 3 support #21

Closed
johnnyshields opened this issue Dec 16, 2014 · 13 comments
Closed

Metaphone 3 support #21

johnnyshields opened this issue Dec 16, 2014 · 13 comments

Comments

@johnnyshields
Copy link

The Metaphone 3 algorithm has been released as FOSS as part of Google Refine here:

https://code.google.com/p/google-refine/source/browse/trunk/main/src/com/google/refine/clustering/binning/Metaphone3.java

The disclaimer is as follows:

Copyright 2010, Lawrence Philips
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted
provided that the following conditions are
met:

  • Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above
    copyright notice, this list of conditions and the following disclaimer
    in the documentation and/or other materials provided with the
    distribution.
  • Neither the name of Google Inc. nor the names of its
    contributors may be used to endorse or promote products derived from
    this software without specific prior written permission.

So, provided that we include the disclaimer it would be OK to release a Ruby-port of the code as part of this gem.

@threedaymonk
Copy link
Owner

Great idea. Would you like to do it?

@johnnyshields
Copy link
Author

@threedaymonk I will if I can find the time. Putting this here in case someone else is looking for it.

@lphilips54
Copy link

Metaphone3.java was released as part of the Open Refine Package under the BSD license, This license allows you to re-use the Metaphone3.java file as you see fit, including modification to the code, as long as the copywrite notice is preserved. It does not, contrary to popular belief, automatically declare the algorithm to be public domain, or the software to be FOSS. If I wanted to declare it FOSS or Public Domain, I would do that. Not all licenses automatically imply all other licenses.

I am not authorizing you to release a Ruby port of Metaphone 3. By doing this you would not be re-using the java code, as the BSD license allows, but treating the Metaphone 3 algorithm as public domain, which the BSD license does not automatically imply.

There is a reason that the BSD license requires that you perpetuate the copyright notice. Please read up on American Copyright Law. If the copyright notice does not enforce copyright according to american law, what is it there for?

You may contact me through the Anthropomorphic Software website.

thank you,

  • Lawrence Philips

@threedaymonk
Copy link
Owner

@lphilips54 You are, of course, entirely within your rights to apply restrictions to your code, but you've apparently chosen to release it under a licence that says the opposite of what you later assert. It's highly inconsistent:

  1. The BSD licence is a FOSS licence. By choosing it, you are literally saying that the software is FOSS.
  2. The licence does not specify any restrictions to what form modifications may take, except that the copyright notice, conditions, and disclaimer must be preserved. Changing the Java to Ruby whilst preserving the prescribed sections would fulfil these conditions.

If the copyright notice does not enforce copyright according to american law, what is it there for?

A most fascinating question indeed, especially for those of us in the two hundred odd countries where American law does not apply. Under the Berne Convention, the copyright exists upon creation in all signatory countries, and the notice is there to inform users of the underlying claim. I understand that things were a bit different within the United States before 1989, but that's not pertinent here.

@lphilips54
Copy link

I'm glad to hear that you agree that I am within my rights to assert control over my algorithm. I'm not sure exactly what legal standing the organizations or webpages you cite have over the definition or interpretations of the BSD agreement, how it is related to the concept of FOSS, or for what matter that even is in so far as it can be reduced to a clear and legally enforceable definition. For my purposes what I want to make clear is that I have never declared the Metaphone 3 algorithm to be Public Domain. I have attempted to the best of my ability to determine if somehow I missed a clear declaration that BSD implies that any and all algorithms disclosed in a code embodiment released under it are automatically Public Domain, and it seems that this is not the case. There has been some debate about the issue, but as far as I was able to discover the proposition had never been tested in court. This means any interpretation is, basically, personal.

The same goes for your interpretation of what is meant by "modify". I disagree that it is possible to stretch the definition to the point where the algorithm can be treated as Public Domain. Even federal or state statute law can be subject to conflicting interpretations that may need to be decided in court, so I reserve the right to disagree with your interpretation of what, after all, is merely an agreement.

As for Copyright, I will leave it to International lawyers to interpret its force overseas, but here in the United States it remains a legally enforceable assertion of the right of control over a particular embodiment of a creative work. As for how much it is possible to change a copyrighted embodiment before the assertion of control no longer has any force of law, I'm sure you have some familiarity with this issue.

I feel I have been generous in disclosing a particular embodiment of my work product, which took me several thousand hours to research and create, for free use under a limited set of circumstances. I rely on the honesty and goodwill of the software community to honor my requests that this free use be limited in the way that I understood the agreement to be limited. Other members of the software community have the right to interpret it as they see fit, but my position and the position of my corporation is the Metaphone 3 Algorithm is not and has never been, explicitly or by implication, declared to be Public Domain, and we do not agree that it is permissible to treat it as if it has been.

I'm sure none of us want to fight about this. I am appealing to the software community to recognize that I have already disclosed quite a bit of my work on the Metaphone family of algorithms openly, and sometimes for free since I explicitly released the first two as Public Domain, and I ask them to please honor our position that we retain control of the implementation and distribution of the Metaphone 3 algorithm.

Thank you,

Lawrence Philips

Sent from my iPhone

On Dec 20, 2014, at 4:35 PM, Paul Battley notifications@github.com wrote:

@lphilips54 You are, of course, entirely within your rights to apply restrictions to your code, but you've apparently chosen to release it under a licence that says the opposite of what you later assert. It's highly inconsistent:

The BSD licence is a FOSS licence. By choosing it, you are literally saying that the software is FOSS.
The licence does not specify any restrictions to what form modifications may take, except that the copyright notice, conditions, and disclaimer must be preserved. Changing the Java to Ruby whilst preserving the prescribed sections would fulfil these conditions.
If the copyright notice does not enforce copyright according to american law, what is it there for?

A most fascinating question indeed, especially for those of us in the two hundred odd countries where American law does not apply. Under the Berne Convention, the copyright exists upon creation in all signatory countries, and the notice is there to inform users of the underlying claim. I understand that things were a bit different within the United States before 1989, but that's not pertinent here.


Reply to this email directly or view it on GitHub.

@iand
Copy link

iand commented Dec 21, 2014

It's not possible to copyright an algorithm under US law (see, for example, the first paragraph of http://copyright.gov/circs/circ61.pdf). You may only copyright the code that expresses the algorithm. Currently the only intellectual property protection you can secure for an algorithm is to patent it. Without that protection anyone is free to reproduce the algorithm in any other language they desire.

@jacalata
Copy link

slapresta: this repository was not created by lphilips54. Not sure what you're trying to say?

@ghost
Copy link

ghost commented Dec 21, 2014

@jacalata You're completely right, sorry.

@oliwarner
Copy link

@lphilips54 Your theoretical algorithm is not copyrightable. Copyright is for content. Your implementation is copyrighted and you've decided to open source that. Patents are for ideas.

Nobody is assuming you're making this code public domain (the licence is clear that it's just not) but the ideas behind it are now in the public domain. A reimplementation (say, in Ruby) wouldn't be in breach of copyright (or this license) because it would be original code.

And this isn't something you can retract or stipulate after the fact. The code that is currently released will be freely redistributable under its license until it enters public domain proper.

If you want to protect your algorithm, you needed a patent. If you don't already have one of those, or an application in process... Well that ship's sailed now... But you've learnt something for the future.

If you do have patents over the code, BSD doesn't give us rights over them and you can threaten to squash any projects using your algorithm, as you so wish.

@ghost
Copy link

ghost commented Dec 21, 2014

@mooli One thing is to disagree with his interpretation of the BSD license, which I also do. Another thing is to dismiss all effort he put into his code as some "naïve implementation". But you can prove a stranger on the internet wrong, within the next days I am expecting to see your "few hundred lines of tight Scala" written from scratch.

@benjamingr
Copy link

Just wanted to say that this is discussed in https://news.ycombinator.com/item?id=8779517 which is quite popular so you might want to use GitHub's lock feature until it passes.

@bjornsing
Copy link

@mooli If you find those 7,460 lines of Java code impenetrable you can always base your Scala implementation on US Patent Application US20090043584: https://www.google.com/patents/US20090043584.

Disclaimer: I am not a lawyer and this is not legal advice. But I am an engineer and it's quite obvious to me that @lphilips54 has put in some serious effort here. I'm also not aware of any laws that mandate rudeness towards towards him while you exploit his efforts to your benefit and his detriment. In fact in my book you're in rather clear violation of the first unwritten statute of the open source community: "Give credit where credit is due."

@threedaymonk
Copy link
Owner

I'm going to close and lock this issue.

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.

Repository owner locked and limited conversation to collaborators Dec 21, 2014
mtparet added a commit to mtparet/OpenRefine that referenced this issue Dec 21, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants