"Toolchest" Example Application

This application demonstrates several types of queries against several RDF models stored in different formats.  This application runs inside cocoon.

All files used to define this application are found beneath the peruser source distribution at the path:    PERUSER_SRC/app/toolchest.

Our demo site hosts this online demonstration of Toolchest queries, with additional documentation.

Interactive Demonstrations

  • HTML result grid showing all 542 tools in the dataset.
  • HTML result grid showing just the "fancy" reasoners which are written in Haskell, LISP, or Prolog
  • HTML result grid showing just the "applications" (according to our taxonomy) which are written in Java
  • Ugly HTML form to edit an XML description of the tools you want to see, and submit to see the results.  (Instructions still needed)

Cocoon Sitemap

Data Files

As a starting point, we use an RDF dataset of semantic tools called "Sweet Tools", compiled and maintained by Michael Bergman.  (Our thanks to Mike for this very useful piece of work!).    You can browse that toolset, and/or download the RDF for yourself, by going to his Sweet Tools page.  We are currently using version 9 of this dataset, published on 2007-06-19, which contains descriptions of 542 Semantic Web related software tools.

This dataset is distributed under the terms of  the Creative Commons Attribution-Noncommercial-Share Alike License, version 2.5.

The Toolchest application allows the user to query this dataset, and view the returned subset of tools, filtered and sorted according to the user's preferences.  The user is able to specify filter criteria along two axes:

  1. Functional category of tool.
  2. Programming language the tool is primarily written in.

In the sw_tools datafile, the Category and Lanuage  values are RDF-literal properties that take on string values.   In more formal versions of this demo, we alias those strings with URI's, but that step is omitted here to keep our descriptions short and to the point.

File (+ Link)

Description

sw_tools_070619_utf8.rdf

Sweet Tools dataset - version 9.  Our only change was to re-encode the file using UTF-8.

toolCategories.owl

OWL model containing a taxonomy of tool categories. 

  • Leaf categories are modeled as individuals, each of which has a "bergmanLabelPrefix" property that links it to the "Category" property used in the sw_tools file.
  • Branch categories are modeled as classes, which contain all subclasses and individuals as "subcategories".    

This model was created in Protege.  Since it is just a taxonomy, it could just as well be defined with RDFS as with OWL.  Such a taxonomy could also be hand-edited in TURTLE format.

find_applications_in_java_or_ruby.xml

XML document containing a simulated user choices model.  This model indicates the user's interest in certain tool categories and languages.  Normally, these would be sent by a client based on a user's GUI selections.  Often clients will send a simple XML dialect that is transformed into RDF/XML.  In this case, the RDF/XML model is represented verbatim in the contents of the  "<pmd:model_set>" tag. 

toolchestCommands.owl

A set of command frames, represented as RDF.   These commands configure the peruser to do demonstration tricks on our behalf.

This file was created by the peruser team, using Protege.

If you want to create these by hand, it's easier to use the TURTLE format!

SPARQL Queries

SPARQL Query File

Description

Demo Output

all_swtools.sparql

Trivial query that returns ALL tools in the Sweet Tools model.

RUN_DEMO

fancy_reasoners.sparql

Simple query to find all the "fancy" reasoner tools written in Haskell, Prolog, or LISP.

All filtering options are hardcoded into the query file.

RUN_DEMO

filtered_swtools.sparql

More complex query which uses several named graphs and RDFS inference.  See the online demo page for details.

RUN_DEMO

XSLT Transforms

File

Description

filteredToolMatrix.xslt

Transforms the SPARQL XML Results Format produced by any of these queries into a more concise application-specific XML format.

renderToolMatrixAsXHTML.xslt

Transforms the application-specific XML format into HTML for display. 

settingsTreeToModel.xslt

Turns a simplified user-choice description syntax into an RDF model suitable for processing by the filtered_swtools.sparql query.  
When you send a query from a web client, the first step in processing is usually to run that query through this transform.

toolCategoryTree.xslt

Supplementary stylesheet used to render our taxonomy tree, after it is output by the Peruser "projector" module.