DQL Server Powered By JTP

Slides:



Advertisements
Similar presentations
Reasoning Breakout Session 7/20/01 Richard Fikes Mike Dean DAML PI Meeting Nashua, New Hampshire July 18-20, 2001.
Advertisements

Introduction to Web Services Protocols. Talk titledate2 Communication and standards Efficient (or indeed any) communication is dependent on a shared vocabulary.
WEB SERVICES. FIRST AND FOREMOST - LINKS Tomcat AXIS2 -
Web Development & Design Foundations with XHTML
Joshua Scotton OWL-QL.
27 January Semantically Coordinated E-Market Semantic Web Term Project Prepared by Melike Şah 27 January 2005.
RDF Tutorial.
K S L W i n e A g e n t : Testbed Application for Semantic Web Technologies Deborah McGuinness Eric Hsu Jessica Jenkins Rob McCool Sheila McIlraith Paulo.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Descriptions Robert Grimm New York University. The Final Assignment…  Your own application  Discussion board  Think: Paper summaries  Web cam proxy.
18-Jun-15 JSP Java Server Pages Reference: Tutorial/Servlet-Tutorial-JSP.html.
JSP Java Server Pages Reference:
Tools for Developing and Using DAML-Based Ontologies and Documents Richard Fikes Deborah McGuinness Sheila McIlraith Jessica Jenkins Son Cao Tran Gleb.
Chapter 7: Resource Description Framework (RDF) Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley,
Presented By: Ayelet Birnbaum Yael Kazaz Supervisor: Viktor Kulikov 07/05/12.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Enabling Embedded Systems to access Internet Resources.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
JSP Java Server Pages Softsmith Infotech.
Logics for Data and Knowledge Representation
 Embeds Java code  In HTML tags  When used well  Simple way to generate dynamic web-pages  When misused (complex embedded Java)  Terribly messy.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Of 41 lecture 4: rdf – basics and language. of 41 RDF basic ideas the fundamental concepts of RDF  resources  properties  statements ece 720, winter.
Web Development & Design Foundations with XHTML Chapter 2 HTML/XHTML Basics.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Chapter 7: Resource Description Framework (RDF) Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley,
Of 35 lecture 5: rdf schema. of 35 RDF and RDF Schema basic ideas ece 627, winter ‘132 RDF is about graphs – it creates a graph structure to represent.
Chapter 7: Resource Description Framework (RDF) Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley,
Important Concepts from the W3C RDF Vocabulary/Schema Sungtae Kim SNU OOPSLA Lab. August 19, 2004.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
WSDL Specification WSDL = Web Service Description Language Similar to ASN.1 – describes the abstract on the wire data structures Multiple bindings to on.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
HTML Links HTML uses a hyperlink to another document on the Web.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Java Server Pages. 2 Servlets The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Introduction to JavaScript MIS 3502, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 2/2/2016.
Added Value to XForms by Web Services Supporting XML Protocols Elina Vartiainen Timo-Pekka Viljamaa T Research Seminar on Digital Media Autumn.
OWL (Ontology Web Language and Applications) Maw-Sheng Horng Department of Mathematics and Information Education National Taipei University of Education.
Java Web Services Orca Knowledge Center – Web Service key concepts.
Web fundamentals: Clients, Servers, and Communication
* Web Servers/Clients * The HTTP Protocol
Service-Oriented Computing: Semantics, Processes, Agents
Cloud Computing Web Services.
The Fedora Project March 10, 2003
Encoding Extraction as Inferences
WWW and HTTP King Fahd University of Petroleum & Minerals
An Introduction to Web Services
Service-Oriented Computing: Semantics, Processes, Agents
Service-Oriented Computing: Semantics, Processes, Agents
CASE STUDY -HTML,URLs,HTTP
Simple Object Access Protocol (SOAP)
By Dr. Kodge Bheemashankar G
Tools for DAML-Based Services, Query Answering, and
Department of Artificial Intelligence
Chapter 27 WWW and HTTP.
Introduction to RDF and RDFS Editor: MR3
Implementation of Web Services in Perl by Litis Abraham & Gomathy Sankara CS522 Fall 2001 Semester Project 11/28/2018 Web Services in Perl.
Introduction to Web Services Protocols
ece 720 intelligent web: ontology and beyond
Objectives In this lesson you will learn about: Need for servlets
DAML: The DARPA Agent Markup Language
Deepak Shenoy Agni Software
WebServices Using JAX-RPC
Lecture 5: Functions and Parameters
Chapter 42 Web Services.
Semantic Web Basics (cont.)
Tools for DAML-Based Services, Query Answering, and
* Web Servers/Clients * The HTTP Protocol
Presentation transcript:

