Hacker News new | past | comments | ask | show | jobs | submit login
Relicensing the GraphQL specification (medium.com/leeb)
221 points by dwwoelfel on Sept 26, 2017 | hide | past | favorite | 46 comments



So, wait, let me get this straight:

React has a revokable patent grant, people freak out about it, FB removes the patent grant, everyone rejoices.

GraphQL doesn't have a patent grant, people freak out about it, FB adds a revokable patent grant, everyone rejoices.

What am I missing?


For one, the problem with React was with the specific limitations and conditions of Facebook's patent grant. These are completely different terms, so I don't see why you'd expect the same response.

Additionally, React is software while GraphQL is a specification. Different types of works require different types of licenses.

The BSD license says I can use the thing being licensed. With a library like React, it's pretty clear what 'use' means. By 'use', they mean they want to allow me to build software with it, so they're granting me all rights necessary to do that. With a specification, though? What does it mean that it grants me the right to use it? There's lots of things you might do with a specification. Did they intend to allow me to implement my own version? If they didn't, I might not have all the rights I need to do so.

DannyBee, an actual lawyer, talked briefly about the importance that this is a specification when this topic first came up: https://news.ycombinator.com/item?id=15291330


This patent grant seems at first glance to be much less aggressive than BSD+patents. It seems to only work if the patent claim being filed is related to GraphQL.


> What am I missing?

That there is a patent actually associated with GraphQL, I believe.


the funny thing is, this means that the patent grant previously shipped with react had basically zero relevance to using react (even after a patent dispute).


Yes, as was pointed out by the many that continued to use React.


Graph query logic (US 9646028 B2)

https://www.google.com/patents/US9646028


I don't understand how this can be a patent. I seem to be infringing on the patent every day whenever I try to navigate through xmls and json files with a friendly API. Can anyone shed some light on how this patent is innovative?


it's a commonly held view that software patents are almost entirely garbage.


you can remove the almost from that sentence.


There is a patent application associated with React.

https://www.google.com/patents/US20170221242


This comment sums the situation up pretty nicely: https://news.ycombinator.com/item?id=15318227


The core problem is ambiguity, and so any step towards reducing it is good.


One is an implementation, the other is a standard which others can implement. Each is licensed differently.


some people were pushing the unfounded idea that one's usage of react would somehow be impacted by the patent grant.

but as you perhaps allude to... people's use of graphql will be impacted by the patent grant. so back to square one?


> some people were pushing the unfounded idea that one's usage of react would somehow be impacted by the patent grant.

The idea wasn't unfounded, it was untested. People had worries because of how it looked like it could be used, and people with legal experience that weighed in seemed to have differing opinions on the possible impact. That was a foundation for concern.


react isn't covered by fb patent. therefore the patent grant could not impact it, by definition (fb even said this, multiple times).

if fb wanted to stop react use, they would simply revoke the copyright grant.

in the end, all that was accomplished is that react users became less safe, not more.


When and where did Facebook say that React did not implement anything covered under any Facebook patents?


what matters are whether patents are registered (public data), not what fb claims.

removing the patent grant only means you are less safe in terms of patents (fb can initiate a suit without penalty), and no more safe in terms of react usage (fb can still revoke your copyright grant at their discretion).


I'm not, by any means, a licensing expert but OWFa (the new spec license) has the following termination clause:

> All rights, grants, and promises made by me to you under this Agreement are terminated if you file, maintain, or voluntarily participate in a lawsuit against me or any person or entity asserting that its Permitted Uses infringe any Granted Claims you would have had the right to enforce had you signed this Agreement, unless that suit was in response to a corresponding suit first brought against you

Wasn't this the problem with the previous BSD + patents license? Not criticizing by any means, I'm genuinely curious.


It's important to note the difference between the specification (now licensed under OWFa) and the implementations (now licensed under MIT).

GraphQL.js and Relay are now basically in the same situation as React. The GraphQL specification however is more general and needs the Patents around it to be specifically granted. The above doesn't do anything but say "if you sue specifically over the rights granted herein then we'll revoke" but that's nothing like as broad as the problematic Patent grant was.


The "...Granted Claims you would have had the right to enforce..." seems to limit the claim to stuff related to GraphQL.


The license is certainly unclear from a layman's perspective.

