When someone says something to the effect “We will add Semantics and all your problems will be solved” the image that that conjures up for me is salt: “Let us sprinkle some Semantics and it will taste better”. And, yes, somehow, Semantics always seems to be capitalized.
Needless to say, I do not buy this for a couple of reasons:
Luckily, agreement on the meaning of a term is neither possible nor necessary. All that is needed is some form of congruence in the interpretations.
I think that the really important concept is “Semantic Engagement”. Or, in simple terms, “What it means to me at the moment”.
Semantic engagement is the relationship between an agent (software, person, whatever; but active) and some body of information that defines the agent's interpretation of that information.
For example, a Web browser's semantic engagement with information that is sucks in is founded on HTML: it understands HTML in order that it can display it; but does not generally understand what the HTML is for.
This applies to people as well as software. Just in case you thought that you always understand what something is for, just consider the last time that your eyes 'glazed over' some topic and you just let it wash over you. For most people, reading EULAs comes into that category.
Semantic Engagement is a useful concept because it limits what you have to do: in the formal setting of a software system you can often define pretty well what a particular module has to do. As in the case of the browser, it often amounts to a fairly shallow understanding of the information while anything deeper in the information is somehow transmitted further on to a different module/layer.
In the case of Ontologies, I believe that the implication is that you cannot separate semantics from intended purpose. Any ontology is a model; and to paraphrase
Needless to say, I do not buy this for a couple of reasons:
- Everything has some kind of semantics. It just may not be all that useful.
- Any explicit representation of the semantic relationships becomes syntactical. Processing therefore becomes processing of structures; you are still writing regular code to do that processing.
- There is no such thing as two people or agents having the same interpretation of a term. Oops, there goes all that Ontology stuff :) What a chair means to me is overlapping, but different to what it means to you. Even for me, the meaning depends on what I am trying to do (arrange them for dinner, sit on one, ship it and so on.).
Luckily, agreement on the meaning of a term is neither possible nor necessary. All that is needed is some form of congruence in the interpretations.
I think that the really important concept is “Semantic Engagement”. Or, in simple terms, “What it means to me at the moment”.
Semantic engagement is the relationship between an agent (software, person, whatever; but active) and some body of information that defines the agent's interpretation of that information.
For example, a Web browser's semantic engagement with information that is sucks in is founded on HTML: it understands HTML in order that it can display it; but does not generally understand what the HTML is for.
This applies to people as well as software. Just in case you thought that you always understand what something is for, just consider the last time that your eyes 'glazed over' some topic and you just let it wash over you. For most people, reading EULAs comes into that category.
Semantic Engagement is a useful concept because it limits what you have to do: in the formal setting of a software system you can often define pretty well what a particular module has to do. As in the case of the browser, it often amounts to a fairly shallow understanding of the information while anything deeper in the information is somehow transmitted further on to a different module/layer.
In the case of Ontologies, I believe that the implication is that you cannot separate semantics from intended purpose. Any ontology is a model; and to paraphrase
All ontologies are wrong, some are useful.