DQL Server Powered By JTP Demonstration Slide Show Knowledge Systems Laboratory Stanford University

DQL Server Powered by JTP Overview The DQL Server is a server which answers queries written in the DAML+OIL Query Language (DQL). DQL has been written as an abstract specification, and at Stanford's Knowledge Systems Laboratory we have taken the abstract specification and produced an XML syntax for DQL. The DQL Server is powered by the Java Theorem Prover package, which is a framework of reasoners that operate on DAML+OIL. DQL Server itself runs as a Java Servlet, compatible with application servers such as the Tomcat Java server. In this demonstration, there are two servers. There is a server which this Web browser is talking to, called the Front End. This interaction uses the usual Web formats of HTTP and HTML. There is a Back End server, which the Front End talks to using the DQL syntax for SOAP/XML with HTTP. SOAP is an XML-based messaging protocol commonly used in Web Services.

Example: Type Inheritance to Superclass Let's begin by taking a look at an example. In this example, we have had the DQL server load the KSL's Wines Knowledge Base, which contains knowledge about wines and the foods that go with them. The JTP reasoner has been run over the KB and it is ready to answer queries. In the first query, we will be looking at type inheritance to superclasses. In this case, we have the following given information: rdfs:subClassOf tkb:NON-OYSTER-SHELLFISH tkb:SHELLFISH daml:disjointWith tkb:NON-OYSTER-SHELLFISH tkb:OYSTER-SHELLFISH rdf:type tkb:CRAB tkb:NON-OYSTER-SHELLFISH For this query, we will not require a premise. We know that: CRAB is a NON-OYSTER-SHELLFISH. We know that NON-OYSTER-SHELLFISH are SHELLFISH. So we expect this query to succeed. Query: rdf:type tkb:CRAB tkb:SHELLFISH Query: Query (cont.):

Example: Type Inheritance to Superclass (cont.) As can be seen by the HTML response below, this query has succeeded. The server performed its reasoning, and determined that CRABs are a type of SHELLFISH. Query Successful Bindings rdf:type tkb:CRAB tkb:SHELLFISH Let's now look at the DQL messages which were sent between the Front End and the Back End.

Example: Type Inheritance to Superclass (cont.) Below is the query message sent with this request. The KB URL has been abbreviated to "wines.daml" for clarity in presentation. Notice that it has the required sections that are defined by the DQL abstract specification: The queryPattern section defines the query as a set of reified RDF Statements. The other section is the answerKBPattern section specifying the URL of a DAML+OIL document to use when answering the query. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <dql:query xmlns:dql="http://www.daml.org/2002/10/dql-syntax#" xmlns:var="http://www.daml.org/2002/10/dql-variables#" xmlns:tkb="wines.daml#“ xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#"> <dql:queryPattern> <rdf:Statement> <rdf:predicate rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/> <rdf:subject rdf:resource="wines.daml#CRAB"/> <rdf:object rdf:resource="wines.daml#SHELLFISH"/> </rdf:Statement> </dql:queryPattern> <dql:answerKBPattern> <dql:kbRef rdf:resource="wines.daml"/> </dql:answerKBPattern> </dql:query> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Example: Type Inheritance to Superclass (cont.) Below is the server's response message. The KB URL has been abbreviated to "wines.daml“. Notice that it also has the required sections that are defined by the DQL abstract specification. The server repeats the client's queryPattern, and returns a set of answer tags. Had the query failed, there would be no answers. The last answer is actually a continuation with a token of none, meaning there are no more answers. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <dql:answerBundle xmlns:dql=“http://www.daml.org/2002/10/dql-syntax#” xmlns:var=“http://www.daml.org/2002/10/dql-variables#” xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dql:queryPattern xmlns:dql="http://www.daml.org/2002/10/dql-syntax#"> <rdf:Statement xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:predicate rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /> <rdf:subject rdf:resource="wines.daml#CRAB" /> <rdf:object rdf:resource="wines.daml#SHELLFISH" /> </rdf:Statement> </dql:queryPattern> <dql:answer> <dql:binding-set> </dql:binding-set> </dql:answer> <dql:continuation> <dql:termination-token> <dql:none/> </dql:termination-token> </dql:continuation> </dql:answerBundle> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Example: Inferences using toClass and hasValue Let's take a look at another example using JTP and the Wines KB. In this query, we will be looking at inferences using toClass and hasValue. We have the following given information in the wines KB: rdfs:subClassOf tkb:SEAFOOD-COURSE tkb:MEAL-COURSE rdfs:subClassOf tkb:SEAFOOD-COURSE tkb:DRINK-HAS-WHITE-COLOR-RESTRICTION Our premise is that we want to discuss a food course, and what drink will best accompany it. In this case, our new course is a SEAFOOD-COURSE, which as can be seen above, means that its DRINK must be COLOR WHITE. Let's fill in the premise below: We'd like to know what color its DRINK, W1, is, so we use a must-bind variable x: Now let's submit it and see what happens. Premise: Premise (cont.): rdf:type tkb:NEW-COURSE tkb:SEAFOOD-COURSE tkb:DRINK tkb:NEW-COURSE tkb:W1 Query: tkb:COLOR tkb:W1 ?x

