- From: Jim Hendler <hendler@cs.umd.edu>
- Date: Wed, 16 Jun 2004 17:15:23 -0400
- To: public-rdf-dawg@w3.org
- Message-Id: <p06110409bcf65e51512b@[10.0.0.11]>
ACTION: JimH to send mail describing the history of remote KB
query, including
any mention of Denial of Service problems that may be relevant.
OK, you folks forced me to go back in time -- most of the stuff in
this area dates from the late 90s - the main relevance to Semantic
Web per se is probably work that was done in the context of the SHOE
project
and the OKBC work - brief histories of each, and then some info
related to the above:
HISTORY/URIS:
SHOE [1] is URI-based Web Ontology language first developed around
1995, with much of the work in 97-98, culminating in Jeff Heflin's
doctoral thesis in 2001 [2] and now supported by Jeff at Lehigh
University [3] where he continues to explore SHOE Rules (far as we
know SHOE was the first web rule langauge) and other random stuff
(has a MS Windows SHOE toolkit, for example). One version of SHOE
used the Parka-DB KB system [4] as its back end, which is what I will
discuss below.
OKBC [5] was developed as part of the DARPA "High Performance
knowledge Base" program based on the earlier "Generic Frame Protocol"
developed jointly by Stanford and SRI. A WG was created to put this
together (details at [5]) and the idea was to have a query protocol
for accessing different "knowledge representation systems" (see note
[6]). OKBC assumed a middleware type approach, and assumed a sort of
mix of frame and Terminological Logic backends. The XML Ontology
Language (XOL) [7] was developed to be a XML-based backend to work
with OKBC. SandPiper Corp [8] uses OKBC in some of its projects.
As far as I know language development on OKBC stopped around 1999
with the production of OKBC 2.0.3 which is available from [9] (as
is code and some other stuff - but I don't know if it is maintained
at all).
Shoe was a direct contributor to DAML, XOL was a direct contributor
to OIL - the two came together in DAML+OIL, the predecessor to OWL,
thus the "pedigree" of the above as Semantic web languages.
QUERYING
SHOE used the Parka Interface for Queries (PIQ) [10] as a graphical
front end to the Parka-DB query langauge, OKBC had several query
modes. SHOE and OKBC both assume a model where a server provides a
dedicated connection to a knowledge base for the length of a session
-- this is probably as both languages
had assertional capabilities, and this dedicated session allowed them
to get around issues of concurrency, transaction handling, security
(including denial of service), etc. While this would probably not
be the right thing for DAWG, it is worth noting that even back in
'99, the SHOE server version could handle 20 people accessing
different KB sessions at the same time running on a commodity single
processor machine -- back of the envelope this would allow a current
decent server to handle 100-1000s of decent sized KB sessions at the
same time - so it is not as ridiculous as it might sound (and maybe
DAWG wants to consider a "dedicated session mode" as a future
extension, but i won't suggest it now).
Because of the dedicated server, both Parka and OKBC had a model
where a session was started and a particular KB was loaded for that
session (they had different load models, but let's ignore that for
now). Queries would come to Parka as graphs with variables (that
look a lot like the "where" clause in RDQL) or to OKBC as logical
queries (which look something like OWL-QL [11] queries, although not
quite as sophisticated). Parka's API was defined so that when a
query came in, Parka returned the first answer and the number of
total answers (so it was inherently a streaming interface) - the
application could then ask a "Next N" type of query or could ask a
different query, in which case the state was lost. Parka also kept
somethign akin to a key (but w/no encryption back them) so that it
coud keep the separate query session separate and also "authenticate"
the user so that you couldn't hijack someone else's session (at
least, without trying a bit -- remember, back in 99 we assumed users
were friendly :->)
OKBC's query interface is more complex, it had a number of session
modes and a number of ways of querying them -- so the interface
provided a streaming capability like Parka's, but also a "give me all
the answers" mode, a sort of "save this query" (so I can ask again
later for only new answers) mode, and several others. OKBC was
designed in such a way that not every back end could support every
query, and there were different compliance levels, so the protocols
tended to be way more complicated than we would accept in most modern
work.
Anyway, I think these are of limited direct relevance to DAWG because
of this session-based approach which was mandated by the fact that
these were not just query languages, but also assertional languages
(which I forgot when we were discussing this the other day, my bad).
I also caution that the above is a bit of a simplification -- both of
these were quite advanced systems for their day -- and that it is
also filtered through my somewhat faulty memory -- I have included
all these URIs below so that anyone looking for the correct answers
can get to them instead of trusting my recollections
cheers
JH
[1] http://www.cs.umd.edu/projects/plus/SHOE/
[2] Towards the Semantic Web: Knowledge Representation in a Dynamic
Distributed Environment - Jeff Heflin's PhD thesis, on line at
http://www.cs.umd.edu/projects/plus/SHOE/pubs/#heflin-thesis
[3] http://www.cse.lehigh.edu/~heflin/research/
[4] http://www.cs.umd.edu/projects/plus/Parka/parka-db.html
[5] http://www.ai.sri.com/~okbc/
[6] interesting historical note - at the kickoff meeting which
decided to produce OKBC, only one person argued for a standard KR
(ontology) syntax based on web protocols, instead of a new standard
protocol for KR interoperability - sic transit gloria mundi...
[7] http://www.ai.sri.com/pkarp/xol/
[8] http://www.sandsoft.com/products.html
[9] http://www-ksl-svc.stanford.edu:5915/doc/release/okbc/index.html
[10] http://www.cs.umd.edu/projects/plus/SHOE/piq.html
[11] http://ksl.stanford.edu/projects/owl-ql/
--
Professor James Hendler http://www.cs.umd.edu/users/hendler
Director, Semantic Web and Agent Technologies 301-405-2696
Maryland Information and Network Dynamics Lab. 301-405-6707 (Fax)
Univ of Maryland, College Park, MD 20742 240-277-3388 (Cell)
Received on Wednesday, 16 June 2004 17:15:27 UTC