Sunday, May 30, 2021

Doublethink

So I've been reading Cassidy's manifesto. (Health warning: the tweet at that link, links out to Ravelry. If you want to actually read the manifesto itself, there's a non-Ravelry version.)

Leaving aside the NFT aspect of it, what Cassidy is essentially saying is that she wants decentralization of yarn community data. She writes that there should be one, big, "independent, not-for-profit, decentralized, community owned database of patterns, yarns, and their connections to projects." She also writes that "Rav should be just one of many interfaces" to this database.

Sounds amazing, yes? Yes. However...

In the same breath, Cassidy is also clearly saying that this community-owned database should be...Ravelry's database. 

This is a serious problem, because this stated philosophy is completely at odds with so many other Ravelry policies, public statements, and actions. 

Here are the inherent contradictions for why what Cassidy is saying doesn't jive with reality.

1. You can't be a business and not-for-profit at the same time.

Cassidy's manifesto says:

"The yarn community’s digital history and future infrastructure should not be controlled by a for-profit entity." 

Yet, Ravelry is a for-profit entity. It's a business (heads-up: Cassidy's deadname hasn't been changed at that link). Specifically, it's a Limited Liability Company (LLC).

If Cassidy wants The Database to be controlled by a not-for-profit entity, then by definition, it should not be controlled by Ravelry.

2. Other businesses won't use your API if you don't allow them to use your API.

Some other quotes from Cassidy's manifesto:

"We are not competitive"

"I would love assist [sic] in fostering an open and supportive ecosystem of businesses any way I can."

But have you ever read what the Ravelry API terms of use actually say? (They're at https://www.ravelry.com/wiki/pages/Legal%20:%20Application%20Developer%20and%20API%20License%20Agreement but of course that's a Ravelry URL, so copy-and-paste it with caution.) Here are some direct quotes:

"The API may only be used for commercial applications whose primary audience is Ravelry Users unless Ravelry expressly allows otherwise."

"You may not use the API to create applications that in any way compete with or diminish the need for any of Ravelry’s own commercial applications."

"You may not use the API in any manner which may damage Ravelry’s reputation or commercial operations."

"You may only use data and/or Content collected from Ravelry in a manner that is consistent with Ravelry’s wishes."

These terms of use clearly forbid potential Ravelry competitors from using the API. Meaning that Cassidy's manifesto is demonstrably untrue when contrasted with actual Ravelry policy: Ravelry is competitive, and doesn't want an open and friendly business ecosystem.

3. If a database's terms of use are dictated by a single end user, it's not decentralized and community-owned.


Continuing to examine Ravelry's API user agreement, we must ask who is to be the arbiter of all of these terms of use? Who, for example, gets to decide what constitutes an application...
  • ...whose primary audience is Ravelry users?
  • ...which competes with or diminishes the need for any of Ravelry's own commercial applications?
  • ...which may damage Ravelry's reputation or commercial operations? 
  • ...which uses data collected in a manner consistent with Ravelry's wishes? 

Well, the answer is right there in the API user agreement:

"Ravelry, in its reasonable discretion, shall be the sole arbiter of your compliance with this requirement. "

It is impossible to have a database which is decentralized and community-owned, if Ravelry is the sole arbiter and dictator of the terms of use.

4. If a database is unreliable, other businesses won't use it.

Cassidy's manifesto clearly expects that The Database she's envisioning would be relied upon by other businesses. By definition, therefore, such a database must be reliable. And yet, again from the Ravelry API terms of use:

"Ravelry may from time to time revise or update the API and/or any documentation included with the API, at its option"

"Notwithstanding the foregoing, Ravelry is under no obligation to maintain or update the API. Ravelry may discontinue the API at its sole discretion."

"Nothing contained herein shall give you any ownership rights to any data or Content found on Ravelry."

"Your use of the API is at your sole risk. The API is provided on an “As Is” and “As Available” basis. Ravelry makes no warranty that the API will meet your requirements or expectations, or will be available uninterrupted, timely, secure or error-free, Without limiting the foregoing, Ravelry expressly disclaims all warranties of any kind, whether express or implied including, but not limited to the implied warranties of merchantability, fitness for a particular purpose, title and non-infringement."

No business worth its salt would be willing to have crucial data come from an entity so totally unwilling to guarantee that data; and probably a competitor entity, at that? No way.

5. Ravelry has proven itself unworthy of trust to be the keeper of the yarn community's database.

Even setting aside Ravelry's unwillingness to guarantee the integrity - or even existence - of their API, they are not a reliable entity. Here are a few examples of how Ravelry has demonstrated that they are not actually capable of the "reasonable discretion" that they tout in the API's user agreement:

What does this mean?

I admit, I'm scratching my head. 

  • Does Cassidy mean that she will be relinquishing control of the Ravelry API to a not-for profit third party?
    • Will the API be hosted somewhere else?
    • Will Ravelry be reprogrammed to pull the API data from that somewhere else?
  • Or, does Cassidy mean that the API terms of use will be substantially changed?
    • Will Ravelry begin to guarantee the integrity and existence of the API?
    • Will Ravelry remove all the terms which effectively prevent other business from using the API?
    • Will Ravelry hand over discretion and arbitration of appropriate use of the API to the community?

Because if Cassidy wants her manifesto to be made real...the above is what's going to have to happen. It is a literal impossibility to achieve an independent, community-owned, any-business-can-use-it database managed by a not-for-profit entity, if that database is the same one that's used and controlled by Ravelry today.

Blog post title reference

No comments: