The Sun BabelFish Blog
Don't panic !
Reference and Inference
The key to understanding the power of the Semantic Web is understanding the essential role URIs, and URLs in particular, play at its core. This seems like a small thing, but it is what changes everything.
URIs permit one to distinguish objects and relations universally. That's
what URIs are: Universal Resource Identifiers. URLs (a subclass
of URIs) furthermore make it very easy to relate the name to the thing
(the resource) it names. So by using URLs as the basic way to identify
things, we are always one little click away from a description of
the thing we are mentioning. I emphasize the it is *a* description,
because the web was designed to allow many different representations of
the same resource to be returned on request. This is called content
negotiation. Well defined ontologies make use of this very powerful
feature, by placing one or more html representation of the resources
defined for human readers (in the preferred language of the reader
preferrably) and a well structured machine readable versions for
programs that may want to use them too.
An example will
make this very clear. Look for example at the foaf:Person
class defined by the Friend of a Friend ontology. If you click on that
link you will get a human readable web page back. There you will learn
that foaf:Person is a subclass of foaf:Agent (and hence that any
property of foaf:Agent is applicable to foaf:Person). A machine wanting
to learn the same thing will get this written out in a precisely defined
way. To get the machine readable version run:
curl -H "Accept: application/rdf+xml" -L -i http://xmlns.com/foaf/0.1/Person[1]
So why is this such a big difference? Well compare to an SQL database
that may have two tables with columns named PERSON. There is really no
telling wether the two PERSON columns represent the same or a different
concept without reading some documentation that is somewhere if
anywhere, but in no particular location. foaf:Person on the other hand
is the same thing wherever we find it. The authority on the meaning of
foaf:Person (which expanded is http://xmlns.com/foaf/0.1/Person) is the
owner of the xmlns.com domain. So we can even trace authority.
So
by using URIs we have a way to identify a resource, we have a way to
identify some authority with regard to that resource, and we can also
get a description of the resource. The resource (the thing referred to
by the URI) can be any thing. If the description of the thing is well
done, we can discover from the description of the thing, what the thing
is, and how it relates to other things. So in the case of foaf:Person we
discover that foaf:Person is a type of thing, a Class, and that things
of this class have certain type of relations (such as mail boxes,
friend, ...) to other things. How do we know that a Person is a class?
Because in the description we found the following statement: foaf:Person
a rdfs:Class. What is rdfs:Class? Expanded it is http://www.w3.org/2000/01/rdf-schema#Class.
Click on that and you get a machine readable explanation of it. This
machine readable version points to human
readable version of the page, which defines in detail the meaning of
that term. RDF really is built right into the core of the Web.
Now the beauty of all of this is that by following these links we just get to find out what types of things exist and how they are related. RDF pure does not force a particular type of inferencing on us, as Prolog might have done. RDF just allows us to describe the world. Some of the terms such as rdfs:Class refer to some model theoretic semantics that are built on logic and so are ready to allow an inferencing engine to deduce new relation, or simplify the number of relations it needs to keep track of [2]. The Semantic Web enables inferencing, but does not force it. For those who would like a fuzzy logic they could define some fuzzy logic relations and allow fuzzy inference engines to make use of these fuzzy relations to come to their prefferred fuzzy conclusions. If fuzzy logic can be mapped to normal logic then a strict logic reasoner would be able to come to similar conclusions in his own way. RDF allows one to Reference clearly the rules to enable one to make the inferences one wishes. The theoretical foundation for OWL is description logics for example, which itself is based on first order logic, which in turn has been underpinned by set theory.
Now it should be clear why RDF stands for Resource Description Framework.
[1] To get the format designed for human consumption (the html version)
just remove the -H "Accept: application/rdf+xml"
string. I prefer passing the machine readable version through the
following transformation process to generate N3:
cwm.py
--rdf ontology.xml --n3 | less
[2] If you
discover that 2 things a and b are the same, you can just replace all
a's with b. That makes it easier to search for things.
Posted at 07:38PM Oct 07, 2005 [permalink/trackback] by Henry Story in SemWeb | Comments[0]
Note on comments:
- I know the forms below are a little small. We have asked for years for this to be changed, but I don't think it's going to happen soon. In Apple's Safari you can resize the entry box with you mouse. For people using other browsers click on this javascript link, that should allow you to resize your form.
- Comments are moderated, so they will take a little time to appear. Currently moderation means I have to read them personally. Hopefully with OpenId deployment, this will become more automated.
- HTML markup no longer works here, due to some decision made somewhere. Sorry about that.
- If you are having trouble posting, it may be that you need javascript to be enabled. I don't think javascript should be needed for submitting a form, but that's the way it is here.
- Check your comments by using the preview button...
