What is the Semantic Web?
"The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. It is a collaborative effort led by W3C with participation from a large number of researchers and industrial partners. It is based on the Resource Description Framework ( RDF). See also the separate FAQ for further information."
Even a cursory look into the present state of the Semantic Web is mind blowing; but one starts seeing certain trends in the advancements made so far. What you have to remember is that it has been in discussion, development, and implementation since before the year 2000. Currently there are several working groups, tools, and standards, that are collectively moving the web toward a semantic platform.
What's The Hold-Up?
There are, of course, several obstacles, not the least of which is conformity. How do you get everyone on the same page and start categorizing data in a universally common standard? One way of course is to implement standards such as RDF, OWL, SPARQL, and others, and begin integrating these into Website and data building. This is not unlike addressing a room-full of people from different countries and saying " I would like everyone to move to the other side of the room". First you need to translate, then you have to be sure everyone understands what the other side of the room is, and if it was an especially large group you would want them to move orderly and not all at once.
One difficulty in a Semantic Web is in the conveying of a concept and having that conveyed concept be mutually understood, by everyone it is conveyed to. An example of this would be in a search for 'red herring'. If someone typed that in the search bar they might be researching the idiom or they might be looking for recipes of smoked herring. There are a number of words and phrases that can be misunderstood by a program designed to interpret user input and respond with all data corresponding to that input.
Call To Action
The only way to narrow or fine tune the response is to ask for more information and require an action by the user. Much like a 'Did you mean' response. Which would require more information in order to return a correct reaction to user input. In fact, the only way to get the correct response is to be sure that the data being retrieved is the data being requested.
Search engines are already using facet widgets to narrow down the data being presented but they have not yet got to a place where those widgets are a response to user input. If you type in 'red herring' you will be given a selection of widgets but they don't correspond to a natural flow or algorithm of the phrase. In a Semantic Web the user would be presented with widgets that follow a flow of the concept as understood by the program. If the program requires more information it will present widgets that, for example, will allow the user to narrow down to categories such as , idioms, fish, recipes, etc. by selecting the appropriate category. This can done several times if required by presenting more widgets based on the users last action.
The Programmer's Part
On the retrieval side content and data must be labeled and categorized as to follow this same flow. The issue here is that the program must follow a logical path of information of interlinked programs across the web. Tagging has been a great way to interlink but we still have the problem of the conveyed concept. If one program tags a 'red herring' as a smoked fish but does not tag it as an idiom then any data that program has on 'red herring' as an idiom will be skipped. Or if the program understands the sending call to be for information on red colored fish it will will have misunderstood the concept altogether.
In the Memphis Web Programming Solr Search page we use widgets to allow the user to narrow search results to certain categories and tags. It would not be a huge problem to present other widgets based on the last widget selected and to allow backing back up if the user selects the wrong facet or the user's concept differs from the programming concept of what the user is trying to retrieve. The concern is in the dictums used to link the data. I could tag something as code but the user understands code to be something other then my concept of code. The programming and data structure has to be flexible enough to allow for the user to correct the programming if the program's conveyed concept is wrong by allowing the user to direct the program's response through actions.
This is why user action is a vital part of the future of the Semantic Web. We can develop programs that respond to user actions and we can construct content and data to be linked in a way to allow for conceptual differences.
by Jim Atkins "thedosmann"