The text specifically defines "Granted Claims" as "those patent claims that I own or control [...] that are infringed by Permitted Uses." And "I" refers only to the entity granting the patent rights.

So how does "Granted Claims you would have had the right to enforce" make any sense? Does it only apply to co-owners of the patent rights, or something like that?


> The license is certainly unclear from a layman's perspective.

If that's your standard then you'll either be using PD or leaving yourself up to your ears in very very risky code. Most laymen won't understand the full legal implications of something as simple as the BSD licence.


So it's not about any lawsuit, but one (brought up by you etc.) that related to infringement because of being permitted to use (the GraphQL spec).

That seems to mean if there's a lawsuit with the concerned company, but not related to the permitted use of GraphQL spec, no termination then.

Not a lawyer, though.


There are a lot of "good" OSS licenses that have a similar terms - I've noted this elsewhere (re: the CDDL) and haven't gotten an answer.

+1 to someone who knows the legal side and can differentiate for laypersons, since the text looks awfully similar between many of these.


Great news! This follows on the heels of the relicensing of React, Jest, Flow, and Immutable.js. All MIT licensed now. Thank you, Facebook for taking the high road here and putting developers first.


Awesome news, now we can reconsider using GraphQL at GitLab! :) https://gitlab.com/gitlab-org/gitlab-ce/issues/34754#note_41...

Out of curiosity, does anyone know of any other specs licensed under OWFa?


Some parts of the OCI use the patent-only OWFa: https://www.opencontainers.org/release-notices/v1-0-0


For previous context and discussion that led to this decision, this is the GraphQL issue to look at: https://github.com/facebook/graphql/issues/351

The original Medium post from an IP attorney is linked in the original issue comment, but I will link it here too as it was a catalyst: https://medium.com/@dwalsh.sdlr/using-graphql-why-facebook-n...


In my opinion this is a lot more important than relicensing React. There are a few libraries that do React's job even better than React. But GraphQL and Relay are a bigger game changer... a 10x improvement compare to the current use of REST for server/client communication.


These are all huge wins for Open Source activism! Thanks for listening, Facebook.


Are these licensing changes retroactive? If I'm already running Facebook's GraphQL reference implementation, do I have to upgrade to be free of the patent restrictions?


Great question. It applies to the variant of the spec as it exists today when the license was applied. Currently found at http://facebook.github.io/graphql/draft/

GraphQL's reference implementation (GraphQL.js) intends on not just being a great implementation, but also very closely following the spec, so you're in good shape.

Also, GraphQL.js has had a BSD3+PATENTS license until today, which meant you've always had that patent license. Later today I'll be releasing a version of GraphQL.js that is MIT license instead, understanding that the OWFa1.0 applies to all implementations including the reference implementation.


This is a far more important change than the React one, because GraphQL does actually have patents and didn't have a patent grant.

Glad to see it, and learning about the OWFa license :)


Won't be surprised if fibers get patented in some sense, but who knows


I couldn't be more excited for the recent license adjustments of Facebook's open-source projects. Great work!


I was sure GraphQL issue would have a happy resolution, Relay becoming MIT was a nice surprise.


I obviously don't know for certain, but I wouldn't be surprised if it was Matt Mullenweg who framed the issue in a way that resonated well enough with Facebook to make them change their approach to licensing so drastically and swiftly...

> I think Facebook’s clause is actually clearer than many other approaches companies could take, and Facebook has been one of the better open source contributors out there. But we have a lot of problems to tackle, and convincing the world that Facebook’s patent clause is fine isn’t ours to take on. It’s their fight.

https://ma.tt/2017/09/on-react-and-wordpress/

That last part summed it up perfectly for me. Facebook may well have been right (and I personally believe they were), but it's their responsibility to prove they're right to the world, not ours.


> it's their responsibility to prove they're right to the world, not ours

i agree, to some extent. but it's also irresponsible to say they're wrong without sound reasoning.


So react, graphql and flow and some others have been re-licensed. Anyone here has info about changing licenses for reasonml?


Does anyone know if GraphQL can be used for a social network competitor to facebook? Or is that still risky?


The current license doesn’t prevent you from doing that in any way.


This will win hearts and minds for Facebook.


More like a sigh of relief.


excellent news!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: