Highlights
• Navigate large graphs in a user friendly way
• Automatically derive SPARQL and Prolog queries from
interesting patterns on the screen.
• Discover links between nodes automatically
• Use a real AI language to explore the graph (Prolog)
• And some other goodies
– Programmatically control Gruff over http
– Show pictures for nodes.
11 short lessons
1. Download the right Gruff (standalone vs server version)
2. Manage triple stores
– Import triples, display triples, freetext index triples.
3. Graph view: see triples as nodes and links
4. Table view: see triples as objects in tables
5. Outline view: see triples as hierarchies
6. Query view: writing SPARQL and Prolog for real men
7. Visual Query builder: build queries using point and click
8. Visual Discovery: build queries using patterns on the screen
9. Control Gruff through REST
10. Use pictures on nodes
11. Server edition of AllegroGraph and Gruff.
[1] Download the right Gruff
Franz provides two version of Gruff
• Version 5 for AG 33
– Standalone, AllegroGraph built in.
– Works on all platforms: Windows, Linux, Mac, 32 bit and 64 bit.
– Perfect for exploring small and medium sized datasets
• Version 5 for AG 4.10
– For very large datasets and production systems
– If you need an enterprise database with transactions and ACID
behaviour, backup, restore, point in time recovery, warm failover,
triple level security, server side javascript etc etc.
– Windows/Mac/Linux client for AllegroGraph server edition
– And if you need SPARQL 1.1 and SPIN
[2] Manage your triple store
• Create a new triple store (file menu)
– Make sure you fill in your machine name for local triple
stores
• Load triples from a file or the web (file menu)
• Display all triples up to a limit (display -> display all triples up to a limit)
• Remove all triples from screen (‘z’ till blank, or ctr-alt-x)
• Create free text index (display -> edit freetext predicates)
• Search for something using freetext (;)
[3] Graph View ‘G’
• The view you’ll spend 80 % of your time in (well, I do)
• Some easy starters to get something on the screen
– Using freetext indexing (;)
– Display all triples up to a limit (display menu)
– Do simple SPARQL query in query screen (w) .. Select * where { ?x a ?y . } limit 10 ..
Click on ‘create-visual-graph’
– Display triples by type (display menu)
• Select the predicates to show on the screen (p)
• Explode nodes (f)
• Going back to previous state (z)
• Reorder graph ( r )
• Nudge the graph (d)
• Zoom in and out (middle wheel mouse, or use , and .)
[3] Graph View ‘G’ continued
• Explode node by right-clicking and choosing from a menu or a tree
• Delete nodes from the screen (x)
• Delete all nodes from the screen (ctr-alt-x)
• Eraser mode (ctr-shift-x)
• Remove orphans (shift-o)
• Show full namespaces (shift-8 .. Not F8)
• Show predicate names on screen (n)
• Find shortest path (shift-f)
– Pin nodes, or graph might change too much (i)
– What if you can’t find a path? Choose more predicates
and sometimes less
– Create larger time window to search
– Buy more memory and solid state drives for your laptop
– Check in table view if one of the nodes has the right predicates
[3] Graph View ‘G’ continued
• Sometimes you don’t want to see the node labels (ctr-8 or
– Visual-graph-options -> node labels -> use label preds for nodes)
• You can add your own node labels.. Very useful
• You can always see the full URL of a node left under the screen
• Double click on node to go to table view (or hit ‘t’)
• Go directly to outline view from selected node (o)
• Save a graph layout to disk (ctr-s)
• Load a graph layout (ctr-l)
• Graph layouts are simple text files and can be shared
[4] Table View ‘T’
IF YOU WANT TO SEE YOUR TRIPLES IN A TRADITIONAL TEXTUAL TABLE
• Navigate the data by clicking on ‘values’
• Above gray line: s p o (where s is the main node we selected)
• Under gray line: o p s (note the ‘is’ predicate ‘of) to denote
the other direction
• Note how ‘8’ shows you full URLs of nodes
• Note how ‘Alt-8’ shows you how we use node-labels
• You can create triples in the table view, see manual…
[5] Outline View ‘O’
IF YOU HAVE DEEP HIERARCHICAL DATA AND YOU NEED TO RETAIN THE CONTEXT
WHILE NAVIGATING.
• Navigate the data by clicking on little arrows
– Blue: outgoing triples
– Black: triples pointing to previous level (not the ‘is’ … ‘of’
around the predicates
• Display:
– Note how ‘8’ shows you full URLs of nodes
– Note how ‘Alt-8’ shows you how we use node-labels
• You can create triples in the table view, see manual…
[6] Query View – ‘W’
• Write queries in SPARQL and Prolog – by writing code
• Use namespace abbreviations (b) to avoid typing prefixes
• Turn output into Graph or CSV
• Managing queries
– Save queries (ctr-s)
– Load queries (ctr-l)
• Investigate menu … query options
– One can change the time limit..
[7] Visual Query Editor ‘E’
• Build queries visually – no code!
• Most things work like the graphical query view
– Search for freetext (;)
• Right click on screen to create new variables
• Right click on variables to create new predicates with drag
and drop
– Multiple ways to choose names of predicates.. See menus
[8] Discovery: using patterns on
the screen to build queries
• Create interesting patterns on the screen using everything
you learned so far
• Find a trail that you think is interesting
• Highlight each node in trail (ctr-left-click or ‘h’)
• Move highlighted nodes to query editor (ctr-alt-h)
• Change some variables
[9 ]Controlling Gruff
programmatically through HTTP
• Start Gruff as a server:
– Global options -> communications -> start http:server
• Documentation:
– F1 in Gruff, search for http
• Two very simple examples:
– http://localhost:8000/update-layout?redo=yes
– http://localhost:8000/store-info?attribute=store-name
• And a slightly more complicated one: finding links between two nodes
• http://localhost:8000/find-
paths?node1=http%3A%2F%2Fwww.cyc.com%2F2002%2F04%2F08%2Fcy
c%23economicStability&node2=http%3A%2F%2Fwww.cyc.com%2F2002%
2F04%2F08%2Fcyc%23CoalitionPartnerFieldOPSSecretLAN-
DASSA&predicates=current&keep-old-nodes=yes
[10] Using Pictures for Nodes
• Tell Gruff what predicate to use for pixmaps
– <jans> <pixmap> “pictureOfJans.ico”
– Global-options -> node label predicates -> custom predicates for node label pixmaps.
• And tell Gruff the base location of your pixmaps
– You can use relative filenames
– You can use jpg png bmp ico
– Global-options->miscellaneous->document base folder
[11] Using Gruff with the Server
• First: install Server, or VM or use Hosted version…
[11] Using Gruff with the Server
• Second: download Gruff client for Server
• Find the ip address of the server (if you don’t have fixed ip)
Road Map
• Connecting with other triple stores
• Circle Views, Hierarchical Views, etc
• Statistical Analysis and Business Intelligence functionality
• Bayesian belief networks
• Extensive support for GeoSpatial, Temporal and Social Network Analysis in
SPARQL
• Tell us What You Want.