KB query interfaces (related to streaming queries)

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