Re: representing null in semantic frameworks

I think Frank's comments are very pertinent, and I will add just a little.

In a programming framework, or a relational db, quite what a null means 
varies by context.

If you like the name 'null', the Semantic Web framework allows you to 
make this variation explicit, by defining a different 'null', in the 
appropriate namespace, for each ontology. So that in your cricket match 
ontology cricket:null might be defined as rain stopped play (although 
really, particular in England, that result is so important that it 
shouldn't be swept under the carpet with a 'null'), whereas in a names 
and addresses ontology name:null might be defined as 'no data available' 
(although that is only useful in applications making closed world 
assumptions).

One of my colleagues has an in principle objection to using null as a 
legal value while programming, and prefers to have explicit objects that 
represent the various BadValues that are expected. While I am often too 
lazy to follow this design while programming, I think there is a clarity 
of thinking involved, which seems the essence of good design, and good 
modelling.

In summary - rather than represent null - think more clearly - and 
represent the results of clear thought. Using null is an alternative to 
thinking clearly. I guess I see it as legitimate to choose not to think, 
and so a null which is defined as approx. 'I stopped thinking here' is 
clear, and it will be no great surprise when such a null appears rather 
frequently in the defect tracker!

Jeremy

Received on Monday, 22 October 2007 10:33:49 UTC