<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thinking Clearly &#187; Integrity Constraints</title>
	<atom:link href="http://clarkparsia.com/weblog/category/semweb/owl/pellet/integrity-constraints/feed/" rel="self" type="application/rss+xml" />
	<link>http://clarkparsia.com/weblog</link>
	<description>Make lots of money through stealth in shadows</description>
	<lastBuildDate>Mon, 01 Mar 2010 18:59:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using OWL to Validate RDF via SPARQL: Pellet Integrity Constraints</title>
		<link>http://clarkparsia.com/weblog/2010/02/02/pellet-icv-03-release/</link>
		<comments>http://clarkparsia.com/weblog/2010/02/02/pellet-icv-03-release/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 14:49:15 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Integrity Constraints]]></category>
		<category><![CDATA[Pellet 2]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=921</guid>
		<description><![CDATA[The Open World Assumption got you down? While OWA is crucial to using OWL ontologies to draw new inferences from data, it&#8217;s also a challenge for another very basic use case that the OWL specs have never really embraced: using OWL as a schema or validation language for RDF. Plainly, that&#8217;s a use case that [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://en.wikipedia.org/wiki/Open_world_assumption">Open World Assumption</a> got you down? While <span class="caps">OWA </span>is crucial to using <span class="caps">OWL </span>ontologies to draw new inferences from data, it&#8217;s also a challenge for another very basic use case that the <span class="caps">OWL </span>specs have never really embraced: using <span class="caps">OWL </span>as a schema or validation language for <span class="caps">RDF.</span> Plainly, that&#8217;s a use case that some people want and expect from <span class="caps">OWL</span>; but until now it hasn&#8217;t really been available.</p>

<p>We&#8217;re happy to release <a href="http://clarkparsia.com/pellet/icv" title="ICV">Pellet Integrity Constraint Validator</a> version 0.3, a prototype system that uses <span class="caps">OWL </span>ontologies as integrity constraints for <span class="caps">RDF </span>data. <span class="caps">ICV </span>automatically translates <span class="caps">OWL </span>axioms into <span class="caps">SPARQL </span>queries (while still doing <span class="caps">OWL </span>inference, by the way!), so that an <span class="caps">OWL </span>ontology can be used to validate <span class="caps">RDF </span>data integrity automatically.</p>

<p>This offers the best of at least three worlds: the logical rigor and expressiveness of <span class="caps">OWL</span>; the &#8220;loose typing&#8221; of <span class="caps">RDF </span>and Linked Open Data; and the performance and scalability of <span class="caps">SPARQL </span>engines.</p>

<p>What&#8217;s new in Pellet <span class="caps">ICV</span> 0.3? Glad you asked:</p>


<ol>
<li>explanations of violations</li>
<li>choice of validator implementation: Jena or Pellet will execute auto-generated <span class="caps">SPARQL </span>queries</li>
<li>option to check all IC violations</li>
<li>more efficient auto-generated <span class="caps">SPARQL </span>queries (using <span class="caps">NOT EXISTS </span>statement instead of <span class="caps">LET </span>in <span class="caps">ARQ </span>queries)</li>
</ol>



<p>As always, comments, questions, and feedback are <a href="http://lists.owldl.com/mailman/listinfo/pellet-users">welcomed</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2010/02/02/pellet-icv-03-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OWL Integrity Constraints, SeRQL, and New SPARQL</title>
		<link>http://clarkparsia.com/weblog/2009/05/07/owl-integrity-constraints-serql-and-new-sparql/</link>
		<comments>http://clarkparsia.com/weblog/2009/05/07/owl-integrity-constraints-serql-and-new-sparql/#comments</comments>
		<pubDate>Thu, 07 May 2009 12:10:04 +0000</pubDate>
		<dc:creator>Michael Grove</dc:creator>
				<category><![CDATA[Integrity Constraints]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=800</guid>
		<description><![CDATA[In an earlier post, Evren talks about our implementation of integrity constraints using SPARQL queries where we are turning the constraints into queries which we then post to the KB in order to determine if there was a violation of the constraint.

I&#8217;ve been working on an internal project lately, and while we were having a [...]]]></description>
			<content:encoded><![CDATA[<p>In an <a href="http://clarkparsia.com/weblog/2009/02/11/integrity-constraints-for-owl/">earlier post</a>, Evren talks about our implementation of integrity constraints using <span class="caps">SPARQL </span>queries where we are turning the constraints into queries which we then post to the KB in order to determine if there was a violation of the constraint.</p>

<p>I&#8217;ve been working on an internal project lately, and while we were having a code review the other day, we decided that adding some validation via integrity constraints would be useful.&Acirc;&nbsp; The catch was that I&#8217;m using Sesame, in particular, Sesame 1.2.7 since that offers the best query performance of their whole line of software (at least it did the last time I checked).&Acirc;&nbsp; And since I am using the older Sesame <span class="caps">API,</span> I&#8217;m without <span class="caps">SPARQL </span>support.&Acirc;&nbsp; This makes it difficult for me to repurpose our IC prototype since it&#8217;s based on  Jena <em>and</em> SPARQL.</p>

<p>So I worked on an implementation of our IC interface that was based on the Sesame <span class="caps">API </span>and used SeRQL.&Acirc;&nbsp; This turned out to be vastly easier than I expected.&Acirc;&nbsp; One of the workaround&#8217;s we used for the <span class="caps">SPARQL</span>-based implementation was the <a href="http://www.w3.org/TR/rdf-sparql-query/#func-bound"><span class="caps">OPTIONAL</span>/FILTER/!BOUND</a> pattern because <span class="caps">SPARQL </span>does not provide a <span class="caps">NOT </span>keyword for encoding <a href="http://en.wikipedia.org/wiki/Negation_as_failure">Negation as Failure</a>.&Acirc;&nbsp; As it turned out, I didn&#8217;t need to implement a workaround like this using <span class="caps">SERQL.</span> I was able to get by using the <a href="http://www.openrdf.org/doc/sesame/users/ch06.html"><span class="caps">NOT </span>&amp; IN keywords</a> with a subquery to get the same behavior. The resulting queries are very clear.&Acirc;&nbsp; So with some code to translate the constraints into <span class="caps">SERQL </span>queries, and a Sail implementation backed by a Pellet KnowledgeBase, we get the same IC joy in Sesame projects as we do with Jena and <span class="caps">SPARQL.</span></p>

<p>This is good fodder for the new <a href="http://www.w3.org/2009/sparql/wiki/Main_Page"><span class="caps">SPARQL </span>working group</a> that we&#8217;re participating in (nominally, so far); I believe subqueries and negation are both being considered.&Acirc;&nbsp; They would make great additions to the revised <span class="caps">SPARQL.</span></p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/05/07/owl-integrity-constraints-serql-and-new-sparql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrity Constraints, Reasoning, and a Preview Release</title>
		<link>http://clarkparsia.com/weblog/2009/03/30/integrating-integrity-constraint-evaluation-and-reasoning/</link>
		<comments>http://clarkparsia.com/weblog/2009/03/30/integrating-integrity-constraint-evaluation-and-reasoning/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 18:51:20 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Integrity Constraints]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=764</guid>
		<description><![CDATA[
*.code-file {
  font-family: monospace;
  font-size: 1em;
  padding-left: 1em;
  margin: 1em;
  overflow: auto;
  border: 1px solid #cccccc; 
}

In a previous post Evren introduced some of the work we&#8217;ve been doing lately to turn OWL into an expressive schema or data validation language. In other words, using OWL to specify and [...]]]></description>
			<content:encoded><![CDATA[<p><style type="text/css">
*.code-file {
  font-family: monospace;
  font-size: 1em;
  padding-left: 1em;
  margin: 1em;
  overflow: auto;
  border: 1px solid #cccccc; 
}
</style><br />
In <a href="/weblog/2009/02/11/integrity-constraints-for-owl/">a previous post</a> Evren introduced some of the work we&#8217;ve been doing lately to turn <span class="caps">OWL </span>into an expressive schema or data validation language. In other words, using <span class="caps">OWL </span>to specify and implement integrity constraints for <span class="caps">RDF </span>and other data. </p>

<h3>Simple Integrity Constraints &amp; Reasoning</h3>

<p>In this post I want to give a simple example to motivate the integration of <span class="caps">OWL </span>reasoning with integrity constraint checking.  Consider the case encountered when instance data is expressed in terms of the most specific concepts in an ontology:</p>

<div class="code-file">
:Citizen a owl:Class .<br/><br />
:Man a owl:Class .<br/><br />
:Woman a owl:Class .<br/><br/><br />
:ssn a owl:DatatypeProperty .<br/><br/><br />
:Citizen owl:disjointUnionOf ( :Man :Woman ) .</div>

<p>So, in this ontology there are three concepts: citizen, man, woman; and all citizens are men or women but not both. And, further, there is a property, Social Security Number.</p>

<p>The instance data is</p>

<div class="code-file">:Marge a :Woman .<br/>
:Homer a :Man ;<br/><br />
&nbsp;&nbsp;:ssn &#8220;123-45-6789&#8243; .</div>

<p>So: there is a woman, Marge; and a man, Homer, who has a Social Security Number.  In this example, how can we say that all citizens should have Social Security Numbers? Like this:</p>

<div class="code-file">:Citizen rdfs:subClassOf [<br/>
&nbsp;&nbsp;a owl:Restriction ;<br/><br />
&nbsp;&nbsp;owl:onProperty :ssn ;<br/><br />
&nbsp;&nbsp;owl:cardinality 1 ] .</div>

<p>But without reasoner integration, this constraint won&#8217;t apply to either Marge or Homer, because the constraint refers to citizens, not to men or women. Which is as it should be since duplicating the constraint is not only inaccurate but error-prone (<a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself"><span class="caps">DRY</span></a>, after all).</p>

<p>Since our integrity constraint checker uses <span class="caps">OWL </span>reasoning, however, it will infer that Marge and Homer are both citizens: </p>

<div class="code-file">:Marge a :Citizen .<br/>
:Homer a :Citizen .</div>

<p>Thus, when it applies the integrity constraint (that citizens must have <span class="caps">SSN</span>s) it will produce a validation error: Marge is a citizen, which we know by reasoning, but the data does not contain Marge&#8217;s <span class="caps">SSN.</span></p>

<h3>Bad Workarounds</h3>

<p>Integration with reasoning allows us to do better data modeling, since it prevents us from repeating the constraints for all of the most specific class types (men, women) when it&#8217;s simpler to put the constraint on a more general class (citizen). And this is more accurate data modeling, too, since the requirement for <span class="caps">SSN</span>s is not dependent on a person&#8217;s gender.</p>

<p>The obvious workaround, if you don&#8217;t have reasoning integrated with constraint checking, is to write integrity constraints in terms of the most specific concepts, which is almost always an unnecessary proliferation of constraints&#8211;violating <span class="caps">DRY</span>&#8211;and may be inaccurate modeling, too.</p>

<p>This workaround makes constraint authoring and maintenance much more difficult. By integrating with the reasoner, we support a more natural and <i><b>scalable</b></i> approach to integrity constraint specification, one that leverages the ontology by placing constraints appropriately high in the class hierarchy.</p>

<h3>Preview Release</h3>

<p>If you want to play with a preview release of our <span class="caps">OWL</span>-based Integrity Constraint validator, you can <a href="http://clarkparsia.com/pellet/download/oicv-0.1.1">download</a> it now. Note that it&#8217;s not licensed under open source terms. This version will likely be released open source in a future version of Pellet, but we&#8217;re not doing that today. Information about installation, use, and the forum for more information and bug reports (please!) are all included in the <span class="caps">README.</span>txt. Details of the evaluation license terms are in the <span class="caps">LICENSE.</span>txt.</p>

<p><i>Edited: 2009-06-18 to update version at download link.</i></p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/03/30/integrating-integrity-constraint-evaluation-and-reasoning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrity Constraints for OWL</title>
		<link>http://clarkparsia.com/weblog/2009/02/11/integrity-constraints-for-owl/</link>
		<comments>http://clarkparsia.com/weblog/2009/02/11/integrity-constraints-for-owl/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 20:48:27 +0000</pubDate>
		<dc:creator>Evren Sirin</dc:creator>
				<category><![CDATA[Integrity Constraints]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=572</guid>
		<description><![CDATA[We&#8217;ve previously talked about our NIST-funded work to support integrity constraints in OWL. We plan to release very soon a prototype integrity validator in Pellet that can interpret OWL ontologies with Closed World Assumption (CWA) to detect constraint violations. So it&#8217;s time to explain what integrity constraints do and how we can interpret OWL axioms [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve previously <a href="http://clarkparsia.com/weblog/2008/07/28/integrity-constraints-in-pellet/">talked</a> about our <span class="caps">NIST</span>-funded work to support integrity constraints in <span class="caps">OWL.</span> We plan to release very soon a prototype integrity validator in <a href="http://clarkparsia.com/pellet/">Pellet</a> that can interpret <span class="caps">OWL </span>ontologies with <a class="zem_slink" href="http://en.wikipedia.org/wiki/Closed_world_assumption" title="Closed world assumption" rel="wikipedia">Closed World Assumption</a> (CWA) to detect constraint violations. So it&#8217;s time to explain what integrity constraints do and how we can interpret <span class="caps">OWL </span>axioms as integrity constraints&#8211;in other words, how Pellet now supports using <span class="caps">OWL </span>as an <em>expressive schema language</em> for Semantic Web data.</p>

<h3>Why Integrity Constraints?</h3>

<p>Using <span class="caps">OWL </span>as an expressive schema language&#8211;i.e., giving <span class="caps">OWL </span>an integrity constraints semantics&#8211;addresses a general use case that neither <span class="caps">OWL </span>nor <span class="caps">OWL2 </span>can handle. In fact, people new to <span class="caps">OWL </span>often misunderstand this point, thinking that it&#8217;s an expressive constraint language that can be used to validate instance data as in relational databases or <span class="caps">XML </span>tools. People have a similar expectation for <span class="caps">RDFS, </span>too. After all, it sounds like <a class="zem_slink" href="http://en.wikipedia.org/wiki/RDF_Schema" title="RDF Schema" rel="wikipedia"><span class="caps">RDF</span> Schema</a> should be to <span class="caps">RDF </span>what <a class="zem_slink" href="http://en.wikipedia.org/wiki/XML_schema" title="XML schema" rel="wikipedia"><span class="caps">XML</span> Schema</a> is to <span class="caps">XML.</span> But it turns out that, due to the <a href="http://en.wikipedia.org/wiki/Open_world_assumption" title="Open world assumption" rel="wikipedia">Open World Assumption</a> (OWA) adopted by <span class="caps">RDF </span>and <span class="caps">OWL, </span>the axioms in an ontology are meant to <em>infer new knowledge</em> rather than <em>trigger an inconsistency</em>.</p>

<p>The simplest way to demonstrate this misconception in the context of <span class="caps">RDFS </span>is</p>



<pre>   :isManufacturedBy rdfs:range :Manufacturer .
   :product1 :isManufacturedBy :ACME .</pre>

<p><br /></p>

<p>where the range restriction causes the inference that <code>ACME</code> is a <code>Manufacturer</code>, rather than causing a range violation&#8211;since <span class="caps">ACME </span>is not explicitly defined to be a Manufacturer instance. The same kind of unexpected inferences occur when using <span class="caps">OWL </span>constructs; for example, with cardinality constraints, missing values do not cause an inconsistency and extra values cause two individuals to be inferred <code>owl:sameAs</code>.</p>

<div style="float: right;"><a href="http://www.flickr.com/photos/73837517@N00/3270207883/" title="railroad antiques" target="_blank"><img src="http://farm4.static.flickr.com/3526/3270207883_0fd7bf2974_m.jpg" alt="railroad antiques" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://clarkparsia.com/weblog/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" align="absmiddle" border="0" height="16" width="16" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/73837517@N00/3270207883/" title="House Of Sims" target="_blank">House Of Sims</a></small></div>

<p>The key point is not that people don&#8217;t understand <span class="caps">OWL, </span>but that their expectations point to real use cases relevant to some kinds of applications. For example, you can use <span class="caps">OWL </span>axioms as integrity constraints in order to validate message structures exchanged in <a class="zem_slink" href="http://en.wikipedia.org/wiki/Supply_chain_management" title="Supply chain management" rel="wikipedia">Supply Chain Management</a> (SCM) systems. Similar use cases arise in an <a href="http://en.wikipedia.org/wiki/Enterprise_service_bus" title="Enterprise service bus" rel="wikipedia">Enterprise Service Bus</a> (ESB) when you exchange messages encoded in <span class="caps">RDF</span>/OWL rather than <span class="caps">XML </span>in order to perform &#8220;semantic validation.&#8221; Likewise, there are use cases for <span class="caps">OWL </span>as a kind of schema language for <span class="caps">RDF </span>instance data in Linked Data apps where the natural affinity between <span class="caps">OWL </span>and <span class="caps">RDF</span>&#8211;which the <span class="caps">OWL2 </span>working group has worked very hard to preserve, while evolving <span class="caps">OWL2</span>&#8211;has been difficult to achieve because of, in part, the lack of integrity constraint semantics for <span class="caps">OWL.</span></p>

<h3>Interpreting <span class="caps">OWL </span>axioms as constraints</h3>

<p>Our approach to all of this is to give an <em>alternative semantics for <span class="caps">OWL </span>axioms</em> so that they are interpreted with <span class="caps">CWA </span>and a weak form of <a class="zem_slink" href="http://en.wikipedia.org/wiki/Unique_name_assumption" title="Unique name assumption" rel="wikipedia">Unique Name Assumption</a> (UNA). <span class="caps">CWA </span>interpretation means that we assume an assertion is false if we don&#8217;t know explicitly whether it is true or false. Weak <span class="caps">UNA </span>means that if two individuals are not inferred to be the same, then they will be assumed to be distinct. Then the user or application specifies that an ontology should be interpreted with standard <span class="caps">OWL </span>semantics and another should be interpreted with the alternative semantics. Or they specify that some ontology should be treated as a set of constraints for some <span class="caps">RDF </span>data.</p>

<p>The alternative semantics we use is based on the way integrity constraints are supported in classical Datalog systems where constraints are written in First Order Logic and then translated to Horn rules that use <a class="zem_slink" href="http://en.wikipedia.org/wiki/Negation_as_failure" title="Negation as failure" rel="wikipedia">Negation as Failure</a> (NAF). Since <span class="caps">OWL </span>is a subset of First Order Logic this approach works quite nicely for translating constraints written as <span class="caps">OWL </span>axioms.</p>

<p>In our case it turns out we can do this translation to <a class="zem_slink" href="http://en.wikipedia.org/wiki/SPARQL" title="SPARQL" rel="wikipedia"><span class="caps">SPARQL</span></a> queries rather then Horn rules. So an <span class="caps">OWL </span>axiom is automatically translated to one or more queries; then if at least one query returns a result, that means the constraint is violated. I will explain the technical details of our approach in another post, but let me show the <span class="caps">SPARQL </span>query generated if we declare the range restriction above as a constraint:</p>



<pre>   ASK WHERE {
      ?x  :isManufacturedBy  ?y .
      NOT { ?y  rdf:type :Manufacturer . }
   }</pre>

<p><br /></p>

<p>Of course the <code>NOT</code> keyword is not part of <span class="caps">SPARQL, </span>but you can fake it with the well-known <a href="http://www.w3.org/TR/rdf-sparql-query/#func-bound"><span class="caps">OPTIONAL</span>/FILTER/!BOUND</a> pattern for encoding <span class="caps">NAF </span>in <span class="caps">SPARQL.</span></p>

<p><strong>This translation works for all <span class="caps">OWL </span>axioms and constructs, including everything in <a href="http://www.w3.org/TR/owl2-syntax/"><span class="caps">OWL2</span></a></strong>.</p>

<p>This means that users and developers don&#8217;t need to learn a different constraint language or learn to write complex <span class="caps">SPARQL </span>queries by hand, which is impractical since these queries get complicated for anything more complex than trivial examples. Instead they can just build <span class="caps">OWL </span>ontologies using their <a href="http://www.co-ode.org/downloads/protege-x/">favorite <span class="caps">OWL </span>editor</a> or reuse existing <span class="caps">OWL </span>ontologies and then just say that they want the axioms in these ontologies to be treated as integrity constraints.</p>

<p>So our new IC validator for Pellet means that you can now use Pellet and <span class="caps">OWL </span>to both create new knowledge and validate SemWeb instance data. That&#8217;s code and specification reuse for the win. That it&#8217;s also a very concrete bridge technology between <span class="caps">RDF </span>and <span class="caps">OWL </span>is icing on the cake.</p>

<h3>What&#8217;s Next?</h3>

<p>We are wrapping up the prototype and expect to release a version of it soon. In some future weblog posts, I&#8217;ll describe how constraint validation interacts with reasoning results and delve into the details of our technical approach.</p>

<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles</h6><ul class="zemanta-article-ul"><li class="zemanta-article-ul-li"><a href="http://www.mkbergman.com/?p=474">Making Linked Data Reasonable using Description Logics, Part 1</a> (mkbergman.com)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/02/11/integrity-constraints-for-owl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UPDATE: OWL Integrity Constraints Survey</title>
		<link>http://clarkparsia.com/weblog/2008/08/21/owl-integrity-constraints-survey/</link>
		<comments>http://clarkparsia.com/weblog/2008/08/21/owl-integrity-constraints-survey/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 19:34:32 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Integrity Constraints]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=261</guid>
		<description><![CDATA[Update&#8212;our OWL Integrity Constraints survey will conclude on 12 September 2008.

Please take the OWL Integrity Constraints Survey to influence the future direction of Pellet.  For background information about Integrity Constraints in OWL, see Opening, Closing Worlds&#195;&#162;&#226;&#172;&#226;On Integrity Constraints.]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong>&mdash;our <span class="caps">OWL</span> Integrity Constraints survey will conclude on 12 September 2008.</p>

<p>Please take the <a title="OWL Integrity Constraints" href="https://clarkparsia.wufoo.com/forms/owl-integrity-constraints/"><span class="caps">OWL</span> Integrity Constraints Survey</a> to influence the future direction of Pellet.  For background information about Integrity Constraints in <span class="caps">OWL, </span>see <a href="http://clarkparsia.com/files/pdf/ic-owled2008-eu.pdf">Opening, Closing Worlds&Atilde;&cent;&acirc;&not;&acirc;On Integrity Constraints</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2008/08/21/owl-integrity-constraints-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrity Constraints in Pellet</title>
		<link>http://clarkparsia.com/weblog/2008/07/28/integrity-constraints-in-pellet/</link>
		<comments>http://clarkparsia.com/weblog/2008/07/28/integrity-constraints-in-pellet/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 15:49:48 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Description Logic]]></category>
		<category><![CDATA[Integrity Constraints]]></category>
		<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[Pellet]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=236</guid>
		<description><![CDATA[As people discover from time to time, OWL isn&#8217;t really a schema language; because of its semantics (open world assumption, etc), instance data that looks different from schema data doesn&#8217;t lead to the reasoner declaring a constraint violation. Rather, it may lead to the inference of new knowledge.

This is neither a good nor bad thing; [...]]]></description>
			<content:encoded><![CDATA[<p>As people discover from time to time, <span class="caps">OWL </span>isn&#8217;t <strong>really</strong> a schema language; because of its semantics (open world assumption, etc), instance data that looks different from schema data doesn&#8217;t lead to the reasoner declaring a constraint violation. Rather, it may lead to the <a href="http://clarkparsia.com/weblog/category/teaching/why-reasoning-matters/">inference of new knowledge</a>.</p>

<p>This is neither a good nor bad thing; it just means there are at least two Big Use Cases people want to use <span class="caps">OWL </span>for: inferring new knowledge (CHECK) and abstract, expressive schema language (FAIL).</p>

<p>But giving a new &#8212; alternative or supplemental &#8212; semantics to <span class="caps">OWL </span>is non-trivial, which is why when <span class="caps">NIST </span>put out an <span class="caps">SBIR </span>solicitation for <span class="caps">R&amp;D </span>related to using <span class="caps">OWL </span>in <a href="http://en.wikipedia.org/wiki/Supply_chain_management">Supply Chain Management</a>, we submitted an integrity constraints proposal. (Also, a sidenote for <span class="caps">OWL</span> Haters: you can&#8217;t, by definition, get <strong>more</strong> practical or &#8220;real world&#8221; than <span class="caps">SCM.</span> Not possible.)</p>

<p>Happily, we found out recently that we were awarded this funding (with very strong technical evaluations &#8212; yay!) and work is beginning soon:</p>


<ol>
<li>We&#8217;re working on an <span class="caps">OWLED</span> EU paper, with Evan Wallace of <span class="caps">NIST, </span>that describes the design space; I&#8217;ll post links to the paper <span class="caps">ASAP.</span></li>
<li>We&#8217;re actively soliciting use cases and requirements for <span class="caps">OWL </span>integrity constraints: please <a href="mailto:%73%75%70%70%6F%72%74%40%63%6C%61%72%6B%70%61%72%73%69%61%2E%63%6F%6D">get in touch</a> if you have feedback.</li>
<li>There will be some software released by early 2009 at the latest for experimentation.</li>
</ol>



<p><span class="caps">SBIR</span> Phase I funding will cover this work; but the follow-on, Phase <span class="caps">II, </span>is considerably larger and that&#8217;s where, if we can snag Phase <span class="caps">II, </span>we&#8217;ll push the prototype to production-grade, integrate it with the rest of Pellet and other <span class="caps">OWL</span>-based systems of ours (Owlgres comes to mind), and make a concerted &#8220;push to market&#8221;.</p>

<p>An industrial-quality Integrity Constraint subsystem for Pellet will open it up for use in new apps and, thus, in new markets. That&#8217;s exciting and, as always, we&#8217;ll be looking for commercial partners to work with us on those challenges.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2008/07/28/integrity-constraints-in-pellet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
