As a peculiar recreation I've spent the last few evenings trying to understand Belcanto syntax. There are a lot of example scripts available, but much less explaining the structure of the language. I've written up my findings on the wiki at Belcanto syntax.
Before you click on that link you should know there will be errors in there. I've put the document together from reading around the wiki, looking at the source code on github (including... Prolog?!) and watching the videos from DevCon 2012. Nevertheless, while the document may be consistent with the truth it almost certainly is not actually the truth. There will be subtleties I've missed and things I've just got plain wrong.
Therefore I'd welcome corrections from anyone more knowledgeable.
I've tried to introduce as few concepts as possible in order to keep it as straightforward as I could (although I'm sure it could be simplified further). So I've omitted mention of the stack, context, command line tools, and more. Those are probably topics for another article or ten. As it stands, the document is sufficient to answer the questions I had in my mind when I embarked on this.
One other thing. I've not linked the wiki page from anywhere because I don't seem to be able to edit the page it should come off, which is the main Belcanto page. If someone could do that when it's considered in a fit state to be seen then it would be more findable.