Gruff Release History

Version 7.4.0
  • The new command "File | Connect to Gruff Demo Server" lets you try out Gruff on the "extended actors" database at a public AllegroGraph server that's provided by Franz, when you don't have an AllegroGraph server yourself. See the Example button in the query view and in the graphical query view for a few example queries. "Help | Animated Demo" also works there.
  • The graphical query view has new grouper boxes for graph group graph pattens, either for a particular graph or for a graph variable.
  • The graphical query view now has node filters for the SPARQL operators IN and NOT IN (for limiting a node variable to a particular set of values), for langMatches (for selecting only literals of a particular language), and for CONTAINS, STRSTARTS, and STRENDS (for finding literals that contain specified text). Also, the "bound" and "not bound" filters were broken, and the LIMIT and OFFSET values will now be included when saving a graphical query.
  • Gruff can now connect to AllegroGraph servers through an HTTP proxy (as was possible with SPARQL endpoints already). See Global Options | Communications | HTTP Proxy.
  • Fixed: Text searches were broken when browsing a federation.
  • Fixed: The command "File | Miscellaneous | Apply RDFS++ Reasoner" led to user queries freezing Gruff.
  • Additional triple file formats can now be loaded with the new commands "File | Load Triples | Load JSON-LD", "Load TriG", and "Load N-Quads Extended". Corresponding new commands are also on the "File | Export Displayed Data As" child menu. Also, the new command "Global Options | Miscellaneous | Commit Frequency When Loading Triples" lets you control whether and how often commits will happen during loading.
  • The query view's "Create Visual Graph" button will now create link lines for additional SPARQL property path operators, namely InversePath ( ^ ) and AlternativePath ( | ). And it will draw the correct character for ZeroOrOnePath ( ? ). (See "Query Options | Show Links for Property Paths in Visual Graphs" for turning this off.)
  • If the triple store defines label properties for predicates, then Gruff will now display those labels for the predicate objects as it has always done for nodes, as long as "Global Options | Node Label Predicates | Use Label Predicates for Node Labels" is on.
  • When "Visual Graph Options | Node Labels | Show Full URIs on Nodes" is on, full URIs will be also displayed for the predicates in link labels. And full URIs will be shown in the legend as well.
  • Fixed: When Gruff displays images in node boxes, they were slow to draw if the original images are large, even when the node boxes are small.
  • JSON literals will now appear as multi-line indented text in the outline view's tooltips, as was true already in cells of the table view and node boxes of the graph view.
  • If you warm up triples and/or strings, either from the "Open Triple-Store" dialog or from the standalone command, it will be done in a background process so that you can proceed with browsing if the warming up takes a while in a very large database.
  • The new command "Layout | Minimize Canvas Size" makes the canvas only as large as the graph pane in one step, rather than using "Link | Make Canvas Smaller" multiple times, to force layouts to fit within the visible area.
  • Fixed: "Link | Display Linked Nodes from an Outline" should not have avoided displaying the selected links in one direction when "Link | Triples to Include | Include Triples as Subject Only" (or as object only) is enabled, because you explicitly selected them in the outline.
  • Fixed: Presenting results in the query view could be slow when "Query Options | Allow Other Work During a Query" is enabled.
  • File | Save [View] will now default the file name to where you last saved it so that you don't need to keep typing it again, for example while building a graphical query and saving it frequently. In the query view it will also set the displayed query name to be the file name.
  • Doing a tree layout will now unpin any pinned nodes that are in the tree, because the tree layout requires that they be moved. (This is also true for "Link | Display Only Paths Between Two Nodes".)
  • Fixed: Attempting to display the children of an item in the outline view (see "Link | Display Linked Nodes for the Current Predicates") did nothing at all when there are no current predicates. Now it will prompt you to select the current predicates.
  • Fixed: The graphical query view generated non-working query text when the whole query is inside a single grouper other than a UNION or "general" grouper.
  • Fixed: Label properties did not get used for the type nodes that are displayed in the graph view's legend. And the node labels in the legend did not get updated when user options that affect them are changed.
Version 7.3.0
  • When the value of a node is a JSON literal, the value will be displayed as multi-line indented text in the graph view and the table view.
  • A node will now display its skos:prefLabel if it has one, and otherwise its rdfs:label as before if it has one (assuming that "Global Options | Node Label Predicates | Use Label Predicates for Node Labels" is on).
  • Fixed: Changes that are made to the database with INSERT and DELETE statements in user queries in the query view did not get saved if the recent option "Query Options | Allow Other Work During a Query" is turned on, as it was by default. It now works when that option is on by doing automatic commits, and that option is now off by default to avoid silent commits that some users may not want.
  • When "Global Options | Communications | Use Dedicated Sessions" is on but a dedicated session with its own port could not be used, perhaps due to a firewall, then AllegroGraph 6.5.0 or later will automatically use the main port instead, and Gruff will display a message about what happened.
  • Fixed: Sometimes a node's tooltip in the graph view would be too tall or too short by one text line, clipping the text off when it's too short. Also, when using the time bar, node tooltips that contain text for multiple timestamps are formatted more nicely.
  • Fixed: On the Mac, when selecting multiple choices from a list in various places, it was not possible to toggle individual choices with a control-click (or any other way). This includes when selecting a subset of found paths or text search matches or linked nodes to display, and when selecting a set of triple-stores to open as a federation.
  • Fixed: When "Global Options | Miscellaneous | Treat Literals as Objects" is on, some literal nodes in the graph view were drawn with the background color for resource nodes that have no type (light gray by default) rather than with the color for literals (yellow by default).
  • Fixed: When browing a single graph, "Display | Display an Instance Node by Type" had included predicates from other graphs (which if selected would then tell you that there are no triples for that predicate).
  • When browsing a single graph, "Display | Display Some Sample Triples" now selects triples from only that graph rather than from from the whole database as before.
  • The graphical query view has new buttons for specifying FROM and FROM NAMED graphs.
  • The new option "Query Options | Show Links for Property Paths in Visual Graphs" can be turned off to exclude link lines for property path matches in visual graphs that are generated from query results.
  • When selecting a predicate from a list of common predicates (as when adding a predicate link in the graphical query view), some additional predicates (mostly from SKOS) are now included in the choices.
  • Fixed: The outline view could get confused and even break in certain cases when using "Hide Sibling Triples for the Same Predicate" (from the navigation pop-up menu) and then showing the siblings again.
  • Fixed: In the outline view, Control+J and Control+K could not be used for shifting an outline-item upward and downward (as shown on the pop-up editing menu) because those keystrokes are used by commands on the Display menu. Those commands now use different keystrokes.
  • Some of the commands in the HTTP interface to Gruff had become broken, and the whole HTTP interface had never been thread-safe until now.
  • The HTTP interface to Gruff can now invoke the tree layout command.
  • Fixed: The triple count that's displayed in the title bar was not updated after doing a rollback.
  • Fixed: The initial "getting started" message in the graph view did not scroll correctly.
  • The Remaining Changes Are Specific to SPARQL Endpoints
    • Fixed: When used with SPARQL endpoints that do not include triples from named graphs in the default dataset for SPARQL queries, Gruff generally browsed only the default graph.
    • Gruff could not connect to a SPARQL endpoint that requires HTTPS.
    • The path-finding commands now work with Stardog SPARQL endpoints because Stardog provides a custom API for requesting path-finding in a single query.
    • The new option "Global Options | SPARQL Endpoints | Parameter String for All Queries" allows including arbitrary values in every SPARQL query that Gruff sends, such as "reasoning=true" to tell a Stardog server to include inferred triples.
    • When browsing a single graph at a SPARQL endpoint, the title bar will display the name of that graph (as with AllegroGraph before).
    • When connecting to a SPARQL endpoint fails with status 401 (unauthorized), Gruff will now tell you that you may need to toggle "Global Options | Communications | Use Digest Authentication".
Version 7.2.2
  • Fixed: Gruff through version 7.2.1 was not compatible with a change in AllegroGraph 6.4.2. One symptom was that all user queries in the query view broke. So this release of Gruff is largely for compatibility with AG 6.4.2 and beyond.
  • Fixed: Gruff could hang in the query view when the query contains invalid SPARQL. (This was a bug in the recent enhancement that allows canceling a SPARQL query at any time.) Also, the dialog that appears on a query error would go away when the query timeout still occured later.
  • Fixed: If a query constructs text values, such as with the clause "BIND(concat(?first, ' ', ?last) as ?fullName)", then it could fail to display those constructed values correctly in Gruff 7.2.1 only. This was an artifact of a recent enhancement that allows continued browsing while waiting for a long query.
  • Fixed: The menu of nodes that's shown by the command "Display | Display an Instance Node by Type" could be very confused if the sort order of the label properties of the nodes is significantly different than the sort order of the labels that are otherwise derived from the URIs.
  • Fixed: If a "File | Roll Back and Refresh" is done and that changes some label properties, Gruff could continue to display the previous label properties (due to not uncaching them).
  • Fixed: If you load triples into a new empty triple-store in Gruff, Gruff would not realize that there are rdfs:label properties in the triple-store and display them until you re-open the triple-store.
  • Fixed: The command "File | Load Triples | Load Turtle" was broken on some versions of AllegroGraph. Fixed: On Mac and Linux, you could not tab to the Scheme widget in the dialog for opening a triple-store. And you could not Shift-Tab to move to the previous widget.
  • Fixed: Saving a layout in the graph view would break in the obscure case where (1) the option "Visual Graph Options | Layout Options | Do Automatic Incremental Layouts" has been turned off and (2) a node had multiple node pictures (due to having many links) and (3) nodes were removed from the display such that one of those multiple node pictures had no remaining links.
Version 7.2.1
  • This release is needed for queries in the query view to work on AllegroGraph 6.4.0 and beyond.
  • The new option "Query Options | Allow Other Work During a Query" allows doing work in other views while waiting for a long query to finish in the query view.
  • Clicking on a predicate in the query results table will now show triples for it in the table view if that predicate is also used as a node in any triples.
  • Fixed: Displaying a Triple ID node in the table view could break in certain cases.
Version 7.2.0
  • The new command "Global Options | Show Non-Default Option Values" lists option values that you have changed from their defaults. That may be useful for finding options that you might like to revert to their default values without reverting all options. (This list will also be included in any bug report that Gruff generates.)
  • When using "View | Go Back" and "View | Go Forward" in the graph view, if "Visual Graph Options | Layout Options | Animate Layouts" is enabled then the nodes will slide smoothly from one history state to the next.
  • Path-finding will now display paths that contain literals even when "Global Options | Miscellaneous | Treat Literals as Objects" is off (as it is by default).
  • If you turn off the new option "Visual Graph Options | Inclusion Options | Include Literals of All Languages", then commands on the Link menu will add literal nodes to the visual graph only when they have no language or their language tag is the "Global Options | Miscellaneous | Preferred Language".
  • The option "Global Options | Node Label Predicates | Label Property Language" has become the more general "Global Options | Miscellaneous | Preferred Language". It also has a new "Other" choice at the bottom for specifying any language, rather than being limited to the several choices in the list. (And the more obscure "Global Options | Localization Language" has been moved into the Miscellaneous child menu.)
  • The Global Options menu has two new child menus called "Node Label Type" and "Font". Like the "Timeouts" child menu that was already there, these new menus contain options that appear elsewhere on the menu bar in scattered places, and are simply grouped in a different way on these new menus to make it easier to find all of the options of their kind.
  • The keyboard shortcut for doing a tree layout is now T with no shift key, to correspond to the other layout commands that also use no shift key. This means that the keyboard shortcut for going to the table view is now B instead of T.
  • The new option "File | Load Triples | Base URI for RDF/XML and Turtle" allows you to specify the base URI that will be passed to AllegroGraph when using the commands for loading triples from RDF/XML files or turtle files.
  • Changes to the time chart: (1) Fixed: The time chart could break in certain cases while adjusting the time bar range or resizing Gruff while the time chart is present. (2) The time chart has been improved sylistically, such as by placing each date label in the middle of its time range rather than at the beginning of it. (3) The new command "View | Optional Graph View Panes | Show Time Chart" (with its keyboard shortcut) allows more quickly toggling the time chart on and off than by clicking the button for it on the time bar.
  • The new option "Visual Graph Options | Finding Paths Between Nodes | Maximum Paths to Find" causes path-finding to return if it has found that many paths, to avoid wasting time finding additional paths that you would not display anyway. This option will not have an effect until AllegroGraph 6.3.1 is out and Gruff is built on it.
  • Fixed: A query could fail on Mac or Linux if the query string was pasted into the query widget and it contained any CR/LF newlines.
  • Fixed: Canceling a SPARQL query was breaking. Also, on Windows Gruff did not notice the cancel until you did something like moving the mouse that would cause a mouse or keyboard event to be handled.
  • Fixed: Loading a layout that has multiple nodes that have the same literal value would initially misposition all of those nodes at the same spot.
