My father is a student of semantics, and he was the one to first get me interested in it. His own interest came when he went to university, around the time that such seminal figures as S.I. Hayakawa, Noam Chomsky and Marshal McLuhan were challenging the boundaries of what we mean by meaning. Hayakawa, linguist and protege of the great Korzybski, examined the way that language is both shaped by and shapes our thoughts, our interactions, even the underpinnings of what we call civilization. Chomsky is perhaps known today more as an impassioned speaker against the rise of corporatism, but at the time he was doing ground-breaking work exploring the origins of language and the process of learning how to speak, write and thing. McLuhan, on the other hand, challenged our assumptions about the various media of communication, and is perhaps most known for the statement, “The Medium is the message”.
Curiously, none of these three were “engineers” in the sense that we think of the term today, nor were they programmers. Their questions revolved around the issues of how humans deal with communication, with turning musical grunts, trills, coughs and clicks into abstract concepts and ideas that could be both contained within ones own head and passed along to others.
Fifty years have passed since the heyday of this generation of semanticists … McLuhan and Hayakawa both passed away years ago, Chomsky celebrates his eightieth birthday next year (he was born December 7, 1928). The world has changed in ways both subtle and profound since then, but one of the most significant is the fact that semantics has gone from being a branch of philosophy to being a branch of computing. Oh, surely not, you may protest - there are many things far more important than this - computers in general, the evolution of aircraft, the space programs, biotechnology … all must be more important than the shift of an obscure part of philosophy into an obscure part of programming.
I’m not so sure. Consider this - as I was writing this particular post, I thought to myself - hmm, Noam Chomsky must be in his nineties now, right? Just to confirm this, I wrote a simple question into a text box “How old is Noam Chomsky?” and pressed a button. Within milliseconds, I had the answer. Now, a decade ago, that question would have necessitated going down to the local library and spending at least an hour, perhaps several hours, hunting down the answer to that. It would have been such an exhaustive search that I would likely remember Chomsky’s birthday until the day that I died, and while I’m a big fan of his work, this is one piece of information that is frankly only useful to me as I pen an article on semantics - I’d just as soon not have to remember it, not have to carry it around with me.
How does the search engine (in this case Google) know the answer to this information? Does it have specially dedicated researchers capable of finding out this kind of trivia in the span of a heartbeat? No, of course not. The simple answer is that they have a massively indexed database. The not so simple answer is that there are some incredibly complex things going on inside that server farm that Google hosts, not least of which being the intensive application of computational semantics to make the indexing possible and sensible.
Human beings do not consider information in the abstract - we’re actually remarkably poor at being able to abstract information - think about how painful it is to write a summary of a particular article, a business plane, a synopsis or a syllabus. Instead, we walk around with an array of symbols in our head, each of which have a cloud of associations that are tied into those symbols, and those associations are not just other words but emotions, remembered sensations, memories comic or tragic.
Conceptually, for instance, we know that a cat is a quadripedal carnivore of family Felinidae, covered with a layer of fur, possessing an especially mobile tail, and having binocular vision. However, in my head the word “cat” brings up for me memories of several cats that shared the space with us as I grew up, from the brown and white tabby Kittily giving birth to a litter of soggy kittens at the base of my bed when I was eight, to the grumpy orange imperiousness of Nick (nee Nicholai Ivanovitch Lobachevski Bigelow Cagle) to the dainty gentility of Lady Cat as she sunned on the porch. Such memories are unique to me (though shared to some extent by my family and circle of friends from that era), and the associations evoked are as much remembered sounds and textures and scents as they are the formal semantics of computing.
All of these are associations, but they are associations that have a fuzzy quality to them (especially when dealing with cats, which, in addition to being furry have an intrinsically quantum association to them). A swatch of felt might remind me of one of my cats, but there is no clear cut mental connection that says - this felt is fuzzy, my cat is fuzzy, therefore this felt is like my cat in this regard, as a set of RDF assumptions might render it. Instead, perhaps I saw a cat at some point in the day, and later in the day, while waiting for my wife and daughter to buy fabrics at the local fabric store(being chronically incapable of sewing even a straight seam myself), I might brush against one of those odd faux fur fabrics (try saying that while drunk!) and the image of the cat and the feel of the fabric together might act as a trigger to a memory of plying my hand through the fur of Nicholas as he sat in a bay window soaking up the afternoon sun. I can describe the memory, but can I encode it, and perhaps more, can I encode it without creating turning the map into the territory it was meant to encode.
It is for this reason that semantics tends to be such a difficult field to quantify. The Semantic Web is perhaps the first major step down this road since the emergence of Lisp and the cybernetics movement of the 1950s and 1960s, and borrows as much from Korzybsky and Hayakawa and McLuhan as it does from Alan Turing and Alfred North Whitehead (the former of course being the mathematician who helped build the first computing machines and laid out their mathematical foundations, the latter the author of The Principia Mathematica). I prefer to think of the Semantic Web more as Computational Philosophy, as its goals seem often to be more akin to the discursions of Kant or Hume than the calculation and generation of the monthly power bill invoices.
One branch of the Semantic Web looks at the concept of assertions, and is the domain largely of RDF (the Resource Description Framework) and RDF Schema. RDF renders the discussion above as a set of triplets:
[this felt, has property of, furriness] [Nick, is owned by, Kurt] [Nick, is member of, cat] [cat, has property of, furriness]
This set of assertions can then be “joined” together to create the statement:
this felt is like a cat owned by Kurt named Nick in that they are both furry.
This joining process has been done in a number of ways, most recently through the SPARQL language which provides a way to query such RDF assertions in order to make “intelligent” observations. The intriguing thing is that for the most part the observations are surprisingly intelligent, if not terribly grammatical, and with a sufficiently large database of assertions can be used to yield numerous insights that may not be obvious about the data at hand.
Why? Because from a computational standpoint you are not dealing with “facts” - you are only dealing with symbols. The above assertions can be rendered as:
[subjA, relA, objA] [subjB, relB, objB] [subjB, relC, objC] [objC, relA, objA]
With the appropriate statement encoded as
[subjA],"is like",[objC],[relB],[objB],"named",[subjB],"in that they are all",[objA]
This, by the way, is one abstract definition of a metaphor (with the exception of the naming part) - two distinct objects are described as having a common set of properties, and because those properties can in turn be used to define a model, [subjA] can be said to reflect [objC] in that model - i.e., one is a metaphor for the other.The fascinating thing here is that what subjA and objC are is immaterial - so long as they satisfy the relationships given above then the assertion below can be said to apply to them.
This points back to an interesting facet of semantics. Semantics does not deal with facts. Korzybski and Hayakawa themselves recognized this salient point. Semantics deals with the nature of linguistic relationships - two objects could be totally mythical and the relationship between them nonsensical, but the statement [obj1,rel,obj2] is still a valid assertion. However, without other connections; without other relationships being defined on these entities, the assertion itself will likely never appear in any queries. Thus, while the assertion is valid, it isn’t relevant.
This is also where a second branch of the semantic web appears - ontologies. An ontology can be thought of as the framework for describing the specific valid assertions for a given domain. For even a simple domain this can be a fairly massive undertaking - let’s say you have twenty terms in your vocabulary and five relationships between those terms. This means that there are 2000 distinct relationships that could possibly exist (20 * 5 * 20), though in point of fact many of those relationships are tautological ([a is a],or [a is a member of b, b is a member of a] which works out to the same thing) or contradictory ([a is owned by b] and [b is owned by a] cannot both be true, unless once again its a tautology). Even given this, development of ontologies is something that in general requires a computer to perform to indicate logical consistency and a human to review in order to ascertain factualness and relevance).
The process of evaluating the assertions in these ontologies and using them to build both relevant and logical statements about a given situation obviously has huge implications. As a society, we are collecting terabytes(+) of data about the world around us, but the reality is that most of that information is in fact never utilized, because the process of asking the right questions and getting the answer back in a meaningful form is still for the most part in its infancy. All too often, a preventable disaster happens not because we didn’t have the right data, but because we didn’t know how to ask the right questions.
One aspect of the semantic web is thus to provide a framework upon which we can search for the form of the right answer, then let the relational links in the RDF database make the inferences. The fascinating point about this is that such methods serve not only to make assertions in the first place, but also provide a way of correlating the validity of answers - invalid assertions in the database will tend to be fairly weakly correlated with other information, but valid assertions will tend to be repeated through different paths of execution. This means that you can use the number of responses to a given query to determine the “strength” of the assertions that make up the query.
It’s still early days for such systems, comparatively speaking - changing the nature of databases so that they can readily work against the SW model is a not inconsiderable task, and in most cases both the databases and the queries are still largely assembled by hand, but both of these are changing. One interesting evolution in programming has been the rise of mathematical proofs (which are themselves simply the manipulation of sets of assertions on fixed sets of rules) that are performed by computers, and that, while they can be tested for validity, are nonetheless more complex than most (perhaps all) human beings are capable of understanding. This is making its way into the semantic web as well, making it possible for computers to make valid and (pardon the pun) meaningful queries that are themselves programmatically generated.
Of course, this also raises some very disturbing questions about the ethics of using such systems, something I think as a society we are woefully inadequately prepared for. If a murder is committed and the use of an inferential engine can make a strong circumstantial case that a given person is the guilty party, is the use of such an engine admissible as evidence? If the performance of a query implicates a politician in a scandal inadvertently, can a news organization use this information to bring down that politician - can his opponents? Is it ethical to use such a tool to find not only terrorists, but those people who may become terrorists but aren’t at this point? The benefits of such systems are obvious, but just as the use of search engines is raising whole new levels of questions about the ethics of such search, so too will inference engines change the nature of how we interact with one another.
Semantics, as S.I. Hayakawa himself indicated, is a duel edged sword (pun intended) - it underlies the very nature of communication and what it means to be intelligent, yet when semantics is codified and computerized, it also takes meaning and turns it into a manipulatable construct that can be used for good or ill. We have taken philosophy and turned it into engineering … and I suspect that the impact of this will reverberate on the evolution of human society for centuries to come.
Kurt Cagle is an author and systems architect who lives in Victoria, British Columbia with his family. He is the webmaster for The XForms Portal and the XForms Community Forum. This post was originally on UnderstandingXML.com.