I do completely agree. If I may just recap a little bit. First, we don’t call this scenario open API. We stop calling this open API. We say, this is a government, for example this person may very well be another government. Let’s call this another ministry.
In this scenario, which is, they have a well‑defined whatever, API, to connect to one government database to another government service, which then talks to people. This makes it a round‑trip whatever.
Then, when we say this, what we’re also saying is that this, because it’s well‑structured ‑‑ it’s got a JSON schema, whatever ‑‑ we encouraged them to run a API proxy here. So that it can do a lot of extraction and transformation...
By the second year of this integration running, we expect that the revision here will be relatively solidified. Then, once it does that, we basically take a snapshot saying, "OK, now we know these views are free of privacy issues, FOIA‑compatible."
Then the checkbox, what I mentioned before, can be checked. Then, we take this, and then make an open data repository out of the now‑frozen part of this. Then this switches to this scenario, where it’s not depenent on the original data store anymore
Of course.
What we’re saying is that because this is frozen, we can take the DDL of here, and then we say, this, the DDL, it’s now the canonical metadata.
Now, it goes here. Because the DDL is an exact mirror of this, the proxy can just reconfigure their upstream sources here.
That requires zero line of source code changes.
In Taiwan, we have two words. We have 公開, which is the freedom of information access, which is read only, and we say 開放, which means it permits derived work.
We have two words for this. So when we say 開放API, it implies an open format with an open license. For a "clean" format we would probably say 結構化. Maybe that’s...
By the way, we don’t have the "free software" ambiguity in Chinese. (自由 is "freedom"; 免費 is "gratis".)
Yeah, open also works for software here. (開源軟體 for "open-source software")
...the DDLs.
So you’re proposing to establish a standard operation procedure for ALTER TABLEs.
It’s easier than XML.
Well, you already know Sandstorm.
Right. It’s Kenton’s work. We actually commissioned Kenton to build what they call a powerbox, an intent‑based, open‑format‑based exchange between the Sandstorm‑hosted apps, and also with the external world.
What we paid him to develop, which was just finished now, is a way for a grain ‑‑ which is the technical term for a microcontainer, a single‑document container running in Sandstorm ‑‑ to serve an HTTP proxy so that if it wants OpenID login or a process that feeds its spreadsheet updates to external services, now it can do that as of this week.
What we are saying ‑‑ and we are getting far more technical than usual, but I think it’s important ‑‑ is that the spreadsheet that we use internally, and inside our institutional platform, is EnterCalc. I happen to be the maintainer, so I can get whatever features in.
What we are doing here is essentially saying that any metadata maintenance, which is often collaborative, you can not only share access to internal stakeholders, but because it is capacity‑based architecture, you can also do a bulk download.
If you do a bulk download, it basically packages everything written, because that application services are mounted read‑only. By definition, any file that’s writable would be specific to this instance. So it’s data portability. If you click this arrow and you migrate somewhere else, then you automagically get data portability.
But all this is manual. As we see in Blue Buttons and other any manual steps, many people would overlook its existence. Not many people would know how to use it. Even if they can bulk download everything.
Right. This is the webkey. You can grant others read‑only access to this metadata table, or write‑only access if you have set this up. What I’m saying is, back to this original drawing, if you maintain DDL in Data Package or in other description format in spreadsheets...
Exactly. That would be perfect. You could use collaborative spreadsheets.
403 ?
Wow, this is bad data for sure.
Yes. The NDC already is working on automatic checks for simple things like this...
That’s OK. I have until either 11:00 or 12:00. I don’t know what’s your next...?
We have another 30 minutes.
Sure. All my work is under Creative Commons Zero.
We pay for their time. It’s a solved problem.
Yup.
We now mostly pay to rent, but yes.
By definition, almost. Yes. [laughs]
If they don’t have the budget for Oracle, of course they would use PostgreSQL... [laughs]
Yeah. At PDIS, we do have full‑time staff to work on EtherCalc integration to Sandstorm, or fixing bugs.
That’s right.
Well, it’s usually outside government’s scope. They don’t do that for Oracle, either.
It goes to basic maintenance.
While I introduced Sandstorm internally, I did get visits for Facebook for Workplace. I’ve got other visitors too ‑‑ it’s all on my public website ‑‑ doing exactly the same pitch. I’m very well aware of this.
And then you can renew the commons, so it’s sustainable.
Yeah, I’ve made that argument many times. [laughs]
Yes, sure. I agree 100 percent. I’m a long‑time donor to the Software Freedom Conservancy. I was at your position [laughs] arguing for the same things.
As I see it, this is an incentive non‑alignment here, especially for the public sector. People made similar pitches to Apple, and I used to work with Apple ‑‑ until just four months ago ‑‑ for six years as an independent contractor.
For Apple to open‑source Swift, for Apple to donate to OpenSSL or WebKit or whatever, there’s a clear incentive alignment, because then Apple don’t have to maintain this whole thing anymore. Then subsidizing one or two core members to maintain interoperability...
...is clearly in Apple’s interest. Otherwise, they’d have to develop the same stack themselves, which is not a very interesting kind of work.
But for government, the incentive is not the same. For Google and Apple, supporting commons like this is a net cost‑saver for them, and actually a huge one.
Well, governments are monopolists of violence...