Sunday, December 08, 2002


Associations.

In my spare time I've been creating some general assocation handling classes for Java. It's an interesting experiment. I have an association manager and classes that represent various kinds of associations (one to one, one to many, many to many). Creating the basic association model and the test cases was fairly simple, but now I'm in the usability phase.

Libraries need to be usable. You need to spend time ensuring that the people who call your API are going to like you. You want people to like you, don't you?

I'm still working out the best patterns for handling associations from the perspective of the data objects. Do the data objects need to be able to "see" the associations? Usually not. Operations that affect the structuring of the data can usually be executed out of the data model. The whole point is to keep the data model focused on data.

It's already obvious that handling object lifecycles is considerably easier with formally modelled associations. Enforcing constraints on associations is also cleanly handled - no more replicated logic. I guess I'm happy with the general shape of the thing so far.
6:07:19 PM    


Ontologies and Democracy.

I was reading one of our local newsletters this morning as I sat in my local breakfast joint.  The editor of the newsletter was decrying the lack of information on the construction process for one of our local parks.  She'd made a call or two, and was told that the city "was following standard procedures" and wasn't going to get much more than that. 

The thing is, most municipalities (and other governments) have a series of processes that they engage in.  Those processes spin off information, which is theoretically available to citizens.  The federal government has its FOIA system, but requests can take forever to get through, and there's just a hell of a lot of work that government staff have to do to get together a response.

Here's a place where a good ontology can do a world of good (an ontology is a structuring of knowledge -- a way of understanding the meaning of raw information).  If government information sources keep their information structured in a well-defined ontology, the mechanisms necessary to retrieve information become much simpler.  The government can simply say that they provide a web service to give that information to the public; the public can then retrieve information and understand it with the ontology.

By keeping the information well-structured, redaction can be applied where necessary.

I'd like to be able to write a small program that reaches out over the web and tracks the progress of construction at a local park, or lets me watch the progress of a bill through a legislature.  Such a mechanism would result in substantially improved transparency of the government process.

In short -- legislate the ontology and its basis.  Require (or request) that governments provide compatibility with such a system. 


11:37:15 AM