Example: Inferences using toClass and hasValue (cont.) As can be seen by the response below, this query has produced a binding that W1 has COLOR WHITE. The server performed its reasoning, and determined that because SEAFOOD-COURSE requires a DRINK with COLOR WHITE, W1 must have COLOR WHITE. Query Successful Premise rdf:type tkb:NEW-COURSE tkb:SEAFOOD-COURSE tkb:DRINK tkb:NEW-COURSE tkb:W1 Bindings tkb:COLOR tkb:W1 tkb:WHITE The next two slides will show the DQL protocol messages that were used.

Example: Inferences using toClass and hasValue (cont.) This is the request message that was sent for this query. Notice that it contains two new sections: the premise, which is a set of DAML+OIL statements, and the mustBindVars section. The mustBindVars section defines variables whose values must be bound as per the DQL abstract specification. Once again the KB URL has been abbreviated to "wines.daml". <SOAP-ENV:Envelope <SOAP-ENV:Body> <dql:query> <dql:premise> <rdf:RDF> <rdf:Description rdf:about="wines.daml#NEW-COURSE"> <rdf:type rdf:resource="wines.daml#SEAFOOD-COURSE"/> </rdf:Description> <tkb:DRINK rdf:resource="wines.daml#W1"/> </rdf:Description> </rdf:RDF> </dql:premise> <dql:mustBindVars> <var:x/> </dql:mustBindVars> <dql:queryPattern> <rdf:Statement> <rdf:predicate rdf:resource="wines.daml#COLOR"/> <rdf:subject rdf:resource="wines.daml#W1"/> <rdf:object rdf:resource="http://www.daml.org/2002/10/dql-variables#x"/> </rdf:Statement> </dql:queryPattern> <dql:answerKBPattern> <dql:kbRef rdf:resource="wines.daml"/> </dql:answerKBPattern> </dql:query> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Example: Inferences using toClass and hasValue (cont.) This is the response message that was sent for this query. Notice that the answer sections have a new section for binding of must-bind or may-bind variables. <SOAP-ENV:Envelope> <SOAP-ENV:Body> <dql:answerBundle> <dql:queryPattern> <rdf:Statement xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:predicate rdf:resource="wines.daml#COLOR" /> <rdf:subject rdf:resource="wines.daml#W1" /> <rdf:object rdf:resource="http://www.daml.org/2002/10/dql-variables#x" /> </rdf:Statement> </dql:queryPattern> <dql:answer> <dql:binding-set> <var:x rdf:resource="wines.daml#WHITE"/> </dql:binding-set> </dql:answer> <dql:continuation> <dql:termination-token> <dql:none/> </dql:termination-token> </dql:continuation> </dql:answerBundle> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Example: Inferences using toClass In this query, we will be looking at inferences using toClass. In this case, we have the following given information: rdfs:subClassOf tkb:BLAND-FISH-COURSE tkb:MEAL-COURSE Every food of tkb:BLAND-FISH-COURSE must be tkb:BLAND-FISH Let's fill in a premise that we have a BLAND-FISH-COURSE featuring DOVER-SOLE. And let’s ask what DOVER-SOLE is a type of. Premise: Premise (cont): rdf:type tkb:NEW-COURSE tkb:BLAND-FISH-COURSE tkb:FOOD tkb:NEW-COURSE tkb:DOVER-SOLE Query: rdf:type tkb:DOVER-SOLE ?x Premise: Premise (cont.): We want to know what kinds of things a DOVER-SOLE must be: Query: Query (cont.): Now let's submit it and see what happens.

