PIQ - A Tool for Querying SHOE

. . . Back to The SHOE Home Page

S  H  O  E :  Simple HTML Ontology Extensions

PIQ - A Tool for Querying SHOE

Parallel Understanding Systems Group
Department of Computer Science
University of Maryland at College Park


Introduction

The Parka Interface for Queries (PIQ) allows users to construct queries graphically, and issues them to a PARKA knowledge base. When used with Exposé, the interface gives users a new way to browse the web by allowing them to submit complex queries and then open documents by clicking on the URLs in the results.

PIQ Applet

This applet will connect you to a PARKA Knowledge Base that contains knowledge gathered by Exposé. Currently, this KB contains information on four different computer science departments, but the most detailed information is on the PLUS lab, its members, and their publications and research. You may want to look at the CS Department Ontology to understand the kinds of relationships and categories you can query with.

This software is still under development. As such, it is subject to change at any time. If you find any bugs or have suggestions for improvement, send e-mail to Jeff Heflin.

An older version of PIQ for binary knowledge bases (those that only have relations with two arguments) is available here.

Parka Interface Tutorial

Below is a short tutorial on how to use the Parka Interface. For a more detailed description of its function see the Parka Interface Documentation

Press the button above. After a short wait, the Parka Interface window will appear. In the status bar beneath the Menu, it should say "Finished Loading nshoekb". To the left of this is a toolbar which consists of an arrow, a box, a rectangle split into three parts, and a diagonal line. These tools are used as follows:

  • Arrow: Used to select and move objects in the Query Window.
  • Box: Used to create new frame objects. These objects are used to specify the constants and variables in your query.
  • Rectangle: Used to create new relations.
  • Line: Used to link a relation argument to a frame object. These are used to assign variables or values to the arguments of a relation.
Below this area is the Query Window. This is a large white space and is used to construct your queries. Below this is the Query Results window.

Creating a Query

To create a frame object, select the box tool. Now click in the query window to place the new object. Type a name for the object in the status box and press return. If you want this object to represent a constant constraint on your query, select the the check box to the right of the name. Note that when you do, the object's corners go from rounded to square. This is because variable objects have rounded corners and constant objects are rectangles. Repeat this for each frame you wish to create.

To create a relation, select the rectangle tool. Click a location in the query window to place it. A dialog window will display the list of predicates you can use. Select one and press OK. In addition to the relations loaded from the ontology, every Parka KB has a set of standard relation. Definitions of these are given in the Standard Relations section below.

To create an argument link, select the line tool. Click on one of the squares of the relation and drag to one of the frame boxes that you have created. Each relation square represents an arguments, the leftmost is the first argument.

After all objects have been created and linked with the appropriate relationships, select Parka, Submit Query from the menu bar. A Query results window will appear, but you may have to enlarge it to get a better look at the results (this can be done by using the square, white slider on the left slide of the window). A separate row will be returned for each set of variables that can be bound to the conditions specified in your query. If you click on a row, the corresponding bindings will be shown in the Query Window. If you double-click on a URL, a new browser window will open, and the corresponding web page will be loaded.

Example Queries

Below are some queries you might like to try on the SHOE Knowledge Base:

  • Find all of the members of the Parallel Understanding Systems group. Your query should look something like this. When the results have been returned, double-click on the URLs of the various members to see their homepages.
  • Find the titles and types of all Publications who's research topic is SHOE. Your query should look something like this. Once you have retrieved the results, click on some publications' URLs to view them. If you structured your query as we did our example, take a look at the type variable. This specifies exactly what kind of publication each is. In fact, none of these publications were explicitly declared to be Publications. Instead, this is inherited from the fact that they are Specifications, Conference Papers or Software. That's why we have to use the everyInstanceOf link between the constant Publication and the variable pub.

Standard Relations

Every Parka KB has a set of standard relations. These are:
isa
The first argument is a subcategory of the second argument.
instanceOf
The first argument is explicitly declared as a member of the category in the second argument.
subCat
The second argument is a subcategory of the first argument.
instance
The second argument is is explicitly declared as a member of the category in the first argument.
everyInstanceOf
The first argument is a member of the category in the second argument, either directly or by the transitivity of category membership.
everyInstance
The second argument is a member of the category in the first argument, either directly or by the transitivity of category membership.
stringMatch
True when the second argument matches the first argument. The percent sign ('%') can be used as a wild card in the second argument.
gt
The first argument is a number greater than the second argument.
lt
The first argument is a number less than the second argument.
eq
The first argument is a number equal to the second argument.
inRangeOf
look this up