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.