jSpace 1.0 Preview

October 1st, 2008 · Michael Grove

Kendall put me on the hook for this post, but I was planning to write it anyway. At least, I was planning on the post that will follow this one, where I talk about how I created the new jSpace UI, but it makes sense to show off the new UI before getting into the technical bits.

As we recently announced, jSpace was deployed as the client for NASA’s POPS application (you can read more about it here). A lot of work went into the tool to get it ready for deployment into a production environment, and through a lot of testing, both internally, and via a pilot user test at NASA, we were able to shake a lot of bugs and smooth out the rough edges. Internally, the version deployed for NASA was .90, and in the months since deployment, I’ve been collecting a list of tickets to take jSpace to 1.0.

One of the major categories of tickets for the 1.0 version has been UI improvements. jSpace is a powerful application, and it has received lots of great feedback from users at NASA, but it does not look as polished as one might expect for an end user tool. In one of my tickets, I described it as utilitarian; the UI works, but doesn’t have any wow factor. So this was one of my big aims for the new version of jSpace, to sex up the interface to give it a bit of that wow factor.

My short list for new UI features was


  • Update the look of the application

  • Drag and Drop to move columns

  • Collapsible columns

  • Animations for the movement, addition, and closing of columns

  • Better “busy” state visuals (more correctly, adding a visual representation for a busy state)

  • Add a new type of column widget, specifically, a map based one (think Google Maps)

Armed with a fist full of tickets for these items, and some new libraries from the folks at SwingLabs, I set off to make these happen; first as a stand-alone mockup, and then by incorporating that code into the trunk of jSpace. Here’s how it ended up:

1) Update the look of the application:
This is a shot of the basic jSpace interface browsing our baseball statistics dataset. The query results in a list of all shortstops to have ever played for any Baltimore Orioles franchise. I’ve selected my all-time favorite, Cal Ripken Jr, to show off the Web View control which will display results from a web search, in this case the Cal Ripken page from Wikipedia. One other thing to point out is that we’ve simplified the buttons at the top of the column. There are only two buttons now, the one on the right collapses/expands the column (see #3), and the other displays the context menu for the column which is where you will find the items for perform operations on the column, such as closing or move it.

2) Drag and Drop to move columns:
Here you can see that I’m dragging a column, in this case the team column, to a different slot in the interface. You’ll see the drop indicator (that red line) showing the new location of the column. Once I drop the column, the column will slide into its new location ala the column movement animation (see #4).

3) Collapsible columns:
One problem with browsing a complex data set is that you can have more columns than you can fit on the screen. The column panel scrolls, so you can have part of your selection path scrolled off screen, which makes it easier to lose the context of your search. Now, you can collapse a column once you’ve made a selection to save some screen space, and when you mouse over the collapsed column, the tooltip shows you what the selection is, and if you click on the link to any of the selected items, the column will expand and scroll down to that item.

4) Animations for the movement, addition, and closing of columns:

Previously, if you moved, added, or closed a column, the columns on screen would magically just update, there was not much visual indication that anything was happening, it just did. I wanted it to look like something was actually happening when you changed the columns, so now we have animations for when you move (they swap), add (it fades in while expanding into its position), or close (it collapses and fades out) a column.

5) “Busy” state for columns:
When you make a selection, or otherwise do something to alter the selection path, like closing a column or adding a new one, the database is queried to update the contents of the UI. In the past, the only indication of this was that 1) the mouse cursor became the wait cursor and 2) the UI froze until the operation was complete. And sometimes because the UI froze, the cursor never changed. In either case, not a very friendly user experience. So I traded some bad user mojo for threading headaches, and I do the queries and UI updates in different threads. This allowed me to provide a busy animation for a column that is updating itself from the database. It’s now easy for the user to tell when a column(s) is doing something.

6) New Map column widget:

I wanted to create a map column widget because it would be useful, not only in general, but for the POPS application, and because it would help me work out the kinks in the extensibility of the column UI API. I ended up with two variations, one with the map inline, and one with the map as an “alternate view” of the column. For the inline map, since a column is usually an awfully small space to cram a map into, when you mouse into the column, it will “blow up” and give you a larger map to do the selection from.

Until next time, stay classy cyberspace.

A Week in Den Haag

September 29th, 2008 · Kendall Clark

I was in the Netherlands for a week on business: a few days at a NATO “semantic interoperability” workshop and then a day meeting with some of our new Dutch research partners—more about that (and them) in the near future.