Example: Inferences using toClass (cont.) As can be seen by the response below, this query has produced a set of bindings about the DOVER-SOLE based on what we said about it and what could be inferred. Query Successful Premise rdf:type tkb:NEW-BF-COURSE tkb:BLAND-FISH-COURSE tkb:FOOD tkb:NEW-BF-COURSE tkb:DOVER-SOLE Bindings rdf:type tkb:DOVER-SOLE tkb:EDIBLE-THING rdf:type tkb:DOVER-SOLE rdfs:Resource rdf:type tkb:DOVER-SOLE tkb:CONSUMABLE-THING rdf:type tkb:DOVER-SOLE daml:Thing rdf:type tkb:DOVER-SOLE tkb:BLAND-FISH rdf:type tkb:DOVER-SOLE tkb:SEAFOOD rdf:type tkb:DOVER-SOLE tkb:FISH The next two slides will show the DQL protocol messages that were used.

Example: Inferences using toClass and hasValue (cont.) This is the request message that was sent for this query. <SOAP-ENV:Envelope> <SOAP-ENV:Body> <dql:query> <dql:premise> <rdf:RDF> <rdf:Description rdf:about="wines.daml#NEW-BF-COURSE"> <rdf:type rdf:resource="wines.daml#BLAND-FISH-COURSE"/> </rdf:Description> <tkb:FOOD rdf:resource="wines.daml#DOVER-SOLE"/> </rdf:RDF> </dql:premise> <dql:queryPattern> <rdf:Statement> <rdf:predicate rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/> <rdf:subject rdf:resource="wines.daml#DOVER-SOLE"/> <rdf:object rdf:resource="http://www.daml.org/2002/10/dql-variables#x"/> </rdf:Statement> </dql:queryPattern> <dql:mustBindVars> <var:x/> </dql:mustBindVars> <dql:answerKBPattern> <dql:kbRef rdf:resource="wines.daml"/> </dql:answerKBPattern> </dql:query> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Example: Inferences using toClass and hasValue (cont.) This is the response message that was sent for this query. <SOAP-ENV:Envelope> <SOAP-ENV:Body> <dql:answerBundle> <dql:queryPattern> <rdf:Statement xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:predicate rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /> <rdf:subject rdf:resource="wines.daml#DOVER-SOLE" /> <rdf:object rdf:resource="http://www.daml.org/2002/10/dql-variables#x" /> </rdf:Statement> </dql:queryPattern> <dql:answer> <dql:binding-set> <var:x rdf:resource="wines.daml#EDIBLE-THING"/> </dql:binding-set> </dql:answer> <dql:binding-set> <var:x rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </dql:binding-set> <dql:binding-set> <var:x rdf:resource="wines.daml#CONSUMABLE-THING"/> </dql:binding-set> <dql:binding-set> <var:x rdf:resource="http://www.daml.org/2001/03/daml+oil#Thing"/> </dql:binding-set> <dql:binding-set> <var:x rdf:resource="wines.daml#BLAND-FISH"/> </dql:binding-set> <dql:binding-set> <var:x rdf:resource="wines.daml#SEAFOOD"/> </dql:binding-set> <dql:binding-set> <var:x rdf:resource="wines.daml#FISH"/> </dql:binding-set> <dql:continuation> <dql:termination-token> <dql:none/> </dql:termination-token> </dql:continuation> </dql:answerBundle> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Conclusion DQL provides a powerful agent-to-agent communication framework to enable reasoning and inferencing using DAML+OIL documents on the Semantic Web. Its XML based syntax allows agents to communicate using Web Services protocols and enables devices with little computing power to leverage the reasoning capabilities of servers with more computing power. JTP provides a powerful reasoning engine with its framework of reasoners, with both a general-purpose first-order logic theorem prover and a suite of special-purpose reasoners. Its ability to reason using DAML+OIL makes it an ideal engine to power a DQL server.

For More Information http://ksl.stanford.edu/projects/dql/ For more information, or a copy of this slideshow, please see: http://ksl.stanford.edu/projects/dql/ For a live demo, please see: http://onto2.stanford.edu:8080/dql/servlet/DQLFrontEnd