Command Line Renaissance

April 29th, 2008 · Kendall Clark

In my work and home computing setups, I’ve been enjoying a Command Line Renaissance lately. Consider:

  1. I’ve never been happier or more productive with email since I switched to a combination of sup, offlineimap, screen, and Emacs.
  2. For programming, which I do less and less these days—to the great delight of coworkers on at least two continents!—it’s git, ditz, gvim, and Emacs. Build tools are enjoying a flowering lately, so I’ve been looking at zc.buildout and Paver. I read the Vellum docs last night; way, way too much of the wrong sort of attitude.
  3. For building real docs, LaTex, of course, and rubber.
  4. For music, mpd and ncmpc. Very nice solutions, these.
  5. For shell, fish and the most pager. Nice.
  6. For monitoring, htop. Love the htop!
  7. For news reading, I tried to love snownews, but failed; right now I’m using Liferea. I want to eval Raggle and TheYoke.
  8. I’ve been mulling a switch in Gnome to a tiling window manager like xmonad, awesome, dwm, ion, or Ratpoison. The problem here is too much choice. I wish the LazyWeb would just tell me which one of these is best with Gnome.
  9. Oh, I forgot: for IM and IRC, finch and irssi, respectively.
  10. And for Twitter, I have to decide whether I want to tweet more from Emacs or vim. Each has a simple, embedded Twitter client.
  11. For todo list management, trying to choose between Dev Todo and git-todo-py, leaning toward the latter.
  12. Related: I’ve been gradually moving some work from Emacs to gvim; I’ve never really made a serious attempt to live in vi, and I’m really enjoying it. For example, making 12 pt Consolas the default font in gvim took one simple line of configuration that I found in less than 1 minute of googling. Sweet.

Just about the only GUI programs I still use regularly are Firefox and Emacs; although, Firefox has really been infuriating lately because it leaks so much damn memory. I’ve switched to the 3 beta series to see if memory consumption improves.

This command line rebirth is probably just one of those phases necessary to sustaining my interest in using computers all day, every day, especially since I really, really hate them. But it’s also the case that as I get older, with a baby at home, and many more things to do each day than hours to do them in, I want to maximize my productivity.

Anyone else trending this way?

Upcoming Talks and Conferences

April 27th, 2008 · Kendall Clark

We’re starting to give more talks at more conferences since our SemWeb infrastructure framework—from OWL reasoners and ontology browsers, to RDF linked data browsers, to policy management apps— is really starting to round itself out. Upcoming talks include:

  1. 28 April, Boston, BioIT World Conference’s “Harnessing the Semantic Web for Your Organization” workshop . Mike Smith is giving a talk with our NCI customers about how HCLS and other bio orgs can start to take advantage of semantic web stuff.
  2. 19 to 21 May, San Jose, Semantic Technology Conference (Bad URL that will break for the 2009 conference; ironic, that!). Evren Sirin, Mike Smith, Pavel Klinov, and I will be giving three talks—Pellet, Pronto, and XACML-DL Policy Analysis. Actually, I’ll be there trying to act “managerial”; I leave the talk-giving to the smart guys.
  3. 2 to 4 June, Palisades, NY, POLICY 2008. Markus Stocker and I will be giving a demo talk of XACML-DL, our XACML policy analysis tool.

Upcoming we’re targeting a conference about Ontologies and Model-Driven Architectures (MDA)— which is what OMG is doing now that CORBA is dead-dead-dead—that’s sometime in the fall in Toulouse, which is nice.

One of our new customers—who’s sponsoring a pending Pellet maintenance release, version 1.5.2, that should be out ver soon—is using Pellet to drive a pretty complex code-generation process, and that’s an area where we think Pellet has a huge upside. And we’ve found giving talks and papers with customers as partners is a good pattern.

If you’re planning on attending any of these conferences, shoot me an email as we’d love to chat with users, friends, fans, and interested bystanders.

Owlgres, DL-Lite and Selectivity Optimizations

