29 comments

[ 4.5 ms ] story [ 69.1 ms ] thread
Source Code is at Github: https://github.com/michael/substance

This first release (0.1.0) is considered a Developer Preview. However given a webkit-based browser you should already be able to use it seriously.

The UI is visually pretty but confused me.

More critically, I'm still not sure what it does. Your "Learn more" blurb is way too long and put me to sleep before I reached the end of the first paragraph.

Write and annotate documents right in the browser.

Okay that part is clear, I guess. But where do the documents come from? Is this a CMS? Wiki? Some sort of community where I can also see other peoples documents? What problem are you solving? Who is your target audience? Why is all this not explained on your frontpage?

Yes, I'm a little confused too. So there's basic markup in a WYSIWYG editor, and...? Maybe a short video defining the problem and presenting this as the solution would help. Right now it feels like a lightweight version of a wiki.
Sure you can compare it to a Wiki/CMS in some way. Importantly Substance is a Semantic Editor, that means you're editing Content, not the visual representation. Documents are expressed as data (as far as possible).
What is the document model behind it?
I think I get what you're working towards and will keep an eye on it. It will definitely attract more users and developers if you can highlight more use cases, and show where it differs from other platforms.

When I see 'semantic' in relation to the web, right now I am often disappointed because it often involves an incomplete vision of 'the web would be more useful if everything was tagged properly.' What I want from a 'semantic' tool - and this is asking a great deal, almost science fiction - is a distributed ontology matcher with a basic ability to answer simple questions. This is a general challenge for the 'semantic web,' not just for you. So I hope you will keep exploring the possibilities.

Let me give you an extreme example. I navigate to a news page and see 'Breaking: important event takes place!' Apparently there are 3000 news stories about this important event. Obviously, I do not want to read all 3000, and that number is only a reflection of how many people consider the story interesting. 2900 of those stories will probably be identical, give or take a few words. On a true 'semantic web' I would get an abstraction of the information common to all the stories, and tools to help me find the very small number of stories with unusual additional information - while filtering out websites run by fanatics and crazies. So in a semantic editor, I would like to write in natural language, and have the computer extract simple ontological fragments for use as complex search input. As I write about a particular subject, the computer looks at what I am writing about, and a constantly evolving selection of relevant reference material is available in a side panel.

So if I begin writing about revolution in Egypt, I should begin to see more and more reference material about Egypt, history, political theory, and related subjects. I don't want to search for data; I want the computer to search out data continually as a background task, based on what I am writing about. You know those dense academic papers, where almost every sentence has a footnote even if it stating something very obvious and well-known (mainly in order for other readers to assess the quality of research)? A true semantic editor will narrow the gap between collection and composition.

I am not expecting to just have this delivered, of course :) Instead, I hope it provides some stimulating ideas.

Great pointers!

What I really want to include in the nearer future is entity extraction. That means that we could send the text-contents of a document to an entity-extraction service (like OpenCalais) in order to get back a list of entities that are mentioned in the text (that's what documentcloud.org is doing). By doing this, not only our documents could be tagged automatically, but also scenarios like the ones you described are made possible (given that entity-extraction can be performed fast enough). What do you think?

I may get back to you when I start working on it. It's on the queue for sure. :)

The prelude certainly needs to be improved, and so does the whole system. It's an open source effort, and largely driven by a one man force. This is just a first 'official' snap-shot dedicated to the developer community to get the discussion started.

To your question: It is a "Document authoring system". So documents are entered by the users themselves. It will also be some sort of community. As of now you can search for other people's documents. A technical speciality is that documents are exposed as data rather than just text. http://substance.io/documents/substance/substance. Here's more about the internals http://substance.io/#substance/substance-internals

Thanks for your points!

-- Michael

I try to register (I would really like this to make it possible for me to work on my novel using my Android Tablet), but I keep getting an "Unknown Error".
How to save as pdf?
This is a planned feature. We'll use LaTeX to render proper PDF's. We'll also add images along with other content-node types.
I think that's the most important feature, and would give your site an advantage to using a wiki. Providing/exposing 'semantic structure' in documents and separating style from structure is cool, but I don't think that's a problem that people are clamoring to have solved, anymore than it's already solved by various markup technologies.

A wiki that can exports its content as professional grade PDF files suitable for publishing would be awesome, but that's a major feature, and my humble advice would be to see if that's doable WELL before you do anything else.

I would actually be interested to know if anything already does that...

The problem I see with markup, is that for-non technical people it's hard to understand and use. I think they would rather prefer a WYSIWYG-style. Wiki-style-markup isn't for everyone. So that's why I chose WYSIWYG editing, but with restricting it to just semantical annotations.

Regarding PDF. I totally see your point. And it has high priority. I got offered some help by Kevin Lynagh (http://www.dirigibleflightcraft.com/index.html) already. He'd help with implementing LaTeX/PDF export of Substance Documents. You're invited to join too :)

Just a quick note: it took me forever to find the "Create an Account" call to action on the front page.
Similarly, the new document icon in the top right corner wasn't obvious to me either.
Ahh you're not the first one — it's probably too big ;-). Will change that. The startpage needs some reworking.
The way the site uses Embedded JS means it is completely un-crawlable for search engines. I imagine in the future a nice source of incoming traffic could be from long-tail referrals on whatever content is published, you might want to think about how googlebot crawls the site. http://www.google.com/search?q=site:substance.io&hl=en&#...
An interesting dev release. I can see a lot of potential for this product.

Specifically I would love lawyers to start using products like this for collaborative editing of contracts (which are very tightly structured anyway). Of course there would need to be some revision history with diffs, but I'm sure that will be added to this project in time.

I don't really like the global JS functions in the server code though.

Security concern: clicking "log in" (without a username or password) logged me in as a user called "Zyfon".
That'd be terrible. Can't reproduce it though. Which browser were you using?
Safari 5. It's not happening any more, apparently.
UX Epic fail. Stupid javascript urls. Seriously don't break basic web concepts.
this is awesome. thank you for spending time on the wysiwyg problem and double thank you for keeping it open source.

do you have a couch replication endpoint exposed through your api?

Not yet. You mean exposing an endpoint that allows you to replicate documents a certain user owns? Like the idea!

There's already some synchronization/replication taking place but on a higher level. That's trough Data.Graph#sync (https://github.com/michael/data) which pushes data-nodes that have been modified to the server.

Substance is released under the GPLv3. That means it's free for non-commercial use.

Someone please explain this to me.

Cool.. very cool.. IMHO the the freedom from vendor and format lock-in is your greatest advantage