-- Download Semantic Processing as PDF --
Computing Progress
The hardware industry (especially microprocessor development) has seen steady growth and progress for a number of years. According to Moore’s Law, every two years or so the number of transistors on the microprocessor chip doubles. We all observe this as computing progress: Computers are getting faster, smaller, with more memory and storage, and the cost keeps decreasing.
This progress has always been perceived as a progress of the entire computing industry, overshadowing the fact that the progress in software development is less impressive. Complex software system development requires about the same number of people and cost as much as it did almost 20 years ago.
Hardware progress is very much based on science and systemic approach and software development is viewed more as an engineering activity and art. This in turn explains the lack of attention to the formal foundation of computation in general and the lack of understanding of the significance of Semantics and formal Semantic Processing in making software development as suitable for progress as hardware development.
Semantics is a fundamental to computing. The fact that it was missing from a grand picture for a long time is pure historical and circumstantial. There are not that many fundamentals we have in the computing:
Fundamental Paradigm = Math + Logic + Semantics

Introduction of semantics with Semantic Technology into the computer systems is rather fixing a problem, then a new trend. It is inevitable.
Major development in Semantic Technology is already triggered and once genie is out of the bottle it is hard to put it back. It is mistake to think that there is a choice to adopt Semantics or not or to delay this adoption.
The higher is the problem, the greater the damage. When semantic is missing at fundamental level – implications are:
- Slow software progress in comparison to hardware
- People are doing many things, which machines can do perfectly instead
- Repetitive tasks in solving the same problems over and over again
- Complexities through misconceptions related to ignoring semantics; many problems could be avoided when computing paradigm is straighten
- The bulk of the things programmer is doing – un-formalized handling of semantics. Semantic Technology is shifting this equation slowly towards machine handling of semantics and leaving for the people role of thinking about problems and engineering the knowledge. This will lead to the change in the professional landscape and training.
Current Paradigm = Math + Logic + Programmer
Deficiencies of modern computing are long around and perceived as “business as usual”. Hence, we do not see what could be improved
What is Semantic?
There are two terms: Semantics and Semantic. In general, Semantics (from the Greek semantikos, or “significant meaning”) is the study of meaning. Semantics is concerned with constraints imposed by non-linguistic phenomena on the selections of linguistic expressions. In Information Technology, Semantic refers to information contained in data.
What is Semantic Processing?
We define Semantic Processing as coding information into or decoding information from communication patterns (texts, informational protocols and streams, etc.) using a formal representation of semantics. Computer operations on data are well understood and can be done in automatic mode. Meaning of data (Information) is interpreted and processed by humans. Once this processing is completed, humans can generate new data and programs for computers to process. So, strictly speaking, computers are doing information processing in cooperation with humans instead of independently. The reason for this is that computers cannot define what the data means to humans and they cannot understand human language. Is it possible to teach computers to do a significant portion of data interpretation performed by humans (Semantic Processing)?
It is possible if we define how to encode semantics in a regular format understandable by computers. Semantic Patterns Language (SemPL) is a pioneering technology that makes Semantic Processing possible.
The need for human-based processing is rooted in the semantic gap that exists between natural language to describe a problem and computer code to solve the problem. To overcome this semantic gap, a human-based pre-processor has been used, which is typically software development team following software development processes and methodologies. This type of solution bypasses the problem rather than solving it.
We cannot delegate such pre-processing entirely to the computer because we really do not quite understand the nature of the work we are doing here. The computer is a formal device and requires formally defined programs to perform tasks. Due to the lack of understanding of how to construct the formal process for the generation of a program, we use a naturally human-based trial and error approach, with all the implications of human-introduced errors end complexities.
The key for building a formal process for the generation of computer programs is to understand Semantic Processing and its significance.
What problems Semantic Processing solves?
Semantic Processing eliminates the semantic gap between the computer as a formal device on one side and the non-formal human language interface on the other side. This is the most common problem in computing and it affects the following computer applications:
- Software Methodologies and Tools
- Artificial Intelligence
- Human-Machine and Machine-Machine Interface
- Telecommunications
- Systems Integration
- Other areas
Software Methodologies and Tools. Programs undergo evolution during their life cycle due to the changing environment and better understanding of new requirements. Why does the end of life cycle happen? Programs under the weight of new requirements often become less and less flexible, eventually turning into legacy programs with a very high maintenance cost. This inflexibility is caused by the inability to correctly define the semantic space of the program for future expansion and a manual and non-formal production process. Semantic requirements definition and a semantic processing-based program development process will allow us to have more flexible software and prevent software life cycle to end due to lack of flexibility.
The following diagram illustrates how Semantic Processing impacts software development processes and methodologies.
The software industry is struggling to minimize unnecessary duplication of efforts, which requires software to solve similar problems from scratch. Design and architectural patterns are viewed as constructs, which can help identifying similarities and lead to the solution faster. Currently identified patterns are fragmentary, empirical, hard to organize into the system and only somewhat useful.
Artificial Intelligence (AI). Artificial Intelligence aims to emulate human intelligence with the help of the computer. One of the most important components of human intelligence is motivation, and a machine cannot have motivation of its own. So, what we are trying to do in AI in reality is to emulate the “mechanical” part of human intelligence, or better stated as creating Complementary Intelligence (CI) to human intelligence.
Human-Machine and Machine-Machine Interface. Humans can communicate among themselves using the same language. Any machine’s process of communication requires communication protocols (Machine-Machine communications), or user interface (Human-Machine communications). Traditional methods require very detailed user interface definitions and very specific communications protocols.
Telecommunications. Requirements of very detailed specifications for telecommunications protocols create protocol overspecialization and overproduction. The telecommunications industry defined thousands of protocols around the 7 layer OSI model. Such a “heavy” protocol environment leads to tremendous complexities of protocol interoperability and an increase in the cost and time for product development.
Systems Integration. The problem of system integration or services interoperability can also be viewed as a problem of overcoming the semantic gap between various approaches and interfaces. Semantic Processing allows the establishment of a common ground for inter-program understanding and on-the-fly integrations.
What is the significance of Semantic Processing?
Historic analogy
The significance of Semantic Processing can be explained with using a historical analogy: The initial introduction of the Arabic Numeric System to the modern world, and the development of the basis of Algebra and Algorithms.
It is well-known that number crunching was the first task tackled by computers and it was a driver for computer inventions. The existence of a well-defined way to count things (Numeric System) and the invention of mathematical apparatus was decisive in making it possible.
The modern numeric system was brought to us by Mr. Abu Abd-Allah ibn Musa al’ Khwarizmi (born in Khwarizm, modern Uzbekistan), a graduate of Baghdad “House of Wisdom”, who invented Algebra and Algorithm. Algorithm is derived from his name al’Khwarizmi.
It is an intriguing fact that the foundation of modern computing was defined in the middle of seemingly nowhere in the history of classic math, six centuries before the discovery of America, as it is well-known that classic math was almost entirely developed in Europe starting from ancient Greeks (Pythagoras, Archimed, Euclid) and ending by numerous European mathematicians of the 20th century.
There is no doubt that al’Khwarizmi was a genius, but such fundamental work cannot come from nowhere. Al’Khwarizmi had a research tool come to his hand while travelling in India. The tool is known in the modern world as Arabic Numeric System, which simply consists of ten digits (0-9) with defined positional significance and regularity of structure.
The very best numeric system known before al’Khwarizmi was the popular but clumsy Roman numeric system. Based on letters of the alphabet, Roman numerals made simple calculations difficult and complex calculations overwhelming. It is impossible to discover any common algorithm of product calculations by experimenting with Roman numbers, since almost any pair of Roman numbers require a “special” calculation method.
Try to write a check in Roman or imagine how computers would look and how many programmers we would need just to do number crunching if we had ended up with Roman numbers for computing. And imagine how many centuries we would be delayed if computing itself is conditional on the development of Algebra and Algorithms based on the Roman numbers.
Let’s try to put a price tag on this Arabic numeric system invention. It is estimated that fixing the Y2K problem in the US only cost above $100B. Hypothetical transformations from computing based on the Roman numeric system to computing based on the Arabic numeric system, driven by tremendous advances in efficiency of computers and programming would create industry activities well above $1T.
Luckily we have moved to the Arabic numeric system long before the computing era, but our data still looks like the Roman numeric system.
The lessons here are very simple:
- How well we represent our data (knowledge) is tremendously important: The better we do it, the more significant and faster progress we can expect. Clumsy data (knowledge) representation delays or stops the progress in computing.
- Regularity and formalisms are key concepts in knowledge representation.
Semantic Computing
After the number crunching problem was successfully solved, computers became more and more used for automatic control and information processing, which is a cooperative task with humans involved in Semantic Processing at the heart of computing.
All modern computer languages have semantics as an attribute, which means that statements of the computer languages express some abstract meaning. The meanings need to be documented separately in a natural language. None of the modern computer languages encode semantics for processing by machines: We currently do not even have something like “Roman Numbers” to express semantics.
- For the purpose of computing, semantic is the regular and formal expression of relational patterns of language in a way suitable for computer processing.
- The challenge is to find regularity and formalism in natural language, which has the characteristics of ambiguity, hidden context, and absence of firm structure and abundance of exceptions.
© SemPL.net, 2003

Follow me on Twitter
good site
it seems to me that once we have defined a universal semantics language the communication can easily be machine to machine and human to machine. I realise this is a huge undertaking but then it does uniform the whole process and should help bring the costs of developing new software down. If the language is universal the possibilities are endless
You got the main thing – communication will be dramatically affected as well as methodology of software development (simplified).
I feel the best thing about this web site is that, this is provide proper information about every topic which i seen in this web site.
dallmeier electronic
There are two terms Semantic and semantics. in Semantic we to understand that Meaning of any thing. Means to say coding of structure.What type of coding structure is used in this term.
granite countertops richmond va
Semantics is one of my favorite software and I’m also like this amazing website where i read many instructive things about Semantics which i never read before.
Thanks!!!!!!
panomera
dallmeier panomera
I think once we have defined a universal language of the semantics of communication can be one machine to another machine and human.I realize this is a huge task,but then made uniform throughout the process and should help lower software development costs down again.If the language is universal, the possibilities are endless.Nice article.
Am totally shoked about all ideas lolz
what we can say about it?