April 21st, 2008 · Markus Stocker

I have been blogging about Owlgres, our scalable OWL reasoner for DL-Lite. Recently, we have been playing with DBpedia, in particular the dataset with the Wikipedia Infoboxes. I have previously talked about the features of DL-Lite: querying a large persistent ABox and complete result sets w.r.t. a TBox.

In this post I’d like to underline the usefulness of the selectivity optimizer using a short and concrete example from DBpedia. We query over roughly 24 million triples (in Owlgres metrics 2,198,649 concept assertions and 21,503,343 data role assertions). The query asks for instances of Book and looks like this:


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX dbpedia: <http://dbpedia.org/property/>

SELECT ?name WHERE {
?s rdf:type yago:Book106410904 .
?s dbpedia:name ?name .
}

Without the optimizer, the query runs in 61,743 ms and with the optimizer in 14,336 ms.

Why? The TBox contains totally 58,108 concepts and 53,898 of them have no asserted instances (that’s around 93%). This isn’t very surprising since typically individuals are asserted in the leaf concepts of taxonomies.

But it makes a lot of sense to consider this during the query reformulation process in DL-Lite. In fact, without the selectivity optimization, the reformulated set size is 83, i.e. the algorithm reformulates the original conjunctive query into a set of 83 conjunctive queries.

By using some basic statistics (I’m not talking about complicated maths here!) and a trivial procedure to eliminate conjunctive queries that have a known zero selectivity, we can reduce the reformulated set of conjunctive queries from 83 to 16. This makes everybody happy, including Postgres, which returns the result set 4.3 times faster (not huge, yes, but worth the effort). Note that there is no caching here. If caching is involved, the query takes approximately the same time (with and without selectivity optimization, it takes roughly 3 seconds).

I’ll be at WWW2008 this week and I’m happy to chat about DL-Lite with interested people and demo Owlgres on DBpedia. I’ll have a talk on SPARQL Basic Graph Pattern Optimization Using Selectivity Estimation on Thursday, probably the easiest way to spot me. The talk is about some previous work that started in 2006 at the University of Zurich as a diploma thesis and was refined in 2007 at HP Labs with the implementation of the query optimizer for ARQ, the Jena SPARQL query engine.

OwlSight Update: v.51

April 18th, 2008 · Michael Grove

Following Monday’s announcement of the release of OwlSight .50, we’re pleased to announce another update to OwlSight, version .51. This is a minor bug fix release and no new functionality was added. Thanks to those users who took the time to report issues:


  • URL escaping of parameters passed into OwlSight
  • Rendering of datatype values for Individuals has been fixed
  • If an error occurs while generating an explanation, control is properly returned to the main application window.

If you are interested in learning more about OwlSight, please head over to the OwlSight page on owldl.com.

OwlSight Strikes Back: .50 Release

April 14th, 2008 · Michael Grove

As Kendall suggested in a previous blog, I was doing some hacking on OwlSight last week, and well, for the last several weeks really. I’ve had some free time on my hands ever since we released POPS and I’ve been spending it with my new baby, and everyone’s favorite in-browser ontology viewer, OwlSight. About three weeks ago, we released a major update; the big news was that we now supported the newly released Pronto and I had recoded pretty much the entire interface using Gwt-Ext.

In the weeks since that announcement, I’ve gone on to further extend the functionality of OwlSight. The main items of interest are:


  • Support for viewing annotations
  • Support for Individuals
  • GRDDL based ontology repository support
  • Enhanced the Property view, adding domains, ranges and inverse property information
  • Storage of your ontology repository in a browser cookie so its loaded each time you run OwlSight
  • Improved explanation rendering
  • OwlSight handles URL parameters; links to ontologies or repositories can be passed in and loaded on startup.

You can find some more details information about our ontology repository work here and there is now a very simple, and probably incomplete, OwlSight readme.

Make your own ontology repository. Link to OwlSight from your web pages, and use it to show off your favorite ontologies. Until next time, stay classy Cyberspace.