MSL: A New Programming Language for Text Editing and Fact Verification [pdf]
mimix.io
mimix.io
The history of MSL can be traced from the goals of computer science pioneers going back to the 1940's. These additional documents further explain the development process and goals of the MSL language:
Mimix Whitepaper.[0] Explains the historical precedents for moving beyond word processing.
Getting to Xanadu.[1] Explains why Nelson's Xanadu did not achieve commercial success.
Everything Old Isn't New Again (Yet).[2] Shows previous attempts at moving beyond word processing.
Recipes for Research.[3] Explains how a new language could record text editing and fact changes over time.
Nebula: Simple and Flexible Apps with (msl) Data. [4] Shows how (msl) applications can be deployed.
I welcome your questions, ideas, and suggestions.
-- D
[0] https://mimix.io/wp-content/uploads/2018/08/On-Mimix-v1.3.pd...
Second, I would say the idea is more realistic now than ever.
Now we have:
- Git so you can cheaply & collaboratively experiment + evolve both data encodings and schemas
- Faster, more reliable type checkers and code/data refactoring tools
- Deep learning agents that are showing promising gains in question/answering challenges so I can see in the very near feature DLAs coauthoring semantic content alongside humans
- As always, more programmers, faster bandwidth, more data, faster computers, etc.
I think technology is getting to the point where the semantic web could happen relatively quickly.
That being said, I still don't know if it will happen because I now am not sure if there is are strong economics forces that would impede such a thing.
My biggest question of course is this: is there something built with this I can play with?
By my count there's been between 493 and 1323 Lisp-ish languages over the past ~60 years (or approximately 10-20 new ones every year), but only a few end up lasting. So my dilemma is I'd prefer to wait and try a product to see if it's really great before evaluating a language.
As somebody familiar with version control and open source this is common practice.
Perhaps the chain of custody of document edits scares people who do not value transparency, but open source demands that level of transparency and criticism.
I'm not necessarily disagreeing with the main point, but all of these things happen with code too. I've had to counsel people before who were scared to commit code until it was perfect, and I've had to try and push into their head that it's not bad to have Git commits that they aren't proud of. Part of breaking them of that habit was teaching them to be OK with allowing people to see their bad code and bad ideas, but another part of it just came down to teaching them how `rebase` works.
On the text side of things, I already publicly commit any edits I make to blog posts, documentation, and any websites I make after publishing -- even if they're embarassing. Occasionally I'll also publish rough drafts if they're not sensitive content. Part of that is getting over the fact that people might see bad writing. If I was worried about people seeing my bad ideas, I wouldn't publish anything in the first place. 10 years from now, I hope that I'll have matured enough that I can look back at my blog and be embarrassed about some of my writing. If I don't have anything to be embarrassed about, I probably haven't grown much as a person.
But of course, for particularly sensitive or complicated topics I generally don't push rough drafts. And that's where rebasing comes in. Version/edit tracking isn't just about public transparency. Even with sensitive topics, I still put rough drafts of blog posts in local branches and commit edits while I'm building them. My workflow with private and public content is exactly the same. It's just that when I eventually push to a public repository, I first squash the branch down into a single commit.
Transparency with edits is relevant to me because edit history is a personal/org-wide organizational tool. Those edits don't need to be pushed to the public, sometimes they don't even need to leave my computer, but sometimes I like to look over my writing and see how a site/post/article has evolved.
History isn't necessarily static. It's very common in version control to rewrite history when needed, and to push different parts of history to different remotes where people have different levels of access.
This is a better problem to have than coworkers who push code that literally doesn't run, e.g. has syntax errors. /rant
"Fact checking" is probably the magic word du jour for getting grants and funding.
Maybe there would be also use in areas like technical writing, rules and regulations or contracts. Having errors in these can actually have big financial consequences.
[1] https://www.theguardian.com/world/2018/dec/19/top-der-spiege...
The idea behind the format is that analysis can be done on it to uncover useful insights about the text.
Look, it's all S-expressions, and Lisp is certainly better than XSLT/XPath, so, sure. But there's a whole ecosystem around XML for this sort of usage that there isn't for Lisp. OTOH, Lisp is a general purpose language that lets you build DSLs as needed, so there's that advantage.
Mimix doesn't force to you reveal everything included in your work ("how the sausage was made"); it's simply there if you want to. This feature is mostly for you, the author, to get to your "ah-ha" moments as Vannevar Bush called them. Right now, we don't have software that does a good job of connecting facts inside documents.
MSL is a language for building tools which we hope can eventually replace the word processor. We are at an early stage with that software which will be open sourced once it's ready.
The hybrid database on which MSL relies could be viewed as the ultimate version control system because it allows rewinding any single variable (a semantic assignment statement) to any value it had in its history.
Mimix certainly draws from the semantic web, but that's not our secret sauce. Today, Google and Stanford already have good libraries for figuring out what is a noun, what is a verb, etc. Where MSL shines is, as @MiniMax42 pointed out, in marking up that text so that it can later be analyzed or transformed in ways that are difficult with word processing documents.
While we hope to see this technology become ubiquitous, the best early use case is high-value documents like medical, scientific, legal and financial papers, as @jpalomaki said.
Thanks again! -- D
Edit: *Mimix
How is MSL related to the concept of version control/revision control? I didn't see any reference to (centralized or decentralized) VCS, but that seems highly relevant to MSL.