Gruff: A Grapher-Based Triple-Store Browser for AllegroGraph
"Thanks for writing Gruff - I had just about made the decision
to write my own RDF browser and then I found out about Gruff!
Gruff is far better and easier to use than anything out there." - M.H., a commercial user
Introduction
The free-form nature of triple-stores offers a lot of flexibility
for constructing databases, but that freedom can also make it less
obvious how to find arbitrary data for retrieval, error-checking, or
general browsing. Gruff is a freely downloadable graphical
triple-store browser that attempts to make data retrieval more
pleasant and powerful with a variety of tools for laying out cyclical
graphs, displaying tables of properties, managing queries, and
building queries as visual diagrams.
Use gruff to display visual graphs of subsets of a store's resources
and their links. By selecting particular resources and predicates, you
can build a visual graph that displays a variety of the relationships
in a triple-store. Gruff can also display tables of all properties of
selected resources or generate tables with SPARQL queries, and
resources in the tables can be added to the visual graph.
The paragraphs below describe select features of the latest versions
of Gruff. For a complete listing of the new features, see
the Release History
New in Version 5: Spring Layout View
Gruff was originally designed to view and investigate portions of
the graph using a constraint-based algorithm which specialized in
avoiding any overlapping between nodes and links This makes viewing
the graph more usable and clear (to the user) which nodes are linked
by each link line.
The constraint-based algorithm while better for clear viewing of
the graph requires more RAM when you want to view a very large
graph on screen. With Gruff v5 we have added a spring layout
algorithm which is used for larger graphs to find a layout much more
quickly, though it does not attempt to prevent nodes from overlapping
link lines.
The two approaches are configurable via the
Gruff commands so the user can define when the layout will switch from
a constraint-based algorithm that's used for smaller graphs to a
spring algorithm that's used for larger graphs.
Screenshots
New in Version 4: Outline View
There is a new outline view for browsing and editing linked nodes
as an indented outline. It is especially useful for viewing
hierarchies of nodes such as those using rdfs:subClassOf or
skos:narrower predicates, and editing them by shifting nodes around
(perhaps while adding new nodes as well). See this tutorial for Building a
Hierarchy from Scratch in the Outline View.
Store Editing for Creating and Deleting Triples
See the various commands on the new Edit pull-down menu and on the new
right-click pop-up menu in the table view. A property value in the
table view can be edited in place or replaced with an existing node
that you select in one of several ways. You can create or edit an
object "by type", where Gruff will add suggested rows to the table for
predicates that other objects of the same type have, and for
predicates that define that type as their domain or range. Edits can
be undone and redone.
RDFa - Capture From Websites
From
Wikipedia: RDFa (or Resource Description Framework - in -
attributes) is a W3C Recommendation that adds a set of attribute
level extensions to XHTML for embedding rich metadata within Web
documents.
New in Gruff is the ability to Load Triples by Extracting Triples
from RDFa. With a triple store open, you enter the URI of the web page
that holds the triples in RDFa format. You can optionally specify the
Named Graph to load the triples into, or use the default graph. You
can then display the triples in this version of Gruff.
RDFa Capture Screenshots
Information being extracted from http://www.franz.com.
For a complete listing of the new features in Gruff, see the Release History
Graphical Query View
The View menu has a new Graphical Query View command to switch to
the new view (shortcut is E). In this new view you mainly use pop-up
menus rather than menu bar commands, by right-clicking the background,
nodes, and link lines to see their various context-sensitive
menus.
The Graphical Query View allows creating queries as diagrams of
nodes and links. A query diagram can include actual objects from the
store, which you select as in other views, while other nodes and links
represent query variables. Group graph patterns such as UNION and
OPTIONAL groups can be laid out as grouper boxes that can be nested to
any level, with proper nesting maintained automatically.
Once you've created a query diagram, Gruff will generate either
SPARQL or Prolog code for the query. Seeing the generated query text
can help you learn to write SPARQL or Prolog queries better. You can
also edit the generated text before performing the query. You can save
queries either as graphical diagrams or as actual query text, and load
them any time later for modification into related queries. You can
even generate a visual graph from query results, showing the network
of all triples that are comprised of nodes and predicates that are in
the query results and the query itself.
Graphical Query View Demonstration
The demonstration video is also available in .wmv format here.
Gruff is an interactive triple-store browser, query manager, and
editor that is built on AllegroGraph. Information can be browsed as
visual graphs of nodes and link lines that are layed out
automatically, and also as tables of properties for particular
nodes. Queries can be written textually as SPARQL or Prolog code, or
designed graphically as diagrams of nodes and link lines. Data can be
created and edited by filling in tables of property values. The
various views and tools are tightly integrated to facility rapid
browsing, querying, and editing.
The graph view displays a "visual graph" of a subset of the nodes
and links that are in the store that you are currently browsing. The
nodes are automatically arranged (or "layed out") to make the
relationships readable. The layout algorithm specializes in cyclic
graphs that are common in triple-stores, which often express many
relationships between various objects. The algorithm avoids link lines
that pass through unrelated nodes, so that it is easy to spot all of
the nodes that are linked with any other node. A node in the graph
view is a labeled box that represents a resource or literal in the
store. A link is a straight line segment between two nodes that
represents one or more of the triples that link those nodes.
The table view displays a table of all of the properties of a
single node, which is known as "the displayed node". You can browse
from that node to linked nodes in the usual hyperlink way, and edit
the property values. Each row of the table represents a single triple
that's in the store.
The query view displays a view where you can do a SPARQL or Prolog
query and see the results in a table. Nodes in the results table can
then be viewed in detail in the table view, or added as nodes to the
graph view. To do a query, first decide whether you want to do a
SPARQL query or a Prolog query, and select the corresponding radio
button at the upper left.
The graphical query view allows devising a query "visually" as a
diagram. This is done by arranging node boxes and link lines that
represent triple patterns in the query, where the triples patterns can
contain variables as well as actual objects that are in the store. A
hierarchy of group graph patterns can also be specified be wrapping
nested grouper boxes around sets of nodes. General and specialized
filters can be specified as well. A SPARQL or Prolog query can then be
automatically generated from the diagram and executed as usual in the
query view.
Gruff can also be used programmatically, and can be built into a
standalone application. This allows calling Gruff functions to build a
visual graph with more complete programmatic control.