Home

Architecture

WebApps

Database

Administration

Web Search

News

Java Servers

Enterprise

User Interface

Learning

Contact Us

JumpPoint - Java - EJB - Servlets- JSP - JMS - JNDI- JDBC - RMI

The Smart Web

If you're so fast, why aren't you smart?
Delving in to SemanticWeb
by Rich Katz, Java Skyline

The ever increasing speed of computers coupled with the ongoing "search for HAL" gave rise to one journalists question: "if you're so fast, why aren't you smart."

The discussion
What is Semantic Web? Sean B. Palmer (SemanticWeb.org) Is an excellent explanation and even a brief one for SemanticWeb. I'll try to be even briefer. Basically he says... SematicWeb is a Web that defines the relationships among things with semantics that can be used by automated processing.

What he doesn't say is - the 25 cent question: What is semantics? The 25 cent answer is: semantics means "meaning." The quarter million dollar answer is the following example:

"Joe sold his Ford Mustang to Jim"

is a transitive sentence from which we learn that Jim now owns the Ford Mustang, and Joe doesn't own it anymore. Semantics, and SemanticWeb organize "frameworks" and essentially annotate the sentence so that a computer program can read the sentence and understand its intention and likely implications. A framework is a kind of fill-in-the-blank story like:

Seller owns object.
Seller decides to sell object.
Buyer offers to buy object.
Seller and buyer agree on price, delivery.
Seller transfers object to buyer.
Buyer pays price to seller.
Buyer owns object.

When we apply this framework to the simple sentence "Joe sold his Mustang to Jim," we actually learn far more than what the sentence originally conveys, namely:

Joe is the seller of the Mustang. Jim is the buyer. Jim probably payed some money to Joe. At some point, Joe decided to sell the Mustang. At some point, both Jim and Joe must have agreed on a price and agreed how the Mustang would be delivered.

Although the framework above appears simple, there are a number of extensions that it must have that make it really useful. For one thing, not all the sentences in the above framework are transitive or even indicate actions at all. Some simply describe states. Others describe activities that may or may not change the state of an actor or object.

So, verbs need to be classified by what they do. The verb "transfer" is an action verb in which an object is transferred from one actor to another. However, the verb "owns" only associates two entities: an actor and an object.

For another thing there needs to be some way of translating the framework so that it works in various languages. Additionally even in one language, words like "transfers" have synonyms that must be accounted for. Also cascading networks (or "layers") of such frameworks must be created to fully implement useful understanding. In fancier terms, the networks and frameworks are called ontologies.

When a software program can use such a framework or series of frameworks on an outside process, it is said to "understand" the process. In SemanticWeb, the intention is to have a network of systems that "understand" each other. These systems can then interact with each other in a somewhat "reasonable" manner according to a set of business rules that track the state of objects and determine a best course of action or series of actions to take. This set of rules that determines business operations is something called a production system.

As you might guess, XML can and is being used to define sematic frameworks and layers, and to a fairly small degree, even production systems. The variants of XML that does this is called RDF which stands for Resource Description Framework. And the group that most actively works on the topic of semantics is called the RDF Interest Group. RDF, especially when enhanced with Dublin Core, can be a convenient way to express frameworks.

Here's a portion of the above framework translated into a general XML-ish document (definitely not RDF/Dublin Core. For actual RDF/Dublin Core examples see Understanding RDF by Dan Brinkley and other resources below):

The original sentence itself must also be analyzed and/or annotated to find the roles played, arriving at the following:

<seller identity="Joe">
<buyer identity="Jim">
<saleitem identity="Ford Mustang">

When these identities are substituted into the framework fragment above, we can derive:

Joe owns the Ford Mustang.
Joe decides to sell the Ford Mustang
Jim offers to buy the Ford Mustang.
Joe and Jim agree on the Ford Mustang
Joe sells the Ford Mustang to Jim

So, a portion of the answer to "if you're so fast, why aren't you smart" is - we haven't applied semantics yet. And we certainly don't have them applied across the Web. Additionally, we don't have systems with the necessary production rules to determine "reasonable" things to do once they understand other systems. When we have semantic processes across the Web (SemanticWeb) the next question will of course be "if you're so semantic, why aren't you smart?" And if I'm so smart why aren't I rich? - Rich

Resources
W3C RDF Home Page
RDF Interest Group Mailing List archive
SemanticWeb.org
SiLRI (Simple Logic-based RDF Interpreter)
OntoPrise
Understanding RDF Dan Brickley (Bristol)