Thoughts and observations, more personal than professional:

  1. Nearly everyone I spoke with for more than a few minutes referred to the financial shockwaves in the US, often with more than a little schadenfreude. But I can’t blame them.
  2. The Dutch, like the Danes, are courteous and helpful as a rule. I seem to meet more Dutch who speak English than Danes, though, so that biases my perceptions of the two a bit. I’ve also spent more time in NL than DK (6 weeks versus 2). Neither are as effusively friendly and, well, warm as the Spanish or Italians in my experience.
  3. Heineken in public, casually, on trains, walking down the street—that’s cool and very Dutch, but not my thing. I don’t think I could ever live anywhere, including the Netherlands, long enough to drink a beer on a train.
  4. My wife, a graphic designer, is quite well-traveled, speaks Spanish and Italian, and is worldly-wise; but she’s still never been to the Netherlands and is envious of my trips largely because of the Rijksmuseum and Dutch design generally.
  5. Related: I claim the Netherlands is the most typographically correct culture on earth. It’s a small thing, I suppose, but it makes me happy. I suppose the Swiss or perhaps the Danes would object.
  6. From Den Haag to Delft via taxi: 50 euros. Public transit: 5 euros.
  7. The fashion trends today in Europe for young women replay the preppy fashion of the late 80s, when I was in high school. This makes me feel incredibly old, in a way few things do.
  8. If an adjacent table of self-styled “liberal Republicans” talks so loudly as to make it impossible not to listen, my failure to ignore their conversations, by virtue of eating alone myself, is not eavesdropping, it’s self-defense.
  9. That I don’t repeat their names here—public figures, both of them—and some of their more shockingly tasteless dinner conversation (“oh, it’s one of those Jewish names” and other tidbits) is an undeserved mercy.
  10. If you ever need a good dinner in Den Haag, Spijs is lovely.
  11. My server—new: her third night—at Spijs insisted that a “gamboa” was not a “shrimp”, in English, since it wasn’t very small. I, a native English speaker, tried three times to assure her that “shrimp” was correct, but she knew better.
  12. She did accept my claim that “rack of deer” was better replaced with “rack of venison”, however.
  13. Monkfish—which she described as “the one so ugly they cut off its head”—grilled in a tandoor like kebab is surprisingly good.
  14. The beach in Den Haag—in Scheveningen, precisely—is stunning this time of year, if you’re lucky enough to get clear weather, as I was for three days.
  15. I’m now officially too old—a trend, that—for the ritual walk through Amsterdam’s red light district: boring and pointless. Give me a stroll through Leiden, a bami goreng (or even just a kroket), and an afternoon with van Rijn, and I’m a pig in mud.

Upcoming on This Blog…

September 14th, 2008 · Kendall Clark

I’m starting a new kind of weblog post: a biweekly, short preview post on what’s coming up next on this weblog, which is meant to have two results: first, to give our readers some sense of what’s upcoming; second, to lock us into writing here more often, which is a good thing for everyone.

  1. Evren Sirin and Mike Smith are working on some short posts about the upcoming Pellet 2.0 release, which will be our first major new release of Pellet with tons of changes—previews coming here first…
  2. Mike Grove is working on a short post about the new jSpace UI, which will be hugely improved and quite sexy
  3. Bijan Parsia and Markus Stocker are working on a series of posts about our policy management products
  4. I’m working on a couple of posts about automated planning and our offerings in that space, which we don’t talk about as much as our automated reasoning products, but which are equally interesting and useful

Okay, now that I’ve opened my big mouth publicly about this stuff, we have to do it… :)

3 Strange Startup Ideas

September 11th, 2008 · Kendall Clark

I don’t really know if these are strange (read, “unusual” or “novel”), and there are probably 5 companies already working on each one, but anyway:

First, cheap, lightweight user studies for development groups based on Amazon’s Mechanical Turk.

IMO, there are only two ways to build excellent user-facing (that is, usable) software: either you get extremely lucky (or you’re just building a variant of something that’s known to be usable) or you user-test the crap out of what you’re doing, in an incessant cyle of test-refactor-retest.

But user tests are tedious to setup and manage, such that most development teams just skip them. That failure to overcome tedious inertia leads to a lot of unusable junk software.

So how about building a startup that gave development teams an easy way to arrange arbitrarily sized user studies by harnessing the person power at Amazon’s Mechanical Turk service? Cheap, easy, and willing are the watchwords of user studies; and 2 cents per task is not free, but pretty damn cheap. And from what I’ve read recently, Mechanical Turk workers sound better than the average user study participant.

Second, interactive fiction SDK (and associated cloud-based hosting, infrastructure, etc) for Web-based games. Three facts: (1) I stopped—dead, cold turkey, never to return again—gaming the day I discovered the Web in January, 1994. I can’t be the only one. (2) Lots of movies and TV series now use the Web as a kind of game canvas—reminiscent of interactive fiction games, back in the day—to extend their fictional worlds onto the real Web. (3) Interactive fiction SDKs and languages, like Inform 6 and 7, are still going strong.

Note: by Web-based games, I don’t mean Flash games that run in-browser. And I don’t mean MMORPGs. I mean games where the primary activity is browsing, much like the primary activity in interactive fiction is looking, moving, picking things up, and putting them down.

Conclusion? A startup that built an SDK and Web-based infrastructure, as well as browser plugins, to allow people to easily develop Web-based games similar to interactive fiction. People already occasionally turn the Web into theme-based scavenger hunt games, so different game forms are certainly possible.

Third, commodity UAV-based sensor networks with data fusion tools for disposable, dynamic airborne security. Build a startup to commoditize UAV technology—including hardware and software—for building lightweight, disposable sensor networks of UAVs, together with data fusion and command-and-control sofware platforms. This would be applicable for ad hoc event security, security for gated communities and other fixed-location high-value assets, as well as stuff like livestock management, population sampling scientific work, etc.

I refrain from judging the ethical or legal or regulatory viability of this last one and present it merely as a kind of thought experiment—I predict that it’s coming very soon, whether we want it or not.

UPDATE: OWL Integrity Constraints Survey

August 21st, 2008 · Kendall Clark

Update—our OWL Integrity Constraints survey will conclude on 12 September 2008.

Please take the OWL Integrity Constraints Survey to influence the future direction of Pellet. For background information about Integrity Constraints in OWL, see Opening, Closing Worlds—On Integrity Constraints.