Looking things up is useful (was: Fractal struggle...)

Sherman,

The Semantic Web (which has been on the agenda and designed in outline 
for many years, and has running code and so is a working system)  is 
indeed "a virtual space, even more so than the WWW".  However, it is 
built on top of the web. (There have been various protocols built to 
exchange knowledge between agents, but not built on the web)
The semantic web can of course work using say URNs or UUIDs for RDF 
things, but it is more exciting and useful if you use HTTP as follows:

1. You write (or at least imagine) a document about the things in a 
semantic web language, using local names within the document to name 
them.
2. The semantic web language you use is defined such that when a URI 
for the document is concatenated with the local identifier of the thing 
you are writing about, then that global identifier is formed for that 
thing.
3. This means that when anyone comes across the identifier you have 
used for that thing, they can (net willing) look up what you said about 
it.

Much of the RDF code out there operates without really using the web, 
and much of there web code out there operates without using RDF, but 
the combination is pretty dramatic.  Of course, it will be much more 
dramatic when instead of isolated examples, there is  a mass of linked 
RDF out there.

(Examples: if you have cwm or download cwm from 
<http://www.w3.org/2000/10/swap> you can run them, but anyway this is 
what they do)

python cwm.py http://www.w3.org/2000/10/swap/test/dbork/defdoc2.n3 
--mode=rs --think

where mode=rs means look up "query terms to see if you can find 
anything useful".
The file asks the question, "What are the names of cities in states 
which border the state with code "MA"?
The ontology for the terms used contains pointers to lists of cities 
and states, so the question can be resolved by just following links - 
like a person using the web, but automated.
The result is a list of city names.

As another example,

cwm --closure=ptr --base=http://www.w3.org/2000/10/swap/test/ferrell/  
myDingo.n3 --think --filter=anyDogs.n3

In this (Sandro's constructed test) case, myDingo.n3 states that Donny 
is a Dingo.
The closure flags (ptr) ask cwm to go look up predicates and types, and 
rules linked from ontologies.
The term used for Dingo is one in a biological ontology which is written
in a test variant of OWL whose ontology has a pointer to some rules 
implies by the OWL ontology.
Running the rules allows cwm to conclude that Donny is also a Dog, in 
the question,
"do you know any dogs?".

Obviously we are playing how with what information is useful to leave 
on the web, and
it will become possible to do more interesting and more efficient 
things than cwm is doing now,
but you get the idea that looking things up on the web is useful.

The architecture separates the Semantic Web design, which all really 
comes down to the design of the languages  in which documents are 
written, from the underlying Web design which is all about the 
distributing the information around so it is as though all the 
documents were local to the client.  This is just as the hypertext web 
is built by making a language for global hypertext.

There is a huge investment in HTTP and the TCP and DNS beneath it. It 
is important that we can develop hypertext and semantic web languages 
building on the basis of the Web.  To invent another protocol 
especially for the semantic web would be a bad idea because it would be 
a less flexible architecture: developments in the web as an information 
space, and in the semantic web as web of concepts would be linked and 
have to wait for each other.  We would also have to bootstrap a new 
protocol, and support two into the future. As it is, they are 
independent, and can just take advantage of each other.

tim bl

Received on Monday, 4 August 2003 15:17:38 UTC