On 24/02/2011, at 9:13 AM, Peter DeVries wrote:

I see schema last as part of an iterative process in which you mark things up as you think they will work and revise the data and ontology until it allows the kinds of queries etc. that you want.

Absolutely.

The key is: automated testing. I'm doing this with my XML schemas - modify the code that generates my XML, update my schema, then *run a test* to confirm that my generate data and my schema agree. The process for RDF is similar - run your test data though a reasoner, and see if it goes "nope".

The other key is sensible use of namespaces and rules so that the previous vocabularies can be left alone.

2010.rdf:
predicate hasFoo
predicate hasBar
predicate hasBaz

2011.rdf:
import 2010
predicate hasFoo
predicate hasBar
predicate hasBaz

<!-- we have narrowed the meaning of foo -->
hasFoo subpredicateof 2010:hasFoo 

<!-- we have broadened the meaning of bar -->
2010:hasBar subpredicateof hasBar 

<!-- Baz has changed its meaning, but this term and the old one are substantially the same -->
predicate hasBazNarrowlyDefined
predicate hasBazBroadlyDefined
2010:hasBaz subpredicateof hasBazBroadlyDefined 
hasBaz subpredicateof hasBazBroadlyDefined 
hasBazNarrowlyDefined  subpredicateof  2010:hasBaz 
hasBazNarrowlyDefined  subpredicateof  hasBaz

People using the old vocabulary are unaffected. People using the new one can read ontologies using the old vocabulary with no problem.


_______________________________________________

If you have received this transmission in error please notify us immediately by return e-mail and delete all copies. If this e-mail or any attachments have been sent to you in error, that error does not constitute waiver of any confidentiality, privilege or copyright in respect of information in the e-mail or attachments. Please consider the environment before printing this email.