Archive for the 'Explanation' Category

Me, Myself, and Protege

Tuesday, April 24th, 2007 · Michael Grove

In our work for NCI, I had the distinct “pleasure” of being the UI guy for the project, a role I find myself in more often these days.  Despite the vagaries and headaches that come with writing Java UI’s, I got the easy part of the deal.  I got to write Swing code while Mike and Evren did some amazing, but difficult work on Pellet.  And while I’m thinking of it, they should be applauded, they did a fantastic job on Pellet.  Anyway, the catch was the UI had to come in the form of Protege tab plug-in.  In the past I’ve done my best to not use Protege, but I was interested in finally using and dissecting a tool that many people use on a regular basis, including the folks at NCI.

Without going into extreme gory details of the work, I have a few thoughts on the ordeal.  I was dismayed by the lack of documentation on how to write your own Protege plug-ins and how to work with the Protege core in general.  There was a short blurb on their site, and some javadocs, but not much else.  Fortunately, coding from javadocs is not a foriegn concept, so I was able to piece together what needed to happen.  And the source is publicly available which was really invaluable.  I unfortunately recieved no support from the mailing list.  I guess perhaps it’s geared more toward users than developers.  So much of the first few days of work were spent fumbling in the dark.  But I eventually pushed through it and got things working.

I was surprised by how many default widgets were supplied with Protege.  Once I got up to speed and figured out how to get a tab installed, I was actually able to drop in a class tree and some list boxes populated from the tree without a whole lot of trouble.  However, the widgets did not seem designed for developers to be able to customize easily.  I could not find a trivially easy way to make the class tree just a plain tree.  I did not want any of the editing functions normally associated with the class trees in other tabs.  Same for the list boxes.  I just needed them to show a list of elements and respond to selection events, I did not need any of the editing features.  Also frustrating was some of what I would consider key functionalities where not present, or no-ops in the default implementation, such as the clearSelection function on the list boxes.  Again, more time spent customizing stuff.  Later in the process, once I had a working draft, I did try some of the widgets from the OWL plugin, which I had a little more success with, but not much.

All in all, the experience was less painful than I expected it to be.  The code definately came together quicker that I originally thought.  But if I was going to do it again, I’d definately consider coding bits of it from scratch rather than using widgets from the core codebase.  I struggled at times for too long trying to overcome some of the over-engineered bits of Protege.  All of this work has made me interested in the Protege 4 effort at Manchester.  I have yet to play with their beta, but I’ve heard some good things about it already, and I look forward to mucking about in their code and fiddling with the tool.

Until next time, stay classy cyberspace.

Spread the word: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Reddit
  • Digg
  • del.icio.us
  • TwitThis
  • Technorati

Arguments, Policies, and Logics

Tuesday, January 16th, 2007 · Kendall Clark

Our plan to offer commercial support for Pellet, and to gradually transition it from an academic to an industrial-strength tool, is proceeding nicely. OWL-DL is an interesting technology; but I keep hearing and seeing signs that the killer app still for Description Logics in Web technologies is still around the corner.

One of the things I spend my time these days doing is, well, looking for that killer app. I think at some point it will be found in the area of policy management; there is some very promising research being done in this space at UMD (and many other places), and we’re excited about our chances to roll out products in this area in the next 12 to 18 months.

But I’m also on the lookout for areas that will work now, and I’m starting to think that “collective intelligence” could turn into one of those near-term wins. What I mean in particular is creating an argument or decision-support tool, using OWL-DL and Pellet, within a public policy web app, like a prediction market, policy-support tool, social-network analysis, etc.

I recently happened upon an interesting paper in this area, “Collective Intelligence for Decision Support in Very Large Stakeholder Networks: The Future US Energy System”, which describes a web app to be used in stakeholder networks, with the example domain being the energy market in the US. Now, the web app part isn’t novel: it’s roughly equal parts wiki and polling system. The novel bits are what we might call the social informatics, that is, the structure of the interaction process and that these kinds of systems are being seriously considered and, in some institutions, deployed.

Of particular note for Clark & Parsia as an R&D company is the fact that the web app is designed to allow the use of an automated tool for supporting human decision-making processes, including argumentation analysis. Now this makes me happy for at least four reasons:


  1. we’re interested in what I call (I hope not idiosyncratically) “hard collective intelligence”, that is, computer-aided collective intelligence using description logics, machine learning, or other AI and KR approaches. Someone’s gotta do the soft CI work, but we’re not ready to start hiring sociologists just yet…;

  2. in the US, anything that contributes to increased rationality in public policy deliberation can only be a good thing;

  3. it’s precisely the kind of work we want to be doing; and

  4. it’s the sort of work that will dovetail nicely with our policy management schemes, which include things like dedicated policy management appliances embedded in the enterprise fabric, and SDKs for policy-to-logic mappings, etc.


We are and will remain for some time, perhaps a long time, a description logic company; but we’re also very excited by all the great work happening in machine learning, social and network informatics, computational economics, etc. It’s a great time to be working in all of these areas, and I’m especially interested in all the overlaps and interstices. If you’re doing this kind of work towards a degree, you might want to drop us a line; we’re always looking for graduate students whose research we want to support, since they make great partners and even better employees.

Spread the word: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Reddit
  • Digg
  • del.icio.us
  • TwitThis
  • Technorati