<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 24/02/2011, at 9:13 AM, Peter DeVries wrote:</div><br><blockquote type="cite"><div>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.</div>
</blockquote></div><div><br></div><div>Absolutely.</div><div><br></div><div>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".</div><div><br></div><div>The other key is sensible use of namespaces and rules so that the previous vocabularies can be left alone.</div><div><br></div><div>2010.rdf:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>predicate hasFoo</div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasBar</div></div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasBaz</div></div><div><br></div><div>2011.rdf:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>import 2010</div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasFoo</div></div><div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasBar</div></div><div></div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasBaz</div></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;!-- we have narrowed the meaning of foo --&gt;</div><div></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>hasFoo subpredicateof 2010:hasFoo&nbsp;</div></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;!-- we have broadened the meaning of bar --&gt;</div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>2010:hasBar subpredicateof hasBar&nbsp;</div></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;!-- Baz has changed its meaning, but this term and the old one are substantially the same --&gt;</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate hasBazNarrowlyDefined</div><div><div></div></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>predicate&nbsp;hasBazBroadlyDefined</div><div><div></div></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>2010:hasBaz subpredicateof&nbsp;hasBazBroadlyDefined&nbsp;</div><div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>hasBaz subpredicateof&nbsp;hasBazBroadlyDefined&nbsp;</div></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>hasBazNarrowlyDefined &nbsp;subpredicateof &nbsp;2010:hasBaz&nbsp;</div><div><span class="Apple-tab-span" style="white-space: pre; "></span></div><div><span class="Apple-tab-span" style="white-space: pre; "></span></div><div><div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>hasBazNarrowlyDefined &nbsp;subpredicateof &nbsp;hasBaz</div><div><span class="Apple-tab-span" style="white-space: pre; "></span></div><div><span class="Apple-tab-span" style="white-space: pre; "></span></div></div></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div></div><div><br></div><div>People using the old vocabulary are unaffected. People using the new one can read ontologies using the old vocabulary with no problem.</div><div><br></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div><div><font class="Apple-style-span" size="1"><span class="Apple-style-span" style="font-size: 9px; "><span class="Apple-style-span" style="font-size: medium; ">_______________________________________________</span></span></font></div></div></span>
</div>
<br><p>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.</p>
</body></html>