Version 7.1.0
  • Gruff 7.1 features a new time bar, which can be toggled on with the new command "View | Optional Graph View Panes | Show Time Bar". The time bar is used to compare nodes that have date (or date-time) properties, showing how nodes follow each other and overlap in time. It can also temporarily filter nodes from the display when they do not lie within a specified time range. There are several time bar options on the new "Visual Graph Options | Time Bar" child menu.
  • Holding the mouse cursor over a node in the overview pane (the scroller pane at the lower left of the graph view) now displays the label of that node just above the overview pane. That may help find a node that you want to scroll into view. The overview pane will also draw the selected node in red and larger.
  • The right-click pop-up menu for the node icons in the legend contains two new commands for highlighting or unhighlighting all of the matching nodes.
  • The documentation includes a new mini-tutorial for the time bar. See "The Time Bar in the Graph View".
  • Fixed: This pertains to turning on "Visual Graph Options | Inclusion Options | Show 2 Levels of Nodes on Display Only Linked Nodes" and then using "Link | Display Only Linked Nodes". In the typical case where there are many linked nodes that are one or two levels away and you select a subset to display, most of those nodes would appear as orphans that are two levels away without displaying the nodes in between. Now it will automatically include the middle nodes and the links to show the complete paths. Also, "Display Only Linked Nodes" is now a choice for one of the node corner commands.
  • Fixed: Two bugs had caused the legend in the graph view to temporarily not display all of its class nodes after either adding a single node to the display or copying highlighted nodes to the graphical query view.
  • Fixed: Nodes that display large pixmaps that are downloaded from the web were slow to draw, even when Gruff is drawing them at a small size.
  • Fixed: A recent bug caused pixmaps to not be downloaded from the web and displayed on nodes when the URLs are literals rather than resources.
  • Fixed: Making the legend width be near zero broke.
  • Fixed: In Gruff 6.4.3 and 6.4.4, the rdfs:label for a node was not displayed if there are custom label predicates defined for that triple-store but none of those are defined for that node.
  • Fixed: An error could occur when displaying the results of a Prolog query where some returned values are integers rather than nodes.
  • Fixed: Triple-ID reification was broken in Gruff on recent releases of AllegroGraph.
  • Fixed: The ability to use a graph-node-pane in a custom Common Graphics application outside of Gruff was broken.
  • Fixed: In release 7.0.0 on Mac and Linux, Gruff broke on startup when there is no user options file, which is the case when you haven't run any release of Gruff on that machine.
Version 6.4.3
  • The new option "Visual Graph Options | Layout Options | Slide Straight to Final State" causes layouts to first find the solution and then move nodes directly to it (when animation is enabled), rather than showing the steps of the layout algorithm itself. This option is enabled by default and would need to be disabled to return to the previous behavior. The new approach will always be used for tree layouts when animation is enabled, because there is no other animation technique for tree layouts.
  • When doing a tree layout, the new option "Visual Graph Options | Tree Layout Options | Remove Unconnected Nodes" allows no longer removing from the display all nodes that are not part of the tree.
  • Using "Layout | Redo Layout from Scratch" when there is a tree layout will now start from the tree layout rather than from scratch, since "Layout | Update Layout Incrementally" does not alter a tree layout.
  • The new option "Visual Graph Options | Node and Link Spacing | Preferred Node Width" allows overriding the default behavior that makes all nodes approximately square. Also, node boxes were not shaped correctly for wrapping text to multiple lines at dashes, and wrapping will now also be done at underscores.
  • The new option "Visual Graph Options | Spring Layout Options | Maximum Nodes for Reducing Overlapping" avoids using the neater-looking but slower variant of the spring layout when there are many nodes, to avoid long layout times for larger graphs.
  • The command "Help | Animated Demo (Actors Store)" has been updated, using the linear animation of the new "Slide Straight to Final State" option, and adding tree layouts and the query view and graphical query view. You can also press the spacebar at any time to pause and resume the demo without exiting it.
  • The new command "Link | Split Node into One Copy per Link" replaces the selected node with a separate copy for each of its linked nodes, to avoid long link lines to the single copy. "Link | Merge Multiple Copies of Node" does the opposite.
  • The new option "Table Options | Display Graph Names" allows turning off the displaying of named graph names in the table view.
  • Fixed: An infinite loop could result when a node is split into multiple copies due to many links, and then a tree layout is done, and then paths through the tree are highlighted when hovering over a node. This is a long-time bug that we had failed to solve for a while.
  • Fixed: Path-finding could error when there are blank nodes in the paths that are found.
  • Fixed: Looking up custom label properties could be extremely slow in a triple-store that does not contain any rdfs:label triples, when the store is opened in read-only mode.
  • Fixed: The command "File | Load Triples | Load Turtle" always loaded triples into the default graph, even when a named graph was specified. Also, the file dialog initially listed only *.turtle files; now *.ttl files will also be shown as suggested choices.
  • Fixed: Gruff no longer displayed node labels in the foo:bar format, where foo is a namespace abbreviation, when turning off the option "Global Options | Derived Node and Link Labels | Exclude Namespaces from Labels". Also, the foo:bar form had never been displayed with SPARQL endpoints, and that is now implemented.
  • Fixed: An incremental layout could make a tree layout look sloppy by slightly shifting nodes that are close to each other, though it should not alter a tree layout at all.
  • Fixed: Errors could result when using a SPARQL endpoint that does not support SPARQL 1.1. Gruff will now handle that case, and there will be a note in the title bar to alert users that they can't use the newer SPARQL 1.1 constructs in their own queries.
  • Fixed: The dialog for creating a new text index could fail to update the way that it prints the predicate choices after toggling various options such as "Global Options | Derived Node and Link Labels | Exclude Namespaces from Labels".
  • The new Windows installer adds items to the Start Menu and can be uninstalled the normal, Windows way.
