Semantic web as future reality- Part 3
Semantic web as future reality
In reply to Vidar:
I really don’t agree that math formulas are essential to get rid of ambiguities. In my experience, math formulas create ambiguities in software specifications more than get rid of them, as they are rarely used correctly and even when they are, they are rarely understood correctly by whomever read them.If you want to get rid of ambiguities, you need to use language that is simple enough that people both understand it at write it correctly.
As an example, at a previous job I did have a developer that did write his specs using lots of maths, and his specs were useless. Partly because they were not verbose enough - the formulas were correct, but without a well defined context (and it would be close to impossible to define one using purely maths) they could be interpreted in infinitely many ways, but more importantly most of the other developers did not know how to interpret them correctly.
A good specification is verbose: It describes the desired outcome from several different perspectives that can be trivially checked against eachother, and that can be communicated to both developers and “customers”/end users.
[…]
What I was talking about was the formal specification of a program. Some formal specification languages have been created, some decades ago, to handle some problems with software development, precisely in the field of critical code. This is not an end in itself, it doesn’t answer to all questions and it’s not full proof. But it’s a good way to define the needs of your clients while checking that your system or algorithms don’t fall in undesired states. I’ll not do a course on formal software specifications here but check out this whole project firstly specified en Z then coded in C for a Radiation Therapy Machine:
http://staff.washington.edu/~jon/z/rationale.html
http://staff.washington.edu/~jon/z/machine.html
Read the introduction, it’ll tell you a lot (pros and cons) about formal specifications. It’s sure that it’s not intended for all software projects and in practice you’ll not specify everything but, personally, I think it can have his place in software development(specifically in the future).
The problem with natural languages, in an international environment, is that English is not the native language of everybody. By example, many teams of American developers do outsourcing in India. Not all Indian bachelor programmers are perfect bilingual. Formal specification could (and not would) be a partial solution to future problems.
Why mathematical versions of algorithms are essential? Because you can prove them. The whole present system is working because it’s proved.
So it’s a really interesting discussion with two different points of views. Thank for your interest in it.






