Research Project
From Natural Language Software Specifications to Execution: A Cognitive Grammar and Model Driven Engineering Approach
Abstract
The ability to automate part of the software development process from natural language business requirements would provide a huge benefit in the development of software systems, such as reduced time-to-market, improved system quality, and more accurate implementation of requirements. Although the software engineering community has developed many approaches that attempt to achieve these goals, no effective system yet exists for the automatic transformation from natural language business requirements through to execution.
The proposed research aims to fill that void by integrating several methods into a single, experimental system. The theories of Cognitive Grammar and Conceptual Spaces will be combined with a Model Driven Engineering (MDE) framework in order to fulfil this aim. Cognitive Grammar and Conceptual Spaces will provide the natural language processing/understanding facilities for the automatic transformation of natural language specifications into formal business models, while MDE techniques will automate the transformation from business models to UML models and eventually an executable system.
A copy of my research proposal can be found at: http://unisa.aquabrowser.com/?itemid=|unisa-bibs|1555610
Principal Supervisor: Professor Markus Stumptner
Associate Supervisor: Dr Wolfgang Mayer
Recent Posts
Really, the worst thesis writing advice ever (and what you should try instead)
Really, the worst thesis writing advice ever (and what you should try instead)I recently read the worst possible advice about writing a thesis. It's ironic because it was in a blog post about the The worst thesis writing advice ever (and what to do instead). The author means well, but 'the road to hell is often paved with good intentions'.
In the post, James Hayton gives the advice that you must ignore it if:
-
... anyone tells you to "just get words down on the page, because you can always sort it out later"... Instead do it this way...
I believe this is horrible advice because there is no magic bullet for writing. Everyone is different and when someone says to try "getting the words on the page" it is often in response to someone saying they have difficulty writing; so it may actually be good advice for that person.
It comes back to finding your writing strategy, which I mentioned in my last post and has been written about elsewhere. However, it is just as important to discover how you write and edit best as it is to find the where and when.
I think a better approach would have been to say, 'if you are having difficulty following the "just get words on the page" advice, then try doing it this way instead.' That way it is left open for you to read the advice, try it out, and incorporate some of the ideas into the way you work if the process does not work for you in its entirety.
So here is how I write and edit. My method sits somewhere between "getting ideas on the page" and "editing as you go". This is what works for me, but feel free to take the ideas and try them for yourself in your search for your ideal writing strategy.
Edit as you write (but not after each sentence)
Stopping to edit after every sentence does not work for me. It breaks my flow and results in Just a Bunch of Independent Sentences (JBOIS). Even worse, it can cause me to forget what the larger idea I am trying to convey is and I end up stuck.
I agree with James Hayton though, writing too much before editing (days or weeks) later would likely result in Just a Bunch of Random Thoughts (JBORT).
To avoid JBOIS and JBORT, I like to strike a balance and edit at the end of a section, by which I mean:
-
A group of sentences intended to convey one or more related ideas.
By this definition the shortest point to stop and edit would be after a paragraph; however, I typically find that my writing naturally reaches a point where the ideas (for a particular part) are on the page, which is a good place to stop and edit.
In this way I can write without losing my train of thought yet still edit while the ideas are fresh in my mind.
Edit (again) later
Although I edit as I go, I still believe in leaving my writing for a while and coming back to it later. During the initial "as-I-go" edit I know what it is supposed to say so I do not always read what I have actually written, which leaves a number of errors.
Typically there will be silly spelling---although spell-check gets most of them---and grammatical errors that will stand out like a sore thumb; however, coming back later also allows me to see whether what I have written makes sense the way I thought it did at the time. If I have to stop and think about what a sentence or paragraph actually means, then I know it needs further revision---since it has already been partly revised it will not be completely unclear though.
A good example can be taken from James Hayton's post (emphasis has been added by me):
-
So when you right a sentence you didn’t expect or plan, you need to look at how it fits in with everything around it and ask yourself...
If James had come back and edited his post a day after he had written it, chances are he would have picked up on using right instead of write. Alternatively, if he actually did mean right (as in correct) then coming back to it later probably would have helped him realise it was an ambiguous looking sentence.
How to edit
When editing I usually go over the section I just completed a couple of times before moving on. In that respect my editing is similar to James Hayton's advice to "try to get to the third version of the sentence quickly" except that I deal with sections rather than sentences.
Furthermore, I look out for very long sentences and the repetition of words in a sentence just like James does. However, I think it is important to look for repetition across sentences and paragraphs as well.
Again, James provides us with an example in his post where he says:
-
So there are always alternatives, just by moving a couple of things around.
So if you aren’t happy with what you’ve written, just try structuring the sentence a slightly different way.
Constantly beginning sentences (or paragraphs) with the same words always sounds funny to me and is something I avoid.
James does give good advice about not trying to find the perfect sentence though. As a perfectionist that is something I always have to keep in mind.
Flow and structure
I keep the flow and structure when editing by trying to look at paragraphs and sections as a whole. In doing that I perform the same operations as James Hayton---modify, move, cut---except I perform them on sentences, paragraphs, and sections.
In addition, I find editing later to be important for keeping a good flow. When coming back to a piece of writing after a short while, I often realise the flow or structure of ideas isn't quite right and rearrange them. I might even remove a paragraph or section altogether if it doesn't seem to add anything to my argument. Although, it might have seemed like an incredibly important detail as I was writing, upon reflection (and trying to keep to the page count of a publication :-P) I may find it not to be necessary after all.
This is possibly the most important thing to clarifying my writing; removing unnecessary sentences, paragraphs, and sections. James Hayton might argue that if I edited (sentences) as I went I wouldn't have to remove paragraphs; however, I believe that the reverse would be true. I would probably end up writing it and then never removing it!
Summary
I think the worst advice is that which tells you to do something not suitable for you. Try editing as you go, but keep in mind it does not have to be sentence by sentence. Also, try just getting the ideas on the page, but be mindful that too long without editing and you may run into trouble later. Find what works for you and use it. I think that's the best advice I can give.
For those who already know, what style of writing do you prefer? Getting ideas on the page, editing as you go, or somewhere in between?
- Edit 17/06/2012: After writing this I discovered James Hayton had written a follow up post (http://3monththesis.com/the-worst-thesis-writing-advice-ever-part-2/) in order to clarify some of his ideas. (I won't mention the fact that needing to clarify his ideas in another post probably means he didn't do a good enough job of editing his original... :-P)
- While I could probably counter-argue a number of points, James gives some good advice for the most part. However, there are two points I'd like to make.
- The first is that whenever I have heard the advice to "get the ideas on the page" its sole purpose has not been to give you a structure to work with. While that may be part of it, the main idea has always been that it frees your mind from trying to achieve perfection. As a result, both the "get the words on the page" and "edit as you go" advice are actually two methods of achieving the same thing.
- With that in mind, it brings me back to my core point. You need to experiment and find what works for you. Only then will you be able to produce your best writing, complete your thesis, live life and be happy

- Disclaimer: The correlation between good writing, completing your thesis and being happy has not been scientifically proven (or may be it has), but I believe there is enough anecdotal evidence to support it.
My First Blog Post
My First Blog PostWelcome to my first blog post for BLAH BLAH BLAH (Blog Like a Hero). Not a very imaginative name I know, but being a software engineer/computer scientist (and maybe just a little lazy) I was looking for something that could be turned into an acronym and was appropriately geeky. Initially I wanted to find a recursive acronym---common for open source projects such as "GNU's Not Unix"---or a YAAA (Yet Another Acronym Acronym) since everyone under a sun has a blog these days. Unfortunately, my attempt at the former---INJRB's Not Just a Reseach Blog---sounds a bit like I am hurt and for the latter I would have had to use something like YA∞RB (Yet Another∞ Research Blog) since there are so many around. A lot of have very clever and creative names, so if anyone has a suggestion for mine it would be appreciated---but I do tend to ramble on making the current title quite fitting.
If you haven't looked at my profile page yet, then let me tell you a little about myself. I am a research professional in training (read PhD Candidate) trying to apply Natural Language Processing to Software Engineering in order to allow Business Analysts to specify the requirements of a system in plain English and have them automatically transformed into formal system models---which is a fancy way of saying that I am trying to replace Software Engineering positions with computers so that I can't get a job after I complete my PhD!
This blog is intended to be a semi-professional place where I can record the experience of doing a PhD and performing research. However, since I have a keen interest in programming---yes, I like programming in my spare time, please don't judge me---I can see it becoming quite a prominent aspect of BLAH BLAH BLAH. Whatever it turns into, I hope this blog will be interesting, funny, or even useful to someone out there in the Universe---even if that someone is just me.
I have been meaning to write this first post for quite a while. Originally it was going to be about some issues with the XML framework in the VisualWorks Smalltalk environment---I even have a draft---but it sounded a bit too much like a whinge for my liking so it has been hanging around somewhere. (If anyone is interested I'll consider posting it at a later date.)
What inspired me to finally get around to writing this first post was an alignment of the stars. That is to say, on Tuesday I attended a University of South Australia workshop on publishing during your PhD and on Wednesday night's live #phdchat the same topic came up. I wanted to contribute what I learnt from the workshop but was unable to do so in 140 characters or less, which motivated me to give my blog life.
The overall theme of the workshop was that publishing during your PhD is a good thing as it helps you stand out from those who don't bother. The following are the important points I picked out for myself, but hopefully they are useful to those of you who are having difficulty publishing, or finding reasons to publish, during your PhD.
Publish as you go
You're doing the work and getting the results anyway so you might as well publish it! This was the main point for me. My trouble is finding the time to write up the results into a paper, but I think that is just a matter of getting better organised.
Discover your writing strategy
Basically they were referring to finding what is the best time, place, etc. for you to do your writing. The @thesiswhisper recently brought my attention to a post on the patter blog discussing the same thing, so the workshop just reinforced it.
Try, it doesn't hurt
I thought this was an excellent piece of advice. At worst you will be provided with useful feedback from the reviewers that should help towards your final thesis. Why wouldn't you want that?
There's a paper in that!!
The advice here was to look for something to publish, even if you wouldn't consider it a standard paper or it's not part of your main work. For example, the literature review section of your thesis can be a legitimate review paper. Alternatively, if you come across something as an aside to your main work you could try publishing what you found, especially if it is something that no one has picked up on before.
Two for the price of one
If you are trying to publish in a conference, try to hold something back so that you can turn it into a full journal article. It seems a bit like going for quantity rather than quality; however, a journal paper may take longer to get published than a conference paper, so submitting a briefer version to a conference to get your work out there and then expand on it later might be a sensible approach. It would also mean you don't have to try to cram everything into what is normally a shorter paper.
Target different audiences
This sounds a little like quantity over quality as well, but I think this is crucial for cross-discipline work. If you only write a paper with a particular focus for one conference/journal/audience you may be restricting the number of people you reach with your work. By publishing (effectively) the same work with different focuses and in different places a larger audience could benefit from your work than if you only published it in one place---even if it is in a cross-discipline journal.
Put your publications in an Appendix to your Thesis
This isn't so much about publishing so much as what you can do with it after it has been published. This was a suggestion made by a senior researcher, his point being that part of what the reviewers look for in your thesis is that your work is worthwhile and publishable. By showing that some of the content of your thesis has already been published it demonstrates that aspect of your work.
Well that brings me to the end of my first post. If you have any comments on publishing during your PhD (or a better name for my blog), please feel free to share. I think I have the comments turned on on this thing...
Recent Publications
Where are my publications?
Where are my publications?That's a very good question. I don't have any yet, but I am currently planning to submit a paper to ECAI (European Conference on Artificial Intelligence) early 2012. I am hoping it will get accepted so that I can start to fill out this list
.
Update 27 March 2012: I submitted a paper about a month ago :-) Just need to wait another month to find out whether or not it gets accepted.