Version 6.4.1
  • Fixed: Gruff would freeze when running on some Ubuntu machines (either virtual machines or the native OS) when doing a query in the query view (or less frequently in the store-opening dialog).
  • On the Mac, the Option/Alt key is now used for keyboard shortcuts that say "Alt" on the menu bar. The Command key had been used before. The Option key is more consistent with other applications, and conflicts with fewer global Mac keystrokes that often use the Command key. (If any of those shortcuts don't work, then please let us know.)
  • Fixed: Certain sequences of actions could lead to Gruff freezing at arbitrary times on Mac or Linux.
  • Fixed: Literals in some cases were improperly being "URI-decoded" (percent-decoded), such that a literal that contains a percent character would display a bogus character for the percent character along with the two characters before it.
  • The Delete key nows works correctly on the Mac as a shortcut for the Edit menu command for deleting a triple from the store. A few other keyboard shortcuts were changed as well that had conflicted with global Mac or XQuartz shortcuts.
  • The store-opening dialog now contains a Clear button at the bottom, which will clear the Server Machine, Port Number, User, and Password fields. When you are changing both the server and the port, using that button first will avoid a small delay when the dialog otherwise would ask the server for the lists of catalogs and stores when you have changed one of those fields but not the other.
  • The "Use Planner" button has been removed from the query view because it is no longer used in newer versions of AllegroGraph. (And so now the "Run Query" button is bigger!)
  • Fixed: Some nodes whose labels contain explicit newlines could be split into multiple lines badly, in some cases resulting in very wide nodes.
  • Fixed: In the table view and the query view's table of results, sometimes not the correct amount of vertical space was allocated for literals to be drawn completely, and URIs and typed literals could wrap to multiple text lines when they should not.
  • Fixed: When displaying a node by type, a pop-up menu had included an "All" choice that should not have been there, and which errored when selected.
Version 6.4.0
  • Fixed: In 6.3.3, dashes were not drawn where node labels are wrapped to multiple text lines and also at their start and end. This included not drawing the minus sign at the beginning of numeric literals.
  • There's a new "View | Web Interaction" child menu where all but the first command are new. Two of them will tell your web browser to search either the web or Wikipedia on the selected node's label. The other two will attempt to import either descriptions or images from DBpedia or Wikipedia (respectively) based on the selected node's label, and display them as linked nodes when any are found.
  • On the Mac, nodes can now be highlighted and unhighlighted by using the Command key along with a left click (and also dragging to "lasso" a group of nodes to highlight them). The standard gesture had not worked because the Control key is used instead, and a control-left-click on the Mac is interpreted as a logical right-click.
  • Various improvements when displaying images (pixmaps) on nodes: The new option "Visual Graph Options | Node Labels | Maximum Initial Node Pixmap Size" limits the initial size of a node that displays an image. When resizing an image node, its width-to-height ratio will be maintained to avoid distorting it. After resizing an image node you can go back to the state just before resizing it, without going back further. The icon in the lower-right corner of an image node is a resizing icon to indicate that you can drag that corner to resize the node. Fixed: Going back to an earlier state did not restore the earlier size of resized nodes.
  • Fixed: Path-finding in Gruff 6.3.3 and earlier breaks on AllegroGraph 6.1.0 and later when the user does not have the privilege for evaluating arbitrary code on the server.
  • Fixed: Doing a tree layout from a node that's connected with another copy of itself could draw the tree layout incorrectly and then cause an infinite recursion when moving the mouse over a node.
  • When selecting a predicate in the graphical query view, there's a new option for selecting any of the "magic properties" that Franz provides for enhancing SPARQL queries. (You may not be able to specify the end values that some of them need, though, except by editing the generated query text in the query view.)
  • User options are now saved automatically each time you explicity modify an option, to avoid losing changes when Gruff is closed in a way that it doesn't catch, such as with the close button in the title bar on the Mac (and maybe on GTK generally), or if Gruff or the machine should crash. Options are still saved at exit time as well. They are also saved when you save a view or open or create a database.
  • The somewhat obscure new option "Visual Graph Options | Constraint-Based Layout Options | Link to Node Ratio Limit" causes the spring layout algorithm to be used even for small numbers of nodes if the links-to-nodes ratio is high enough that the constraint-based algorithm is likely to take a while.
  • When a node is both selected and highlighted, two border colors are used to indicate that it is both, rather than only red to indicate that it's selected.
  • Fixed: In the store-opening dialog, if both the server and port are filled in and you proceed to modify both of them, Gruff would hang for a bit after you change one of them as it asked the mismatching server and port for its catalogs. This request is now always done asynchronously to avoid holiding you up, though as a consequence you may now see the dialog appear before it has filled in the lists of catalogs and stores.
Version 6.3.3
  • Fixed: Loading triples was broken in Gruff 6.3.2 when built on AllegroGraph 6.1.x. And the user option "Global Options | Miscellaneous | External Format for Loading Triples" has been removed because it is no longer supported on AllegroGraph 6.1.x (and was never supported on AllegroGraph 3.3).
  • Fixed: You could not connect to an HTTPS server in Gruff 6.3.2 because SSL was accidentally excluded from the Gruff build.
Version 6.3.2
  • Fixed: In Gruff 6.3.1, "File | Save Layout State" saved tree layouts incorrectly, and they could not be reloaded.
  • Fixed: The new support for interaction in a web browser did not work in Gruff for AllegroGraph 3.3.
  • Fixed: A node that displays a pixmap was still drawing its label over the pixmap. And the Windows platform still handled only BMP files, rather than also PNG and JPG as believed. And when two nodes use the same pixmap it could lead to a break.
Version 6.3.1
  • This release features a preliminary version of Gruff support in web browsers, where any web browser can connect to Gruff and display its graph view. A menu bar containing a subset of the graph view commands allows browsing the database directly in the web browser. We would be interested to hear if you find this useful. To try it out, start up Gruff as usual and open a database, then use "Global Options | Communications | Start HTTP Server". Let's say that Gruff is running on a machine named hazel and you start its HTTP server on port 8008. You can then go to any web browser that can reach hazel and tell it to visit hazel:8008. The web browser should then display roughly the same thing as Gruff. You can then explore the commands that are on the menu bar in the web browser. Currently you must open a database in Gruff itself because the web browser interface does not yet have a command for selecting a store to open. This has mostly been tested on Firefox and Chrome so far.
  • The new option "Visual Graph Options | Tooltips | Highlight Links of Node Under Mouse" will highlight the links between the node that's under the mouse and its linked nodes. In a tree layout, it will highlight the entire paths between the node under the mouse and the root node as well as all of the node's descendants. This option is on by default. The delay before showing the highlighting can be set with the new option "Visual Graph Options | Tooltips | Highlighted Links Delay".
  • When "Text Search | Search the Current View" is used in the graph view, table view, or query view, the actual search text is now highlighted within the node or table cell, rather than highlighting only the whole node or cell. This aids spotting matches in long literals. This could be turned off with the new option "Visual Graph Options | Node Labels | Highlight Search Text in Nodes".
  • The new graphical query view right-click background pop-up menu commands "Convert Highlighted to Variable Nodes" and "Convert Highlighted to Variables with Types" allow converting multiple non-variable nodes to variables at once (after you highlight them by control-clicking each one).
  • Non-variable nodes in the graphical query view now use the same background colors as in the graph view to indicate their types, rather than using the same color for all non-variable nodes.
  • Fixed: When using "Graphical Query Non-Variable Node | Convert to Variable with Types" on a node that has no types, the variable node was given a filter that matches a variable to a type of that node, which typically would cause the query to have no solutions.
  • In various commands that require a selected node to act on, if there is no selected node then the command will now first let you select a recently-selected node to reselect and then act on.
  • When connecting to a SPARQL endpoint, Gruff will now know what named graph each triple is in and display it in the table view. Gruff will also work properly with an endpoint that does not include triples from named graphs in the default dataset for a query that does not use FROM or FROM NAMED clauses.
  • Fixed: Doing a tree layout when there are reification link lines could get into an infinite loop.
  • Fixed: Saving a query in the query view would break if the query contains "from" clauses.
  • Layouts can now be done in the graphical query view.
  • The new option "Global Options | Communications | Use Digest Authentication" causes communication with a SPARQL endpoint that requires a username and password to use the more secure "digest access authentication" (rather than basic). It's on by default, but could be turned off if a server doesn't support it. And previosly connecting to a SPARQL endpoint that requires authentication often did not work at all.
  • The new option "Global Options | Communications | Warn on Version Mismatch" shows a warning dialog if you open a database on an AllegroGraph server whose version does not match the version of the lisp client on which Gruff is built, because things will likely not work. It is on by default, but could be turned off to avoid the nuisance if a small version mismatch happens to work.
  • Fixed: The warning dialog for "Visual Graph Options | Inclusion Options | Number of Links from One Node for Warning" was sometimes issued when it shouldn't be because it was counting nodes that had been shown linked to the selected node, but then removed from the display later.
  • Fixed: Editing a node could break in a store that contains rdfs:domain and/or rdf:range triples in it, where objects of those triples have superclasses.
Version 6.2.0
  • The command "Display | Display an Instance Node by Class Hierarchy" has been enhanced to work with predicates other than subClassOf. The initial choices are rdfs:subClassOf, skos:narrower, skos:broader, and rdfs:subPropertyOf, and you can specify custom predicates that work similarly. Multiple predicates can be browsed at the same time. The root nodes for each predicate of each store are saved into the options file so that they will come back up more quickly when re-opening the store. The predicate choices and the ones that are currently selected for each store will also be remembered. For efficiency, by default the dialog will no longer automatically gray out nodes when they have no subclasses or show a hollow arrow when they have no instances; instead, an explicit "Update Annotations" button will do that only when you want, or you can turn on the new options "Global Options | Class Outline | Automatically Indicate Childless Classes" and/or "Global Options | Class Outline | Automatically Indicate Instanceless Classes" to keep those annotations updated as before. When selecting an instance of a class, the pop-up menu is placed near the current mouse cursor position.
  • The new option "Visual Graph Options | Tree Layout Options | Minimum Leaves for Splitting Columns" reduces the overall breadth of a tree layout by placing some single-parent leaf nodes beside others.
  • SPARQL queries can now be interrupted on Mac and Linux (as was implemented on Windows recently).
  • A loaded SPARQL query should work even when it used global namespace abbreviations that were defined when it was saved but not when it is reloaded.
  • When multiple custom tooltip properties are specified with "Global Options | Node Label Predicates | Custom Predicates for Node Comments", multiple matches for a node will be concatenated in the tooltip. Previously only the first match that was found was displayed.
  • Some modal dialogs will show full URIs in the status bar as you move the mouse over choices, to differentiate nodes or predicates that use the same short label. This includes the dialogs that are shown by the commands "Global Options | Select Current Predicates", "Display | Display an Instance Node by Class Hierarchy" and "Link | Display Linked Nodes from an Outline". You can also type Control-C in any of those modal dialogs to copy the selected node or predicate.
  • The new option "Global Options | Miscellaneous | Cancel Linked Nodes Outline on Mouse Out" controls whether moving the mouse out of the dialog that's shown by "Link | Display Linked Nodes from an Outline" will cancel the dialog. That's a quick convenience that had always been enabled, but is now disabled by default because it may be more annoying than useful.
  • The two panes at the bottom of the query view that list nodes and predicates that are explicitly mentioned in the query have been removed by default, because they're usually not worth the space that they occupy. But you can get them back with the new option "Query Options | Show Explicit Nodes from Query". The pane on the right side that contained only help text has been removed entirely.
  • Tabbing back to the query text widget will leave the text cursor or selected text as it was, rather than selecting all text. The "Select All" button or its keyboard shortcut Alt-A will still select all text.
  • Fixed: Node label properties were not being employed on nodes when they are RDF string values like "Foo Bar"^^.
  • Predicate paths are handled better when generating a visual graph from query results, using a pseudo-predicate for the whole path, similar to the handling of transitive predicates like subClassOf+.
  • Fixed: Pasting a predicate into query text could miss employing a namespace abbreviation for it when that abbreviation is newly defined.
  • Fixed: On AG 3.3, the newly simpler store-opening dialog still proceeded if the user canceled the dialog.
  • It's easier to mouse on a very narrow node to select it without hitting the node corner icons on either side.
  • The store-opening dialog will remember the values that you last selected for the Warm Up the Store options for each store.
Version 6.1.0
  • CONSTRUCT queries are now handled (though not with SPARQL endpoints). The constructed triples will be browsable as part of an ad hoc federation with the currently open store, and so the store is not modified.
  • On Windows, SPARQL queries in the query view can now be canceled (though not for SPARQL endpoints or on Agraph 3.3). The "Run Query" button turns into a "Cancel Query" button to indicate this.
  • The new command "Help | Activity Logging" can be used to generate debugging information to send to Franz, especially for actions that take too long or if a bad state arises in the graph view.
  • When using "Display | Display a Class Node by Class Hierarchy" or "Display | Display an Instance Node by Class Hierarchy", you can now select multiple classes to display them all or an instance of each one.
  • The command "Link | Display Linked Nodes for the Current Predicates" is now more interruptible (with Escape or Q as usual).
  • Fixed: A few commands could sometimes take a long time due to accidentally not limiting the number of triples that they fetch from the server. These commands include "Display | Display an Instance Node by Class Hierarchy", "Edit | Edit Node by Type" and selecting a predicate according to domain and range specifications. (This was discovered by using the new activity logging.) You can also cancel Edit Node by Type as usual with Escape or Q if it's still taking too long.
  • Fixed: The background pixmap in the graph view could get lost and no longer displayed because it pointed to a file in an earlier version of Gruff that you deleted.
  • The table view will now indicate when the displayed set of triples is incomplete due to "Global Options | General Triple-Fetching Limit".
  • Miscellaneous refinements to the new lisp evaluation view. You can also now change the fonts on the Evaluation Options menu.
  • Still more tweaks to the new tree layout algorithm for neatness and reduced link lengths.
  • Other small efficiency improvements.
Version 6.0.1
  • New 6.0 bug fixed: On the old AllegroGraph 3.3, the File menu was broken after opening a store in read-only mode.
  • New 6.0 bug fixed: On the GTK platforms, the new node corner icons were upside-down.
  • New 6.0 bug fixed: On Linux, the new lisp evaluation view showed an error dialog when entering it (though you could exit the dialog and continue).
Version 6.0
  • You can now quickly invoke certain commands by clicking the corners of nodes in the graph view. Small icons will appear for the commands to indicate when you're in the right spot. You can right-click a corner to globally assign a different command to that corner. See the new "Visual Graph Options | Node Corner Clicks" child menu.
  • For advanced users who are comfortable writing lisp code, there is a new view for evaluating lisp expressions to control Gruff programmatically. See View | Lisp Evaluation View.
  • Small improvements and fixes have been made to the new tree layout algorithm.
  • "Link | Display Linked Nodes from an Outline" (formerly "from a Tree") now positions its dialog beside the selected node. You can cancel the dialog quickly by moving the mouse cursor out of the dialog, and say OK quickly by right-clicking anywhere in the dialog.
  • The new command "Select | Reselect a Recent Node" lets you choose a recently-selected node from a pop-up menu to reselect it. This can be handy for then applying a command to it with a keyboard shortcut.
  • The query view's "Create Visual Graph" button finds more triples to display in queries that have UNION or OPTIONAL groups, in the default mode where "Query Options | Include More Triples in Visual Graphs" is not enabled.
  • Zooming with the mouse (when "Visual Graph Options | Layout Options | Mouse Wheel Zooms" is enabled) will now center the zooming around the mouse cursor position.
  • A few commands on the File menu have been moved onto a new Miscellaneous child menu.
  • Fixed: "Display | Display Some Sample Triples" could display garbage triples that don't even exist when there are blank nodes in the store.
  • Fixed: Path-finding was broken after applying RDFS++ reasoning.
  • Fixed: Selecting a predicate in the graphical query view could hang for a long time in some cases.
  • Fixed: The graph view allowed adding a second copy of an already-displayed linked node after certain operations, including displaying sample triples and generating a visual graph from query results.
  • Fixed: "Link | Display Only Paths Between Two Nodes" could leave the end nodes in the wrong place when zoomed out.
  • Fixed: Pasting a predicate (rather than a node) from elsewhere in Gruff into the query view's query string widget was broken. Pasting a URI that contains parentheses also didn't work when it employed a namespace abbreviation.
  • Fixed: On Windows, Gruff did not successfully invoke a third-party program to display the pixmap file that's created by "File | Save Layout as Pixmap".
  • When AllegroGraph 6 has been released, SPARQL UPDATE queries that insert and delete triples will work in Gruff built on AG 6.
  • When using "Link | Display a Linked Node from Menus" and choosing the All choice when selecting the predicate, triples for the rdfs:label predicate (or any custom label predicates) will no longer be added to the display, because the label is shown on the node itself already.
  • Fixed: Removing a node filter in the graphical query view broke when the node has multiple filters.
  • On the old 3.3 version of AllegroGraph, the store-opening dialog no longer has widgets for specifying a remote host and a port, because Gruff on AG 3.3 is normally used only with the server that's built into Gruff, and so those widgets were more confusing than useful.
  • Fixed: Reloading a saved layout did not properly restore the double-jointed link lines of a tree layout. It will now do so, but only when the layout was saved after this fix is present.
  • Fixed: A saved layout excluded orphan nodes (ones that had no links displayed).
  • Fixed: Creating triples that contain typed literals was no longer encoding the literals, due to being out-of-date with a change in AllegroGraph of unknown date.
  • When sorting query results by one of the columns, numeric values will now be sorted numerically rather than alphanumerically like other values.
Version 5.9.0
  • The new command "Layout | Do Tree Layout from Selected Node" does a traditional tree layout of the currently displayed nodes, using the currently selected node as the root of the tree. Several options for it are on the new "Visual Graph Options | Tree Layout Options" child menu. And the new command "Layout | Do Tree-Like Spring Layout" does just that.
  • Fixed: Copying text from another program and pasting it into the query string widget did not work if nodes had been copied within Gruff before that.
  • Fixed: Loading a graphical query that contains any language literals or typed literals did not work.
Version 5.8.0
  • The new option "Outline Options | Maximum Triples per Predicate in Outline" avoids initially displaying huge numbers of triples for a single predicate and parent node in the outline view, which can be cumbersome to scroll past. When the limit is hit, a single triple is displayed for the predicate and parent node, with a note like "click here to see the other 347".
  • Custom predicates for supplying things like node labels can now be specified more quickly than with "Global Options | Node Label Predicates | Custom Predicates for Node Labels", by right-clicking a predicate in the properties column of the table view or in the legend of the graph view, and using the new "Use as Custom Predicate" command from the pop-up menu.
  • You can now export a subset of user options for others to share, using the new commands "Global Options | Export Some Options" and "Global Options | Import Some Options". Imported options that have multiple values, such as the node colors to use for various types, can optionally be merged with your own values.
  • Fixed: The File and View menus did not get updated on recent versions of Ubuntu to include things like recent stores to reopen and recent layouts or queries to reload.
  • Fixed: The table view could be slow if the displayed triples are in more than a few different graphs.
  • When saving query results to a report file or as CSV, if not all of the query results were retained and displayed in the results table, then you will be prompted for whether to first redo the query with no display limit. If the report does not include all query results, then it will mention how many out of how many it does include.
  • Fixed: Drag-scrolling in the overview pane didn't work on GTK.
  • Fixed: A text search string that contains a number as a standalone word did not work.
  • Fixed: Sometimes "Link | Display Only Linked Nodes" could result in missing link lines if any nodes had multiple pictures on the screen due to many links.
  • Fixed: The query view could sometimes think that an explicit predicate in the query is a node, or vice versa.
  • Fixed: When connecting to a SPARQL endpoint and retaining the displayed triples from the previously-open AllegroGraph store, label properties that had been displayed could get replaced by labels that are derived from URIs.
  • Several miscellaneous efficiency improvements for better speed.
Version 5.7.1
  • Fixed: A new bug in 5.7.0 broke many queries while extracting explicit nodes from the query string.
  • Fixed: In a query that uses path predicates, Gruff would think that some of the predicates in a path are nodes rather than predicates, and then not find triples for a visual graph when they use those predicates.
  • Blank nodes will now be included in the set of recently-accessed nodes to refetch in future sessions.
  • The new option "Visual Graph Options | Node and Link Spacing | Show All Alignment" can be toggled on to show all of the nodes in the graph that are currently aligned with each other.
  • The two new options "Relax Syntax When Loading Triples" and "Continue on Error When Loading Triples" on the Miscellaneous child menu of the Global Options menu allow loading n-triples and n-quads file that contain invalid RDF syntax on some lines.
  • A sometimes bad delay has been removed in the displaying of results in the query view after the query itself is done.
  • "File | Roll Back and Refresh" is now applicable when browsing a SPARQL endpoint.
  • "Display | Display Some Sample Triples" should no longer display zero triples for some stores, and should generally display a more interesting set of triples than before.
  • Fixed: "File | Extract Microformat/RDFa Data from Web Page" had stopped working in the default mode that uses the any23.org web site to find the triples.
  • Fixed: N-dimensional geospatials displayed inappropriate labels.
  • Fixed: In the graphical query view, deselecting the check box for whether to add a limit to the generated query test did not stop adding the limit to the query text.
  • You can now move the selected node in the graph view and graphical query view by single pixels by holding down the control key and pressing the arrow keys. Holding down the shift key as well moves by twelve pixels each time instead of by one.
  • You can now cancel the dialog for opening a store without the previous store being closed.
Version 5.6.0
  • The new command "Link | Display Non-Leaf Linked Nodes" is similar to "Link | Display Linked Nodes for the Current Predicates", but it avoids displaying any new nodes that would be leaf nodes if they were displayed. This is basically a much faster version of displaying paths between each pair of a group of highlighted nodes (or from the selected node to other displayed nodes) for paths that are up to two links long (or three links for smaller stores).
  • Efficiency improvements were made for "Link | Display Linked Nodes for the Current Predicates" (the F command).
  • Dragging a node in the graph view will now snap it into alignment with other nearby nodes whenever it is nearly aligned. This makes it easier to exactly align nodes with each other horizontally or vertically, to look as good as possible for presentation. See the new option "Visual Graph Options | Node and Link Spacing | Snap Alignment Resolution" and its sibling "Snap Alignment Reach". This can be disabled by setting the resolution to zero.
  • The new command "Select | Highlight All Nodes" facilitates applying a command to all nodes when it's a command that works on all highligted nodes.
  • The positioning of link labels in the graph view has been improved somewhat, including sometimes stacking individual words of the label along the link line.
  • The dialogs for opening or creating a store have a new Scheme widget where you can specify HTTPS if the AllegroGraph server is configured to require secure transactions.
  • Fixed: Sometimes it was difficult to abort an abortable command (typically by using the shortcut keys Escape or Q).
  • Fixed: When using "Text Search | Find and Display Nodes", sometimes the predicates of the node's triples were not added to the set of predicates from which you can choose current predicates.
  • Fixed: In the command "File | Export Displayed Data As | GML", node color values were not written out correctly and were not reliably displayed by Cytoscape. Also, if you selected the options to not write out node and link labels at all, it actually wrote out "nil" as the label for each one, and then Cytoscape would not load the file due to duplicate labels.
  • Fixed: When using "Link | Display Paths Between Two Nodes" to find the paths between each pair of a group of highlighted nodes, it inefficiently did an incremental layout update for each pair even when no paths were found for a pair. (It will now also highlight each pair of nodes as it searches for the paths between them.)
  • Fixed: In the table view, sometimes not enough height was allocated for a long multi-line literal if the triple's non-default graph or store-of-origin is displayed on the righthand side.
Version 5.5.0
  • The new command "File | Export Displayed Data As | GML (Graph Modeling Language)" exports the displayed triples along with some graphical information to a GML file, which could then be loaded into other software such as Cytoscape or Gephi to explore the layout algorithms and stylistic options of other graph viewing tools.
  • "Link | Display Paths Between Two Nodes" will now find paths between every pair of nodes in the group of highlighted nodes when there are highlighted nodes and no selected node. The path lengths are then limited by the new option "Visual Graph Options | Finding Paths Between Nodes | Maximum Path Length for Highlighted Group".
  • "Remove | Remove Selected Node" will now remove all highlighted nodes from the display when there are highlighted nodes but no selected node.
  • Fixed: The spring layout algorithm (which is used for larger visual graphs) did not handle reification well. Any reifying link line that connects a node to the middle of a reified link line would leave the node positioned arbitrarily far away from link to which it is connected.
  • Fixed: Reifying link lines could point to the wrong place when zooming out.
  • The new user option "Global Options | Include All Predicates as Choices" causes "Global Options | Select Current Predicates" to list all of the predicates that are in the store as choices, rather than listing only the predicate of triples of the nodes that have been browsed so far.
  • The user option "Global Options | Miscellaneous | Display Graph-Part Reification" now saves its value separately for each store, so that you can turn it on only for stores that contain graph-part reification triples (since searching for them takes significant time). If you have turned this option on, then you will need to turn it on again for the stores that need it.
  • When browsing the DBPedia SPARQL endpoint, the graphical query view now has a second example, which illustrates nested grouper boxes for UNION and OPTIONAL groups.
  • The new command "Global Options | Miscellaneous | Remove Old Stores from Options File" allows you to clean out no-longer-used stores from your options file, in case it has grown very large.
  • In the "Global Options | Namespace Abbreviations" dialog, you can now temporarily comment out some of the mappings by placing a hash/pound/scratch character (#) at the start of the line.
  • Fixed: Generating a visual graph from query results could get confused by Prolog queries that call custom lisp functions.
Version 5.4.0
  • Gruff can now browse an ad hoc federation of triples that are downloaded from a series of AllegroGraph stores and/or SPARQL endpoints. See the new "Retain Triples" check box on the dialogs for opening a store and connecting to an endpoint. Information returned by SERVICE clauses in user SPARQL queries is also used to deduce triples that exist at the endpoint, which are then retained for further browsing. See the new overview in the single Gruff document entitled "Building an Ad Hoc Federation from Multiple Stores and Endpoints".
  • The new user option "Query Options | Include More Triples in Visual Graphs" lets you select one of two approaches for deriving triples from query results for visual graphs.
  • Gruff now supports the use of transitive predicates in queries, such as subClassOf+ to find superclasses at multiple levels away.
  • "File | Load Query String" can now load from a text file that contains only query text, rather than working only on files that were saved with "File | Save Query String".
  • The commands for exporting triples on the "File | Export" child menu are now implemented in the query view (using triples that are deduced from query results) and in the outline view.
  • There are a few more timeout options, and all of the timeout options are now grouped on a new "Global Options | Timeouts" child menu.
  • The new option "Global Options | Miscellaneous | Confirm Closing Stores" determines whether you are prompted to confirm that it's OK to close the current store when you're opening another one. It's disabled by default, which is unlike the former behavior.
  • The new option "Visual Graph Options | Layout Options | Show Saved Layout Pixmaps" controls whether saving a layout as a pixmap file will then display the saved pixmap in a third-party program.
  • Fixed: When highlighting more than a few nodes and using "Link | Display Linked Nodes ..." on all of them, a dialog about a large number of total resulting links could be shown several times or more.
  • Fixed: Displaying a node by text search in the graphical query view was recently broken.
  • Fixed: SPARQL 1.1 "AS" expressions, such as for counting instances, did not work in the query view.
  • Fixed: When doing a string search of the table view contents that matches on predicate names, tabbing to successive matches would stop redundantly at every row of the same predicate.
Version 5.3.1
  • You can now highlight a block of nodes in the graph view by control-left-clicking down on the background and dragging a box downward and to the right to surround the nodes to highlight. You can similarly pin a block of nodes with shift-left-click instead of control-left-click.
  • You can drag all of the highlighted nodes in the graph view as a block by dragging any one of them.
  • The command "Link | Display Linked Nodes for the Current Predicates" will now be applied to all highlighted nodes at once when there is no single selected node. The commands "View | Copy" and "View | Paste" can now be used to copy multiple highlighted nodes in the graph view or the graphical query view, and then to paste the multiple nodes at once into any view. (This is done only when there is no single selected node.)
  • The new option "Visual Graph Options | Node and Link Color for Types | Types to Prefer for Node Color" allows you to specify types that should be selected first for coloring nodes in the graph pane. The right-click pop-up menu for a node has the new command "Select Preferred Type for Node Colors" to add one of the selected node's types to this list.
  • The new option "Link | Triples to Include | Include Triples as Subject Only" and " ... as Object Only" restrict the nodes that are displayed by "Link | Display Linked Nodes for the Current Predicates".
  • The new option "Global Options | Miscellaneous | Treat Literals as Objects" lets you optionally treat each literal node as an object that is linked with every node that has that literal as a property value. It is turned off by default, and you would need to turn it on to return to the previous behavior.
  • The new option "Visual Graph Options | Spring Layout Options | Reduce Nodes Overlapping Links" causes the spring layout to reduce overlapping for a more readable layout. It's on by default, though it takes longer. To return to the previous faster but less tidy behavior, turn this option off.
  • The graphical query view now supports grouper boxes for the SPARQL expressions MINUS, FILTER EXISTS, and FILTER NOT EXISTS. The commands for adding a grouper have been moved to a child menu of the right-click pop-up menu for the graphical query view background.
  • You can now browse a SPARQL endpoint through an HTTP proxy. The option "Global Options | Communications | HTTP Proxy" replaces an option that had been used only for fetching microformat (RDFa) data.
  • The command "View | Browse a Single Graph" is now supported with SPARQL endpoints.
  • You can now "warm up" a store, which loads internal data into physical memory for fast access. See new check boxes in the lower right corner of the dialog for opening a store, as well as the new command "Global Options | Miscellaneous | Warm Up the Store".
  • File | Save Layout as Pixmap will now (by default) include the legend in the pixmap file that it creates. For the previous beahvior that does not include the legend, turn off the new option "Visual Graph Options | Inclusion Options | Include Legend in Saved Pixmaps".
  • Fixed: Failures happened with a SPARQL endpoint if it returns bindings in a different order then they are specified in the list of selected variables in SPARQL queries.
  • Fixed: Starting with version 5.2.0, doing a layout command while another layout is still running would return to the first layout when the second one finished, losing what the second layout did. This fix allows you to once again interrupt a layout with another layout command.
  • Fixed: When doing a layout with animation turned off, the overview pane sometimes displayed a messy early state of the layout instead of displaying only the final state.
Version 5.2.1
  • The new command "File | Connect to SPARQL Endpoint" allows browsing any SPARQL endpoint directly, without using an AllegroGraph store. The new child menu "Global Options | SPARQL Endpoints" contains options that are specific to SPARQL endpoints, mostly to disable certain capabilities by default that may typically be too slow for an endpoint; in particular, label properties are not displayed by default with endpoints, but they can be. Most Gruff functionality is available with endpoints, though some menu commands that are not available (such as path-finding) will be grayed out and inactive when using an endpoint.
  • The new option "Text Search | Text Search Timeout" avoids a hang if a text search takes a long time.
  • The new option "Visual Graph Options | Node and Link Color for Types | Use Most Specific Type for Node Color" allows saving some time by coloring each node for any of its types rather than for the type that has the longest subClassOf chain.
  • The new option "Outline Options | Indicate Which Items are Openable" allows saving some time by not showing hollow arrows to indidate which outline items would do nothing if you tried to open them.
  • Fixed: Generating a visual graph from query results could fail for some queries due to a glitch that was new in 5.1.5.
  • Fixed: Decimal typed literals were being displayed as ratios.
  • In the table view, the "I" and "Shift-I" commands (see the pop-up menu) now scroll by most of a page rather than only a third of a page.
  • The selected node (if any) is no longer fixed at the center of the graph view pane when doing a layout. This was judged not useful enough to somewhat restrict the layout.
  • A few options on the Global Options menu have been moved to a new "Global Options | Pop-Up Menus" child menu.
  • You can now replace a triple in the graph view by dragging one end of a link line to a different node. That runs the new command "Graph View Link | Drag to Replace Triple". Also, the new command "Edit | Create a Triple Using Most Recent Predicate" is a variation of an existing command that avoids asking you to select the predicate every time.
  • The new command "Remove | Remove All Unhighlighted Nodes" will remove from the display all nodes that are not highlighted, with their link lines. This allows starting fresh with a small subset of the currently displayed nodes.
  • The new user option "Global Options | Node Label Predicates | Custom Predicates for Web Pages" allows you to specify predicates that provide web page URLs to send to a web browser when using "View | Invoke Web Browser or Program".
  • The movement commands at the bottom of the Select menu are now applicable to the legend pane, along with their keyboard shortcuts. So after tabbing to the legend pane you can press J and K to move to the next or previous legend item, or L to jump to the other group of items, and then press M to invoke the pop-up memu for the selected legend item.
  • A few keyboard shortcuts have changed. "View | Add Selected Node to Outline" now uses Shift-O to make it easier to remember. "Remove | Remove All Orphan Nodes" and "Remove All Leaf Nodes" have moved to Shift-Z and Control-Shift-Z, joining the new command to remove unhighlighted nodes, which uses Control-Alt-Z.
  • Fixed: Doing a query sometimes did not recognize namespace abbreviations that had been entered with "Global Options | Namespace Abbreviations".
  • Fixed: The option "Global Options | Pop-Up Menus | Show Full URIs in Pop-Up Menus" caused pop-up menus that list nodes to display extraneous internal information.
  • Gruff now supports "graph-part reification", where a node that is used as the graph part of only a single triple can be used to represent that triple, allowing reification by other triples that have that node as their subject or object. This is very similar to Gruff's support for triple-id reification, with link lines for reifying triples connecting to the middle of link lines for reified triples in the graph view. In the table view, clicking the name of the graph at the right will display the table of all triples where that graph node is the subject or object. And triple-id reification is now supported when the triple-id node is used as the subject of the reifying triples, rather than as the object as usual. Right-clicking a link line instead of a node and using the command to drag a new triple will create a reifying triple where the subject (rather than the object) is the triple-id node. The link line command to display a reifying triple of that triple now has an option to display all of them.
  • Gruff now properly supports resource nodes that use encoded ID's, which were new in AllegroGraph 12.2.
  • Fixed: Loading visual graph layouts that include reifying triples had gotten broken at some point.
  • Fixed: The command "File | Federate Recent Stores" was apparently broken several months ago.
  • Fixed: Encoded time llterals (as opposed to encoded date and date-time literals) were not displayed correctly.
  • Pop-up menus that let you select a recent namespace now uniformaly have a special choice at the top called "Other Namespace (or None)" for continuing without using one of the suggested namespaces, so that you don't need to know to unintuitively cancel the menu to proceed. Canceling any pop-up menu should now cancel the entire command.
  • The new user option "Visual Graph Options | Node and Link Color for Types | Types to Avoid for Node Color" lets you list types that are less interesting to use for node color in the graph view, so that other types are shown by color instead. The pop-up menu for a type node in the legend also has a new command to add that type to the list.
  • Fixed: Changing the user option "Global Options | Widget Font" was having no effect.
  • The new HTTP command connect-to-endpoint is an additional way to connect to a SPARQL endpoint.
  • The new command line argument --disable-menus (or -d) can be used to turn off all pull-down and pop-up menus to prevent the user from controlling Gruff interactively, such as when controlling it exclusively with remote HTTP commands.
  • The pop-up menu command to invoke your web browser on the URI of the selected node has been moved to the menu bar at "Graph View Node | Invoke Web Browser or Program" to make it more visible. The V key shortcut can now be used in all views.
  • The new option Global Options | Miscellaneous | Display Graph-Part Reification must be enabled to make Gruff automatically look for and display graph-part reification relationships. It's off by default to avoid the time that it takes.
  • You can now do text searches in a federation, though only in the combined text indexes of all of the federated stores, rather than in a single one of them.
Version 5.1.7
  • Fixed: Path-finding was failing if the user does not have permission to run arbitrary code on the remote server.
  • Fixed: Most label properties were not displayed in some places if the user does not have permission to run arbitrary code on the remote server. This bug was new in 5.1.5.
  • Fixed: Label properties were not displayed for nodes when requested if the label values are typed literals rather than simple literals or language literals. This bug was new in 5.1.5.
  • Fixed: Generating a visual graph from query results could fail for some queries. This bug was new in 5.1.5.
  • Fixed: Decimal typed literals were shown as ratios.
  • Fixed: Certain operations on a node would break if the node is a geospatial.
  • Fixed: The new option "Table Options | Display Links to Reifying Triples" did not totally avoid the ineffiency of looking up reifying triples in the table view by default as believed.
  • Fixed: Pasting a URI into the query text widget did not paste a shorter string with namespace abbreviation when applicable.
  • Fixed: The animation demo would leave some nodes thinking that they have fewer triples than they actually do.
  • Fixed: The animation demo broke when the actors store was opened in read-only mode, and so users who do not have permission on the server to use read/write mode could not run the demo.
Version 5.1.5
  • A variety of efficiency improvements have achieved significant browsing speedups, especially in large remote triple-stores. In particular, a faster technique for retrieving label properties for a batch of nodes has allowed using label properties more consistently, rather than using workarounds that avoided looking up label properties in some circumstances to avoid the lookup time.
  • There is now a single option for whether to use label properties for node labels, rather than three separate options for whether to show them in particular views or in the list of text search matches. The new single option is at "Global Options | Node Label Predicates | Use Label Predicates for Node Labels", and replaces the options "Visual Graph Options | Node Labels | Use Label Predicates for Node Labels", "Table Options | Use Label Predicates in Tables", and "Text Search | Use Label Predicates in List of Matches".
  • If the new option "Table Options | Sticky Multiple Property Values" is enabled, as it is by default, then left-clicking an individual predicate in the table view to collapse it or expand it will cause that predicate to continue to be collapsed or expanded as you visit further nodes, until if and when you later click that predicate again to re-expand or re-collpase it.
  • The option "Global Options | Node Label Predicates | Custom Predicates for Node Labels", along with the two similar options for comments and pixmaps, now saves the option values separately for each store rather than being used globally by all stores. If you have set up any of these custom predicates, then you will need to set them up again, and now you must do it separately for each store that uses custom predicates. This is to avoid wasting time looking up triples for custom predicates that are not used at all in the currently open store.
  • The command "Display | Display a Node by Label" now works with custom label predicates (as set up with "Global Options | Node Label Predicates | Custom Predicates for Node Labels"), rather than working only with rdfs:label triples.
  • The command to display any node in the store by selecting it from a sequence of pop-up menus has been removed, because it was workable only in very small stores.
  • Creating a text search index is faster (on AllegroGraph 4.x), by no longer initially indexing all predicates before asking which predicates you actually want to index.
  • The new option "Table Options | Display Links to Reifying Triples" is initially disabled for efficiency, and must be turned on to regain the behavior where any triple that has reifying triples will have a clickable icon in the table view for jumping to the reifying triples.
  • Fixed: The graphical query view could break when adding a non-variable node with the command "Text Search | Find and Display Nodes".
Version 5.1.0
  • New collapsable predicates in the table view. The new option "Table Options | Show Multiple Property Values" can be turned off to initially display only a single row in the table for each property. When the property has only one value it will be displayed as usual, and otherwise only the number of values for that property is displayed. Left-clicking a property cell toggles just that property between its collapsed and expanded views.
  • The freetext commands have been modified to make them easier to find and understand. They are now on a new Text Search menu, have simplified names, and their keyboard shortcuts have moved from the somewhat obscure semicolon key to the H key. (Commands that had used H key shortcuts now have different shortcuts as well.) The "View | String Search" command has also been moved to the new menu, now called "Search the Current View". The common term "text search" is now used instead of the less well-known terms "freetext" and "string". Also, creating a new text index will now automatically show the dialog for setting its parameters.
  • The new option "Text Search | Use Label Predicates in List of Matches" allows specifying whether to look up meaningful label properties to display in the list of text search matches. This is off by default, which is unlike the old behavior, and which makes text searches much faster to display the matches, though node names may not be meaningful in some stores.
  • The familiar Control-Plus and Control-Minus keystrokes can now be used to quickly adjust font sizes. This is a quick alternative to the menu bar commands for various font options.
  • The command "Help | Animation Demo (Actors Store)" runs a brand new automated demo, replacing one that wasn't very useful. This command now requires that you first open the actors store, which can be created from the actors sample triples on the Franz web site.
  • Miscellaneous efficiency improvements have been made to reduce the time spent retrieving triples from the server, especially in larger stores.
  • Fixed: In the graph view, some link lines could end up pointing to an invisible copy of the node that they should be pointing to.
  • Fixed: Reifying link lines in the graph view broke when zoomed out.
  • Fixed: The new single dialog for opening a store was not updating the lists of catalogs and stores at certain times if the server does not allow anonymous access to the lists of catalogs and stores.
  • Fixed: The query view results table sometimes did not provide enough text lines for a wrapped literal. And the small grids at the bottom that list nodes and predicates from the query text did not adjiust their row heights to the user's preferred table fonts.
  • Fixed: Zooming out all the way with the mouse (Control-Alt-RightClick) sometimes did not center the graph, leaving parts of it scrolled out of view.
  • Fixed: When editing a literal value in the table view, the Control-N Emacs keystroke to move to the next was not working.
  • The new somewhat obscure user option "Global Options | Miscellaneous | Minimum Triples for Individual Property Lookup" could be adjusted to optimize the efficiency with which triples are fetched and cached in smaller and larger stores.
  • A new --exterior command line argument may now be passed when starting Gruff, to specify the window position and size.
Version 5.0.12
  • Opening or creating a store now displays a single dialog with a set of widgets for the various parameters, rather than a series of individual prompts. If there is any need to revert to the former style, that could be done by turning off the new option "Global Options | Miscellaneous | Use Single Dialog for Opening Stores".
  • There are new commands in the HTTP interface for highlighting nodes, displaying all triples (up to a limit), saving a layout for reloading later, and saving a layout as a pixmap.
  • The new command "Layout | Update Layout Conservatively" always does a conservative version of the original constraint-based layout algorithm, to spruce up the result of a spring layout when desired.
  • When browsing a reasoning store, triples may now be created and deleted in the base store, though inferred triples may not be deleted.
  • In a reasoning store, the table view now indicates which triples are inferred.
  • Fixed: The new command "Select | Copy Highlighted to Graphical Query View" broke when one of the highlighted node pictures has bridge link links to other copies of itself.
  • Fixed: The new spring layout broke when there are reification link lines (which connect to other link lines instead of to nodes).
  • Fixed: A recent bug broke right-clicking the link icon for multiple predicates in the graph view's legend pane.
  • Fixed: Words in node labels that are longer than "Visual Graph Options | Node Labels | Maximum Word Length in Node Boxes" will now wrap in visual graph node boxes even when the labels are supplied by label predicates.
  • Fixed: Saving a layout as a pixmap did not draw correctly when zoomed out.
  • Fixed: The Escape key would not abort a layout if the keyboard focus is in the overview pane due to clicking that pane for scrolling. (The Q key and the spacebar still worked.)
  • Fixed: The query view button to write a text report broke if the user had dragged the first results column to a different position.
Version 5.0.10
  • The new option "Global Options | Node Label Predicates | Custom Predicates for Node Pixmaps" allows using triples to supply images to display for any nodes in a store, rather than only for nodes whose values are the pixmap paths.
  • The new command "Select | Copy Highlighted to Graphical Query View" allows building a graphical query by copying a set of highlighted nodes and their links from the graph view to the graphical query view in one operation, and then turning some of the nodes and links into variables for a query.
  • Fixed: Doing a "View | Go Back" in the graph view to a state that had a different canvas size or zoom factor could the leave the pane scrolled to the wrong place, with most or all of the nodes out of view.
Version 5.0.8 Beta
  • The new spring layout now handles the existing predicate direction constraints, such as forcing all subClassOf links to point upward as in a tree graph.
  • You can now set or clear the layout direcction constraint for a predicate from the pop-up menu in the legend pane, rather than only from the "Visual Graph Options | Layout Options" menu.
  • Highlighted nodes in the visual graph (see Select | Highlight Selected Node or Link) are now drawn in a different way to make them easier to spot, with a thick blue border rather than a light red background color.
Version 5.0.3 Beta
  • Gruff has a new spring layout algorithm that it uses for larger visual graphs. It is much faster for larger graphs than the original constraint-based algorithm, though it does not prevent nodes from overlapping links. The new option "Visual Graph Options | Spring Layout Options | Minimum Nodes for Spring Layout" controls when the layout automatically switches between the two algorithms. Other new options on that same child menu control the spring layout behavior.
  • During a spring layout you can press the zero key to toggle animation on and off. That allows letting a large layout run at full speed and then turning animation on to see how far it has progressed.
  • Several new zooming commands on the Layout menu of the graph view provide alternate views of the larger visual graphs that can now be handled by the spring layout algorithm. Node and link labels are not drawn when zoomed out, though they do appear in tooltips. Full mouse and keyboard functionality is still available on zoomed-out nodes and links.
  • The mouse wheel now performs zooming in the graph view, rather than scrolling as before, though the new option "Visual Graph Options | Layout Options | Mouse Wheel Zooms" could be used to revert to the scrolling behavior.
  • The new command "Layout | Update Layout Vigorously" is an incremental layout that is better at untangling crossed chains of nodes.
  • The new option "Visual Graph Options | Layout Options | Maximum Nodes for Animation" avoids animating layouts when there are too many nodes and links for animation to be fast enough for interactive use.
  • Three options on the "Visual Graph Options | Inclusion Options" child menu now have much larger defaults because the new spring layout can handle larger graphs. The new defaults will override any custom values that you may have set. These options are "Number of Total Links for Warning", "Number of Total Links for Abort", and "Number of Links from One Node for Warning".
  • Displaying the results of completed queries is faster.
  • The new option "Query Options | Exclude Orphans from Visual Graphs" controls whether orphan nodes may appear in a visual graph that's generated from a query.
  • Nodes in the graph view can now display pixmaps, if triples are added to the store for that. If the UPI of a node names a pixmap file on the local machine, then the graph view will display the pixmap for the node, rather than a text label. The UPI string can be either an absolute path string or a relative path string that will be merged with "Global Options | Miscellaneous | Document Base Folder" to find the actual file to use.
  • The various commands for loading triples now allow you to select multiple files at once in the file selection dialog (when they're in the same folder).
  • The command on the Layout menu for moving a node to the center while doing a layout has been removed. It was deemed not sufficiently useful to warrant a spot on the menu bar, so tell us if you did in fact use that command.
  • Fixed: A recent change had slowed down jumping to linked nodes in the table view, especially in larger stores.
  • Fixed: With a large graph displayed, clicking down and up in the overview pane and then moving the mouse had scrolled to where the mouse moved after the button was released.
Version 4.1.5
  • 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).
  • Chinese Language Enhancements and numerous optimizations.
  • Updated: Federation is now done on the server for general efficiency and to allow queries. Selecting multiple stores (in the same catalog) with "File | Open Remote Triple-Store" will always do the federation on the server. And "File | Federate Recent Stores" will federate on the server when all of the selected stores had been opened remotely and on the same server, and otherwise it will still federate on the client. Doing federation on the server allows SPARQL and Prolog queries to work on the federation.
  • The HTTP command to find and display paths between two nodes was recently broken when no predicates argument is passed (which means to find paths for all predicates).
  • The query HTTP command has a new show-graph-before-dialogs option to switch to the graph view before showing dialogs that ask the user what to do when there are many results, when generating a visual graph from the query results.
  • Fixed: The query view was not allowing INSERT and DELETE SPARQL queries.
  • Fixed: In 4.1.3, copying an IRI that includes non-ASCII characters from a Gruff pane into the query string widget would paste the non-ASCII characters with ntriples-format \uxxxx encoding. (Other copy and paste bugs were fixed in that release, though.)
  • The new option "Visual Graph Options | Node Labels | Maximum Word Length in Node Boxes" will wrap long words at non-spaces in node boxes to avoid very long node boxes that interfere with graph layout.
  • On the Mac, where Gruff has a problem loading pixmaps from files, the default background pixmap for the graph view can now be used if you use "Visual Graph Options | Window Background | Background Pixmap" and select the pixmap whose name is light-cyan-blue-around-lighter.
  • The command "Open Remote Triple-Store" has been merged into "Open Triple-Store", and "New Remote Triple-Store" has been merged into "New Triple-Store". The commands will now always ask for the server (which can be the local machine). By default, stores are always opened "remotely" (using the HTTP interface), though the new option "Global Options | Communications | Use Direct Access When Possible" can be turned on to still use direct access whenever the specified server is the local machine. (On AllegroGraph 3, direct access is always used when the server is the local machine, because otherwise a separate server must be run in a lisp.) This change removes extra menu items, and encourages consistent usage of the HTTP approach.
  • Fixed: The query view was not allowing INSERT and DELETE SPARQL queries.
  • Fixed: A SPARQL query that returns counts for a variable showed all blank cells in the column for those counts. This was generally true for any returned UPIs that are not used in triples in the store.
  • Fixed: In 4.1.3, copying an IRI that includes non-ASCII characters from a Gruff pane into the query string widget would paste the non-ASCII characters with ntriples-format \uxxxx encoding. (Other copy and paste bugs were fixed in that release, though.)
  • Better support for geospatials. They no longer break a query when they appear in the query results (with a remote connection). Both coordinates are now properly displayed rather than just one of them. And a geospatial node can now be correctly copied and pasted from one view to another.
  • The new option "Global Options | Communications | Use Session Ports" can be turned off to avoid using a separate "random" port for each open store. This is one way to avoid problems if a firewall permits the use of only certain specified ports. Some other options have been moved from the "Global Options | Miscellaneous" child menu to the new Communications child menu.
  • The new option "Visual Graph Options | Node Labels | Maximum Word Length in Node Boxes" will wrap long words at non-spaces in node boxes to avoid very long node boxes that interfere with graph layout.
  • The HTTP command to find and display paths between two nodes was recently broken when no predicates argument is passed (which means to find paths for all predicates).
  • The new command "View | View Current Store in AGWebView" invokes your web browser program to show the current store in AGWebView, so that you don't need to construct the URI for the store yourself or to browse to it in AGWebView.
  • Really fixed: The problem where the query view's "Create Visual Graph" button did not include link lines for predicates that are also used as nodes in the store, which was believed to be fixed in 4.0.13, is now really fixed. The "Create Visual Graph" feature will now also exclude orphan nodes from the visual graph.
  • The new options "Visual Graph Options | Node Labels | Absolute Maximum Node Label Length" and "Table Options | Maximum String Length in Table" avoid ever trying to display an extremely long string.
  • Fixed: Toggling "Table Options | Fit Row Height to Text" did not update the current query results table.
  • The selected-node HTTP command that returns the currently selected node now returns the label that Gruff is displaying for it in addition to its actual IRI or literal string as before. (Code that calls this may need to be updated.)
  • For lisp applications that embed a Gruff node pane, methods can be written on the new generic function new-selected-node to be notified when the user has selected a different node.
  • The new option "Visual Graph Options | Tooltips | Tooltip Background Color" allows specifying your own color for tooltip windows.
  • The query HTTP command has a new show-graph-before-dialogs option to switch to the graph view before showing dialogs that ask the user what to do when there are many results, when generating a visual graph from the query results.
Version 4.1.3
  • rfe11933 - The command "Open Remote Triple-Store" has been merged into "Open Triple-Store", and "New Remote Triple-Store" has been merged into "New Triple-Store". The commands will now always ask for the server (which can be the local machine). By default, stores are always opened "remotely" (using the HTTP interface), though the new option "Global Options | Communications | Use Direct Access When Possible" can be turned on to still use direct access whenever the specified server is the local machine. (On AllegroGraph 3, direct access is always used when the server is the local machine, because otherwise a separate server must be run in a lisp.) This change removes extra menu items, and encourages consistent usage of the HTTP approach.
  • Fixed: A SPARQL query that returns counts for a variable showed all blank cells in the column for those counts. This was generally true for any returned UPIs that are not used in triples in the store.
  • Better support for geospatials. They no longer break a query when they appear in the query results (with a remote connection). Both coordinates are now properly displayed rather than just one of them. And a geospatial node can now be correctly copied and pasted from one view to another.
  • The new option "Global Options | Communications | Use Session Ports" can be turned off to avoid using a separate "random" port for each open store. This is one way to avoid problems if a firewall permits the use of only certain specified ports. Some other options have been moved from the "Global Options | Miscellaneous" child menu to the new Communications child menu.
  • The new command "View | View Current Store in AGWebView" invokes your web browser program to show the current store in AGWebView, so that you don't need to construct the URI for the store yourself or to browse to it in AGWebView.
  • Really fixed: The problem where the query view's "Create Visual Graph" button did not include link lines for predicates that are also used as nodes in the store, which was believed to be fixed in 4.0.13, is now really fixed. The "Create Visual Graph" feature will now also exclude orphan nodes from the visual graph.
  • The new options "Visual Graph Options | Node Labels | Absolute Maximum Node Label Length" and "Table Options | Maximum String Length in Table" avoid ever trying to display an extremely long string.
  • Fixed: Toggling "Table Options | Fit Row Height to Text" did not update the current query results table.
  • The selected-node HTTP command that returns the currently selected node now returns the label that Gruff is displaying for it in addition to its actual IRI or literal string as before. (Code that calls this may need to be updated.)
  • The query and display-linked-nodes HTTP commands to Gruff can now take an allow-dialogs=yes argument to allow Gruff to display interactive dialogs even when commands are invoked via HTTP.
  • For lisp applications that embed a Gruff node pane, methods can be written on the new generic function new-selected-node to be notified when the user has selected a different node.
  • The new option "Visual Graph Options | Tooltips | Tooltip Background Color" allows specifying your own color for tooltip windows.
Version 4.0.17
  • Anonymous access now works from Gruff. To use anonymous access when opening a store, enter either nothing or "anonymous" when prompted for the user name, and nothing for the password. The server must be allowing anonymous access for the requested store, of course.
  • Federation is now done on the server for general efficiency and to allow queries. Selecting multiple stores (in the same catalog) with "File | Open Remote Triple-Store" will always do the federation on the server. And "File | Federate Recent Stores" will federate on the server when all of the selected stores had been opened remotely and on the same server, and otherwise it will still federate on the client. Doing federation on the server allows SPARQL and Prolog queries to work on the federation.
  • New tooltip information can be displayed in the outline view. The new option "Outline Options | Show Comments When Hovering" will display the comment properties of nodes when holding the mouse cursor over them in the outline view. The new option "Outline Options | Wrap Text When Hovering" will display the full text of long node names that are truncated due to not fitting on a single line in the outline view. "Outline Options | Outline Hovering Delay" controls the hovering delay time, and "Outline Options | Maximum Width for Wrapped Text" controls the width of the column of wrapped text.
  • Custom predicates can be used for tooltip text. The new option Global Options | Node Label Predicates | Custom Predicates for Node Comments allows specifying predicates other than rdfs:comment for supplying the text to display in tooltips in the graph view, and now in the outline view as well.
  • Truncated nodes can be expanded on the fly in the graph view. The new options "Visual Graph Options | Node Labels | Show Full Label When Selected" and "Visual Graph Options | Node Labels | Show Full Label When Under Mouse" allow expanding truncated long node labels in the graph view to show their complete text when either selecting the nodes or moving the mouse over them.
  • Creating the table of query results is faster. This includes when revisiting queries such as with "View | Go Back".
  • Fixed: "File | Open Triple-Store" was broken in 4.0.14 on AllegroGraph 4.x, and "File | Open Remote Triple-Store" needed to always be used instead (though the latter is needed on most platforms anyway).
  • Fixed: The outline view truncated some strings on the right side on Mac and Linux. The horizontal scrollbar also did not appear in the outline view when needed.
  • Fixed: Editing "Global Options | Node Label Predicates | Custom Predicates for Node Labels" could sometimes break.
  • Fixed: Sometimes on certain machines (Windows only), a bogus off-screen position of the Gruff window could be written to the options file, causing Gruff to not be visible when started back up.
  • Fixed: The query HTTP command may have broken when requesting an optional layout but there were more nodes in the query results than "Visual Graph Options | +Inclusion Options | Number of Total Links". And the returned status message now mentions the number of query results, with a note when this was too many for a visual graph, and no longer claims success for an error other than a timeout.
  • Fixed: The store-info HTTP command with the store-name option did not return the store name when it was opened interactively in Gruff with the standard store-opening commands (not including the list of recently-used stores).
  • Fixed: Turning on "Outline Options | Show Full URIs in Outline" did not update the scrollable width of the outline view.
Version 4.0.14
  • The table view will now display the name of the graph that each triple is in, when they are not in the default graph.
  • Fixed: Gruff's editing functionality did not support multiple graphs, always creating a replacement triple or recreated triple in the default graph rather than into the graph of the original triple. Also, creating a new triple will place it into the graph that is currently being browsed by itself, if any; see "Display | Display Triples of One Graph".
  • A new approach for "File | Extract Triples from RDFa Web Page" works for additional microformats other than RDFa. (Though the new option "Global Options | Miscellaneous | Use any23.org for RDFa" allows reverting to the old approach.)
  • Fixed: Copying and pasting nodes from one Gruff view to another did not work for literals and blank nodes.
  • Fixed: Generating a visual graph from query results was not complete when a URI in the results is used as both a node and a predicate in the store.
Version 4.0.12
  • Enhancements to the HTTP interface for external control of Gruff. New HTTP commands cover federating stores and adding reasoning, selecting and pinning nodes, removing nodes from the display, fetching and setting any numeric and boolean user options, updating the layout, and setting the layout direction constraint of a predicate. (See the existing command for opening a store for the new federation and reasoning options.) Also, the HTTP query command can now take a keep-old-nodes argument when laying out triples from query results. Timeouts during queries or path-finding now return a proper failure status. The ntriples option of the lay-out-triples command now handles backslash escape sequences as in ntriples files. And Gruff's status bar will show the response strings that are returned by HTTP.
  • Federations will now be listed in the set of recently-open stores on the File menu, allowing a federation to be recreated quickly in later Gruff sessions. Federation is now done on the server, which allows SPARQL and Prolog queries to work in federations.
  • Path-finding is more robust and efficient by doing the entire search on the server, and no longer fails to display some paths that were found (such as paths that include blank nodes or encoded typed literals). The end nodes of paths may now be resources, literals, or blank nodes, rather than only resources as before.
  • Initially finding all predicates in the store (for presenting them as choices) is faster.
  • Still more HTTP commands. The new HTTP commands current-predicates and display-linked-nodes allow remote software to establish the current predicates and then to display nodes that are linked by those predicates. The find-paths command can take predicates=current to find paths for the current predicates. The new node-position HTTP command allows finding out where a node is currently positioned and to move it to a new position. The new number-of-nodes HTTP command returns the number of nodes that are currently displayed in the graph view, and the new node-at-index command returns the URI or literal string of the node at a particular index.
  • Fixed: Typed literals that are encoded in the store were not being found from strings that are entered interactively by the user or passed in HTTP commands.
  • Fixed: A freetext search expression that has a "phrase in quotes" or wildcard characterss in a word that's inside a logical expression was not finding matches.
  • Fixed: SPARQL queries broke on SPARQL 1.1 non-simple predicates.
  • Fixed: A language literal or typed literal that was entered by the user or returned by the path-finding commands was sometimes getting interned as a resource rather then finding a matching existing literal.
  • Fixed: "Remove | Remove All Leaf Nodes" sometimes removed some nodes that were not leaves.
Version 4.0.7
  • 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).
  • A fair number of keyboard shortcuts have changed, to make things more consistent with the new outline view. In particular, the unshifted shortcuts on the Display menu now add the shift key; the shortcuts for selecting current predicates are now P and Shift-P instead of I and Shift-I; and O now switches to the outline view, so removing orphans is now Shift-O, and removing leaves is now Control-Shift-O.
  • The dialog for choosing current predicates is simpler. The two columns for choosing predicates in each of the two "triple directions" have been collapsed into a single column. The multiple columns were deemed more confusing than useful.
  • There are additional commands in the HTTP interface, for invoking Gruff from external software.
  • Many miscellaneous improvements.
Version 3.1.18-19
  • Fixed: Freetext queries that contain wildcard characters did not work on AllegroGraph 4.x in a remote Gruff on Windows or the Mac.
  • Fixed: Sometimes an operation from a pop-up menu such as selecting a certain type of node would claim that there are no nodes of that type the first time you try.
  • Fixed: Selecting a node by freetext for an edit in the table view would display the node in the table after it used it for the edit.
  • Displaying encoded typed literals whose values are not strings was broken recently, and is now fixed. And encoded literals of type "date" now display a reasonable label for the first time.
  • Finding all types and all predicates in the store (for menu choices) is much faster.
Version 3.1.15-17

A fix for non-string encoded types. A bad bug has been fixed that broke Gruff whenever it displayed a literal node that uses an encoded type whose value is not a string.

  • Ubuntu-specific fixes. Two problems that caused Gruff to become very confused on recent releases of Ubuntu have been fixed.
  • Reselecting sets of current predicates. The new command "Link | Use a Recent Set of Current Predicates" allows quickly reselecting a set of current predicates that you've used recently in the currently open store.
  • Controlling menu width. The new option "Global Options | Maximum Menu String Length" determines the length at which strings on menus will be truncated to avoid overly wide menus.

Controlling Gruff from external software via HTTP. Gruff can now start up an HTTP server and then handle several commands from external software to do things like laying out an arbitrary set of triples, doing queries, and displaying properties in the table view. See the new command "Global Options | Start HTTP Server" and the new documentation section "The HTTP Interface to Gruff" at the end of the single Gruff document.

Version 3.1.11-14

Fixed: Sometimes the bottom line of a three-line node label in the graph
view was chopped off on the GTK platforms.

Quickly toggling tables between one-text-line-per-property and full
text. The existing option "Table Options | Fit Row Height to Text" now
updates the table immediately, and has a keyboard shortcut for quickly
toggling the view.

Suppressing multiple line styles. The new option "Visual Graph Options
| Node and Link Color for Types | Suppress Link Line Styles" causes all
link lines in the graph view to be drawn in the same way.

Fixed: Clicking in the empty area below the bottom of all table rows was
breaking.

Fixed: The pretty label for a literal contained backslash characters
before any embedded double-quote characters.

Fixed: The editing pop-up menu in the table view showed the reverse
keyboard shortcuts for adding a new row for the same or different
predicate.

Finding paths when using a remote server is much faster. The new
(perhaps temporary) option "Visual Graph Options | Finding Paths Between
Nodes | Find Remote Paths on Server" can be toggled off to compare the
old basic approach with the new faster approach.

The new command "File | Load Triples | Load Turtle" allows loading
triples from a file that's in Turtle format.

Bug fixes

Version 3.1.10
  • Fixed the recently broken graphical query view. Some basic things were broken in the graphical query view in the previous release (3.0.8), including simply left-clicking a variable node.
  • Fixed saving layouts that include blank nodes. This had worked earlier, but became broken somewhat recently without being noticed.
  • Fixed a shrinking pane in the query view. The query string widget in the query view was getting a bit shorter each time Gruff was restarted. That required the user to eventually use the split-bar widget to drag it taller again. The split-bar positions will also now be restored from the previous Gruff session.
  • Selecting a node of a predicate in the graphical query view. In the graphical query view, when you select a different non-variable node for a node picture, if a link line for a non-variable predicate is connected to the node picture then there will be a new option to select a subject or object of that predicate as the replacement node.
  • Clarifying the term "Label Properties". Various options that had used the expression "Label Properties" now speak of "Label Predicates" instead. This is to avoid the impression that the options are about attributes of labels, when in fact they deal with predicates whose values are used as labels.
  • Fixed saving layouts as pixmaps on GTK. On Linux and the Mac, saving a layout as a pixmap had left a blank rectangle in the saved image where the file selection dialog had covered it.
Version 3.1.8
  • Shortcut menus in the graph view. There are now right-click pop-up menus in the graph view, as in other views before. There are separate menus when clicking on a node, a link line, or the background. The commands are mostly borrowed from the menu bar.
  • Store-editing in the graph view. Triples can now be created, reversed, and deleted in the graph view, rather than only in the table view. The new commands are both on the Edit pull-down menu and on the new pop-up menus for nodes and links. When creating a triple by linking displayed objects, clicking on a second node will create a "regular" triple for the two linked nodes, while clicking on a link line will create a triple that reifies the triple of that link line.
  • Reification support in the graph view. The graph view now displays reification intuitively by drawing a link line from a reifying subject node directly to the middle of the link line for the triple that it reifies. Also, if a link line's triple is reified, then a command on its pop-up menu allows you to display a reifying triple. And a triple ID node has a pop-up menu command to replace it with the nodes and link of the triple that it represents.
  • More reification support in the table view. Any table row whose triple is reified will display an icon that indicates how many reifying triples it has, and that icon can be clicked to display the reifying triples. Also, when replacing the object of a row with a triple ID node, it will now offer a menu of all of the triple ID nodes that you have copied in the current Gruff session.
  • Adding nodes to a relatively large visual graph is faster. Inefficiencies in finding other displayed nodes that are linked by the current predicates were fixed.
  • The keyboard shortcut for showing pop-up menus (in all views) is now the M key rather than the N key.
  • The command "Link | Display Linked Nodes from a List" had been renamed to "Display Linked Nodes from a Tree" for clarity.
  • Namespace abbreviations bug fixed. A recent bad bug was fixed where the global namespace abbreviations were wiped out when opening a store.
  • New CSV query output format options. There are two new options for the format of CSV query output, namely "Query Options | CSV File Include Full URIs" and "Query Options | CSV File Include Column Headers".
  • Delivering stores that access document files. The new option "Global Options | Document Base Folder" allows specifying relative pathnames of documents as node values, and then passing the store and document files to others who could place the documents into a folder of their own choice and then use Gruff to invoke other programs to view the documents.
Version 3.0.36
  • Gruff for AllegroGraph on Windows and Mac. Gruff now works as a remote client on Windows, Mac, and Linux with an AllegroGraph 4.3 server that's running on 64-bit Linux as usual.
  • Creating a remote store. The new command File | New Remote Triple-Store allows creating a remote store in Gruff. Previously for a remote store you needed to create it outside of Gruff and then open it in Gruff.
  • A cleaner menu bar. Pull-down menus or some of the commands on them are now removed in views where they are not applicable, to decrease the clutter of many menu commands. As part of this, the options menus have been reorganized, grouping options according to the views in which they are available.
  • Reification support. There is new support for reification when using either triple-id typed literals (as we suggest) or RDF-style reification. Labels for triple-id nodes and rdf:Statement nodes will mention the three parts of their triples, and a triple-id node that is displayed in the table view will have special rows for the three parts of its triple. You can create reified triples in the table view starting with the new command "Table View Value Column Navigation | Copy Triple ID to Clipboard" (see the documenation). And fancier reification support in the graph view is coming up!
  • Freetext enhancements on AllegroGraph 4:
    • On AllegroGraph 4, the new command "Display | Current Freetext Index" allows selecting any freetext index to search and/or modify, rather than always using a single index called "gruff". This allows quickly switching between various already-indexed sets of predicates to search. The command also allows creating a new freetext index with some arbitrary name, and the menu of indexes includes an option to delete an index.
    • On AllegroGraph 4, the "Display | Edit Freetext Predicates" dialog has additional widgets for specifying options such as whether to index resources (rather than literals only), which triple fields to index, the minimum character length for indexed words, and stop words that are never indexed.
    • On AllegroGraph 4, you can now use either the AG 3.3 or 4.x style in a freetext query string that contains a word containing wildcard characters or a phrase with embedded spaces. Previously there was no way to specify a phrase on AG4, and wildcard words did not work when specified as in the example on the dialog.
  • Better support for international characters. Non-ASCII characters are now handled when editing values in the table view, and when entering query strings and freetext search expressions. Also, the new option "Drawing Options | Auto Font Switching on Text Entry" controls whether text-editing panes in Gruff automatically switch fonts when needed to draw inserted characters properly, which may be needed for Asian characters especially. (There are also two somewhat related options, Edit | Percent-Decode Characters for Editing and Edit | Percent-Encode Non-ASCII After Editing, though those options are preliminary and still under discussion.)
  • Fixed: On Linux or Mac, Gruff could mistakenly believe that the user had immediately aborted certain operations such as clicking on a second node for finding paths, or dragging a new predicate link in the graphical query view, or specifying the selected or ordered variables there. (This happened when Gruff hadn't received a key-up event for the Escape key some time earlier.)
  • Fixed: At some point "Link | Display Only Paths Between Two Nodes" stopped pinning the two end nodes at the left and right sides of the window, to stretch out the paths horizontally between them.
  • Fixed: "Global Options | Widget Font" did not affect radio buttons and check boxes.
  • Fixed: Changing the canvas size in the graphical query view left grouper boxes in the wrong place.
  • The graph view reflects table view edits. Whenever a triple is created or edited in the table view, the nodes and link for that triple are now automatically added to the graph view. So now the graph view not only serves as a history of what you've visited in the table view as before, but also as a history of what you've edited in the table view as well.
  • The query pane handles resizing Gruff small better.
  • Visiting web pages from the query view. You can visit the web page of a node from the query view's results table, as with the table view before. See the right-click pop-up menu.
  • No more option to exclude literals. We have removed the Include Literals option, and it now effectively is always true. It was deemed a rather arbitrary distinction that was more potentially confusing than useful.
Version 3.0.11
  • Updated to use new Mac OS X GTK+ Framework installation. This new version of Gruff should be much easier to use on Mac OS X installations, due to the GTK installation being much easier to install. It no longer relies on Mac Ports. See the new installation instructions for X11 and GTK for use with Gruff.
  • Allow removing namespace abbreviation mappings.
  • Stop showing a warning dialog at startup if restriction reasoning is enabled.
Version 3.0.9
  • New user option Inclusion Options | Reasoner Enables Restriction Reasoning.
Version 3.0.4
  • New store-editing functionality 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.
  • New command File | Extract Triples from an RDFa Web Page. The subset of triples that are extracted can be controlled with the new option Inclusion Options | Ignored RDFa Relationships. This command can be used behind a firewall by using the new option Inclusion Options | HTTP Proxy.
  • The table view has a separate shift-right-click menu of navigation commands. The commands have shortcuts for moving around the table with keystrokes.
  • Some renaming and moving of commands. The Add menu is now called the Display menu to differentiate it from the new functionality for creating triples. The Table & Query Options menu has been merged into other menus, mostly into a Table View child menu of the Drawing Options menu. Commands on the Link, Remove, Select, and Layout menus that are not specific to the graph view have been moved to other menus, especially the View menu. The former "Undo / Go Back" command is now simply the "Go Back" command, while the new "Undo" command relates to creating and deleting triples.
  • New command Display | Display a Recently-Selected Node. This is handy for starting a new Gruff session by displaying one or more nodes that you were using in the previous session for the same store.
  • An important fix for URI-encoded (percent-encoded) nodes. When deriving pretty labels for nodes from URIs, percent-encoded characters (%xx) were not handled correctly, leading to garbage characters in node labels.
  • Improvements to Drawing Options | Namespace Abbreviations.
  • New option Layout Options | Do Automatic Incremental Layouts. This allows suppressing automatic layouts when you have nodes arranged where you want them.
  • New option Drawing Options | Table View | Display Literals of All Languages. It defaults to true, which is NOT the old behavior.
  • New option Inclusion Options | Finding Paths | Maximum Paths to Display.
  • New option Inclusion Options | Confirm Exit.
  • Basic Emacs editing keystrokes can be used in the query text widget. Also when editing values in the table view.
  • Query results can be written to file as textual tables. See the various new options on the Inclusion Options | Query Options menu and the new Write Text Report button widget in the query view.
  • Invoking other programs to display documents. (Windows platform only.) The control-shift-left-click gesture for visiting the web page that a node names will instead invoke a program to display a document if the node value appears to name a non-HTML document file. This will use the program that's registered for that type of file, unless the new option Drawing Options | Table View | Use Web Browser for All Documents is enabled.
  • A bad triple-indexing inefficiency is fixed. (This applies to AllegroGraph 3.3 only.) For efficiency, Gruff now indexes only new triples automatically, and provides the new command File | Index All Triples that you could use when you can wait for it.
  • You can now generate a bug report for a query error.
  • Inclusion Options | Remove Orphans on Node Removal is no longer true by default.
  • The documentation has been reorganized.
Version 2.0.30
  • New command View | Browse a Single Graph.
  • New command Add | Display Triples of One Graph.
  • New commands for loading triples from N-Quads and Trix files.
  • The new command File | Federate Recent Stores allows browsing a combination of recently-opened stores at one time. And on Agraph4 you can browse a federation of stores that are in the same catalog by specifying multiple store names in the "File | Open Triple-Store" dialog that lists the stores.
  • The behind-the-scenes collecting of all predicates, nodes, types, and classes for offering in menus is much faster.
  • New option Drawing Options | Link Labels | Draw Link Labels For Node Under Mouse.
  • Clicking a node or link in the legend will flash matches in the overview pane to show you where to scroll to them.
  • Fixed: Pop-up menus that are near the edge of the screen sometimes appeared far away from the mouse (on the Windows platform).
  • New option Drawing Options | Link Labels | Display subClassOf as Superclass.
Version 2.0.20
  • New Graphical Query View for constructing queries as diagrams.
  • The Graphical Query View has grouper boxes for group graph patterns.
  • New command File | Federate Recent Stores.
  • The list of recent stores now includes remote stores.
  • Gruff can open remote stores on Allegrograph 4.
  • A new way to select nodes and predicates from recently-used ones.
  • Returning to a state in the Table View restores the scroll position.
  • Menus of known catalogs and stores when doing an open on AllegroGraph 4.
  • Triples can be loaded from a web page rather than from a file.
  • You can create and open stores in catalogs other than root (AllegroGraph 4).
  • More command line arguments for opening a store at startup. select-distinct is supported in SPARQL queries.
  • New nodes are added at the mouse cursor rather than in the center.
  • Feedback when a command isn't applicable to the current view.
  • Multiple text lines for "Custom Properties for Node Labels".
  • Improved placement of link labels.
  • A bug on GTK with pop-up menus not appearing has been fixed.
Version 1.6.7
  • Fixed: The new File | Export commands failed when bridge lines are present.
  • New option "Drawing Options | Case-Sensitive Sort for Menus".
  • URIs pasted into the query string box will now use namespace abbreviations.
  • Fixed: Loading gruff.fasl into lisp was broken in the previous release.
  • Fixed: Much of the API for use in lisp no longer worked as documented.
Version 1.6.2
  • The View menu has three new commands for using an overview/scroller pane.
  • New submenu File | Export Displayed Data As ...
  • Child menu names are now included in the documentation.
  • New freetext command "Add | Edit the Set of Registered Predicates".
  • The dialog for selecting a triple-store directory has been improved.
  • A thick border is drawn in the table view between the as-subject and as-object groups.
Version 1.5.2
  • Based on Allegro CL 8.2 and AG 3.3.
  • Now available on Mac OS X 10.5 or later, which requires install gtk2 and X11.
Version 1.5.0
  • Fixed: Link | Add a Linked Node from Menus broke with more than 25 choices.
  • Fixed: The Help | Quick Start window was blank on 64-bit Windows.
  • There is a new File | Close Triple-Store command.
  • File | Load N-Triples prompts for a graph to place the triples into.
  • Control-shift-click no longer attempts to visit a web page for a literal.
  • Prolog queries now work when some returned values are not UPIs or strings.
  • Fixed a break with loading a layout that contains bridge lines.
  • Fixed a problem that could make File | Load RDF / XML fail.
  • Starting gruff with "gruff some-path" will open the store at that path.
Version 1.4.1
  • New commands on the Add menu for displaying nodes that match freetext queries.
  • New dialogs allow selecting a subset of matches that exceed various user limits.
  • New option Drawing Options | Show Full URIs on Nodes.
  • New option Drawing Options | Specify Line Width for Selected Link's Predicate.
  • New option Drawing Options | Maximum Node Label Length.
  • New option Drawing Options | Enforce Maximum Node Label Length.
  • New option Inclusion Options | Maximum Choices When Selecting a Subset.
  • New button in the Query View to save the results as Comma-Separated Values.
  • Add a Node by URI no longer requires a ! with a namespace abbreviation.
  • Fixed status bar messages for busy states not appearing on Linux.
  • Fixed a bad inefficiency with finding all classes in a large class hierarchy.
  • Fixed a break when using Gruff on a Windows 2000 with no gdiplus.dll.
  • Fixed tooltips bringing Gruff to the front when moving the mouse over Gruff.
Version 1.3.0
  • Options for smoother lines and text at Drawing Options | Antialiasing.
  • Options for 3D node box color gradients at Drawing Options | Color Gradients.
  • Options for a background pixmap at Drawing Options | Window Background.
  • Option for legend background color at Drawing Options | Window Background.
  • Option for a border color at Drawing Options | Node Border Color.
  • If the new options above slow things down, they can easily be turned off.
  • Distinct Add menu commands for adding nodes for types or their instances.
  • Add an Instance Node by Class Hierarchy grays out instanceless classes.
  • New option Table View Options | Show Full URIs in Tables (with shortcut).
  • A query no longer reports (possibly unintended) explicit URIs not found in the store.
  • The Graph View's initial canvas size no longer includes a scrolled-off area.
  • The position, size, and maximized status of Gruff are remembered across sessions.
  • Column widths and split-bar positions are remembered across sessions.
  • The default multipredicate line style no longer uses nonantialiasable dashing.
  • No-longer-existing files are removed from the lists of recent states to revisit.
  • You can now cancel a layout during the final compression and centering stages.
  • Fixed: Text in the legend pane sometimes failed to draw on Linux.
  • Fixed: Multiple objects with the same local name were excluded from various menus.
  • Fixed: Add | Add a Node By Label didn't work for no-language label literals.
  • Programmatic option name abbreviate-node-labels is now exclude-namespaces-from-labels.
Version 1.2.1
  • There's a new Help | Use Web Browser for Menu Help option.
  • Turn on use-line-color-for-link-labels by default.
  • Generalize node-info and predicate-info objects so that they do not necessarily represent a UPI, and instead can represent an arbitrary string (such as one generated by a Prolog query) or a symbol (such as a variable in the upcoming graphical query view).
  • Handle nodes better that represent strings that were generated by Prolog queries that are not literals in the store. Stop interning them into the store.
  • Stop assuming that any literal string in a Prolog query names a UPI that's in the store. Stop searching (lisp ...) subexpressions for explicit UPIs to add to the lists of explicit UPIs from the query.
  • Disable various commands on query results table cells that contain constructed strings from Prolog queries, when the commands need a UPI.
  • Make the legend pane handle HOME, END, and PAGEUP/DOWN.
Version 1.2.0
  • Prolog queries are now supported, including defining rules and other evaluations.
  • Queries can be named and revisited later in the same session from a menu.
  • The File menu's save and load commands save different things in different views.
  • The states to reload at the bottom of the View menu differ in different views.
  • The above changes save query strings in the Query View, and objects in the Table View.
  • Labels can be shown on link lines. See Drawing Options | Link Labels.
  • You can press F1 while highlighting a menu command to visit its help directly.
  • Finding all types and all nodes (for Add menu commands) is more efficient.
  • Inclusion Options | All Types Timeout has been removed; you can abort it instead.
  • Fixed: Create a Visual Graph from Results broke if no store is open.
  • Fixed: Create a Visual Graph did nothing if there had been no Graph View content.
  • Fixed: Clicking a query results table cell that has no value broke.
  • Fixed: Display Paths Between Two Nodes sometimes scrolled the paths out of view.
  • Fixed: The usual automatic layout didn't happen when adding only orphan nodes.
Version 1.1.9
  • Fixed: It was impossible to type certain letters into a query string on Linux.
  • Fixed: Adding a single node removed the types for other nodes from the legend.
  • Fixed: Adding a single node didn't push an undo state to return to.
  • New command File | Apply RDFS++ Reasoner adds reasoning to the store being browsed.
  • Add a Node By Class Hierarchy now lets you alternately select an instance of a class.
  • New command Add a Node By Type lists all types alphabetically in a series of menus.
  • Inclusion Options | All Types Timeout limits the time for searching for all types.
  • The Layout Options | Displaying Paths submenu covers where to place path end nodes.
  • Display Paths Between Two Nodes now pins the end nodes at the window edges by default.
  • New option Inclusion Options | Finding Paths | Find Only Shortest Paths.
  • Newly-added nodes and selected search matches will now flash momentarily by default.
  • The new Drawing Options | Widget Font option affects the font in miscelleanous places.
  • Control-right-clicking a table cell is now a shortcut for the Copy command.
  • A singly-added node will move to an empty spot rather than forcing its way to the middle.
  • Creating a a visual graph from query results now warns when there are many links.
  • Gruff no longer closes *db* at Gruff exit time when used in a development lisp.
  • The Home and End keys now work in the graph view, including horizontally with Control.
  • User function find-and-display-paths now takes a finder-function argument.
  • find-and-display-paths now returns the list of paths, not its length.
Version 1.1.
  • Blank nodes can now be saved in layouts.
  • Gruff no longer globally enables the bang reader.
  • Opening a store will now always ask for read-only or read/write mode.
  • The user function display-paths is now called find-and-display-paths.
  • The new user function display-paths displays already-found paths.
  • A warning will be shown on Linux for a null DISPLAY environment variable.
  • Dragging the query results grid columns to a new order is fixed.
  • Refresh the legend pane when node labels options are changed.
  • GTK warnings about unregistering nonregistered menu shortcuts is fixed.
  • A new command on the legend menu removes all matching nodes or links.
  • The Query View now supports DESCRIBE queries.
  • Error is friendler when trying a query other than a SELECT or DESCRIBE.
  • You will be warned once if the open triple-store is not fully indexed.
  • There's a new option "Layout Options | Limit Outward Stretching".
  • A glitch with finding paths between selected nodees is avoided for now.
  • A query no longer breaks if some resulting variable values are nil.
  • Going back to a table that has no rows no longer breaks.
  • Aborting a search in the node pane once again undoes any scrolling.
Version 1.1.5
  • Unconnected groups of nodes are no longer left far apart from each other.
  • The new commands "Save Layout State" and "Load Layout State" on the File menu allow saving a layout and then reloading it at any time in the future when the same triple-store is open. The most recently saved or loaded layouts for the currently-open store are listed at the bottom of the View menu for quick reloading.
  • There is a new optional legend pane in the graph view that displays the meaning of each predicate line style and each node type background color. Right-click an item in the legend to get a menu of a few commands that can be applied to them.
  • You can now exit eraser mode by clicking the background or moving to another view or another application.
  • Some menu commands that apply only to the graph view first select the graph view if it's not the current view.
  • The keyboard shortcut for Load N-Triples has changed from control-L to control-shift-L to free up Control-L for the new Load Layout State command.
  • New options on the View menu allow flashing nodes or links that match the selected item in the legend.
  • The new command Link | Find Paths Between Two Nodes allows adding nodes and links that comprise paths between two selected nodes. There is a corresponding user function display-paths.
  • Many small fixes and improvements.
  • The new command Link | Display Paths Between Two Nodes is similar to the recent Link | Add Paths Between Two Nodes, but it removes all nodes and links that aren't in the paths.
Version 1.0.19
  • Better handling of loading triples into a pre-existing triple store.
  • Fix control-shift-click gesture to send a URL to a web browser.
  • Make string search in the graph view highlight multiple matches.
  • Selecting a table cell with alt-click will no longer show a mouse cursor for a drag-and-drop.
  • The new variables *selected-node* and *selected-link* may now be used in a development lisp where gruff.fasl is loaded.
  • Improvements to the documentation, including a section for special mouse clicks.
  • Better layout when a node has more than several links that have layout direction constraints.
  • New option: Layout Options | Spacing Increment for Many Links. Layout | Max Links per Node Copy has moved down the menu to be with it.
  • Fixed a problem with that gesture sometimes not bringing Firefox to the front.
Version 1.0.15
  • The distribution now includes the file gruff.fasl for using in a development Lisp.
  • Fixed a problem with Drawing Options | Custom Property for Node Labels.
  • Reduced the number of communications with a remote server to improve speed in client-server mode.
Version 1.0.13
  • 1.0.13 on 28 July, 2008:
    • The Quick Start window contents now appear under GTK.
    • Fix for large fonts and the dialog that asks for a directory for a new triple store.
    • Misc bug fixes.
  • Copyright © 2023 Franz Inc., All Rights Reserved | Privacy Statement Twitter