<?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; OWL</title>
	<atom:link href="http://clarkparsia.com/weblog/category/semweb/owl/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>Pellet 2.0.2: Maintenance Release</title>
		<link>http://clarkparsia.com/weblog/2010/03/01/pellet-2-0-2-maintenance-release/</link>
		<comments>http://clarkparsia.com/weblog/2010/03/01/pellet-2-0-2-maintenance-release/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 18:59:04 +0000</pubDate>
		<dc:creator>Evren Sirin</dc:creator>
				<category><![CDATA[Pellet]]></category>
		<category><![CDATA[Pellet 2]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=931</guid>
		<description><![CDATA[We&#8217;re happy to announce the second Pellet maintenance release of the 2.0 series, Pellet 2.0.2. This release fixes several issues and includes the updates to support the latest reasoner interfaces in OWLAPI version 3.0.0. Complete set of tickets closed for this release are listed at the Trac page for this release. Pellet 2.0.2 is available [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce the second Pellet maintenance release of the 2.0 series, Pellet 2.0.2. This release fixes several issues and includes the updates to support the latest reasoner interfaces in <span class="caps">OWLAPI </span>version 3.0.0. Complete set of tickets closed for this release are listed at the <a href="http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11">Trac page</a> for this release. Pellet 2.0.2 is available for <a href="http://clarkparsia.com/pellet/download">download</a>. </p>

<p>We&#8217;ve also release an updated <a href="http://clarkparsia.com/pellet/protege">Pellet Reasoner Plug-in for Prot&eacute;g&eacute; 4</a> to work with Pellet 2.0.2.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2010/03/01/pellet-2-0-2-maintenance-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empire 0.6</title>
		<link>http://clarkparsia.com/weblog/2010/02/03/empire-0-6/</link>
		<comments>http://clarkparsia.com/weblog/2010/02/03/empire-0-6/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 22:21:01 +0000</pubDate>
		<dc:creator>Michael Grove</dc:creator>
				<category><![CDATA[Empire]]></category>
		<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[RDF Databases]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=928</guid>
		<description><![CDATA[We released Empire 0.6 on Monday. For those of you who didn&#8217;t hear yet, Empire is JPA for RDF. We think it&#8217;s the best Object Triples Mapper available; but let us know. A bit more detail: Empire is an implementation of a large chunk of the core Java Persistence API to provide an interface to [...]]]></description>
			<content:encoded><![CDATA[<p>We released <a href="http://github.com/clarkparsia/Empire">Empire</a> 0.6 on Monday. For those of you who didn&#8217;t hear yet, Empire is <a href="http://java.sun.com/developer/technicalArticles/J2EE/jpa/"><span class="caps">JPA</span></a> for <span class="caps">RDF.</span> We think it&#8217;s the best Object Triples Mapper available; but let us know. A bit more detail: Empire is an implementation of a large chunk of the core Java Persistence <span class="caps">API </span>to provide an interface to <span class="caps">RDF </span>databases using <span class="caps">SPARQL </span>or SeRQL.  It provides a small annotation framework for tying Java beans to <span class="caps">RDF.</span></p>

<p>Empire 0.6 will generate Java interfaces for classes described in an <span class="caps">OWL </span>ontology automatically based on domain &#038; range constraints, cardinality restrictions, and usage of the classes in data (when there is ABox, i.e., assertional, data in your ontology).  Implementations of these interfaces are generated at runtime.  This is a key part of our semantic application platform move, which we sum up simply as: If ontology, then application. More about that in weeks to come.</p>

<p>Eventually, Empire will be a drop-in replacement for non-RDF <span class="caps">JPA </span>systems such as Hibernate and Toplink.  We&#8217;re not quite there yet, but Empire can be used alongside a library like Hibernate to help ease the transition to SemWeb-based architecture  or to supplement an existing <span class="caps">JPA </span>application with, say, <a href="http://clarkparsia.com/pelorus">Pelorus</a>, our faceted navigation browser.</p>

<p>Empire 0.6 uses Guice to provide support for the <span class="caps">JPA SPI </span>framework; we can inject our implementations of EntityManager and EntityManagerFactory into Empire-managed contexts.  We also use Guice to register the data base plugins; Empire currently supports 4Store, Sesame 2.3.0, and Jena. Which means it supports just about every conceivable <span class="caps">RDF </span>triple store.</p>

<p>Enjoy.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2010/02/03/empire-0-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Pellet 2.0.1: Maintenance Release</title>
		<link>http://clarkparsia.com/weblog/2010/01/11/pellet-2-0-1-maintenance-release/</link>
		<comments>http://clarkparsia.com/weblog/2010/01/11/pellet-2-0-1-maintenance-release/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 19:08:01 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Pellet]]></category>
		<category><![CDATA[Pellet 2]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=898</guid>
		<description><![CDATA[We&#8217;re happy to announce the first Pellet maintenance release of the 2.0 series, Pellet 2.0.1. This is the first release under our new release management scheme whereby we&#8217;ve committed to four quarterly point releases (2.1, 2.2, 2.3 and 2.4&#124;3.0) during 2010 and maintenance releases for those versions as necessary.

The 2.0.1 release closes 16 tickets, all [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce the first Pellet maintenance release of the 2.0 series, Pellet 2.0.1. This is the first release under our new release management scheme whereby we&#8217;ve committed to four quarterly point releases (2.1, 2.2, 2.3 and 2.4|3.0) during 2010 and maintenance releases for those versions as necessary.</p>

<p>The 2.0.1 release closes 16 tickets, all of which are detailed at the <a href="http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11">Trac page</a> for this release. Pellet 2.0.1 is available for <a href="http://clarkparsia.com/pellet">download</a>. </p>

<p>We&#8217;ve also release an updated <a href="http://clarkparsia.com/pellet/protege">Pellet Reasoner Plug-in for Prot&eacute;g&eacute; 4</a> to work with Pellet 2.0.1.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2010/01/11/pellet-2-0-1-maintenance-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-doc Position Available</title>
		<link>http://clarkparsia.com/weblog/2010/01/08/post-doc-position-available/</link>
		<comments>http://clarkparsia.com/weblog/2010/01/08/post-doc-position-available/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 16:42:55 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[CandP]]></category>
		<category><![CDATA[OWL]]></category>
		<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[Pellet 2]]></category>
		<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=892</guid>
		<description><![CDATA[We&#8217;re happy to announce a post-doc position available immediately at Clark &#038; Parsia, either in our Washington, DC, or Boston office. The full-time position is a dual appointment at University of Arizona and Clark &#038; Parsia LLC to work on ontology modularity in Description Logics, with an eye toward OWL 2 DL modularity for concept [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce a post-doc position available immediately at Clark &#038; Parsia, either in our Washington, <span class="caps">DC, </span>or Boston office. The full-time position is a dual appointment at University of Arizona and Clark &#038; Parsia <span class="caps">LLC </span>to work on ontology modularity in Description Logics, with an eye toward <span class="caps">OWL</span> 2 DL modularity for concept reuse and reasoning performance. Funded by <span class="caps">NSF, </span>the practical applications of the work will be realized in the iPlant Collaborative&#8217;s cyberinfrastructure.</p>

<p>A successful candidate will have a PhD in computer science (or related field) and significant experience with Description Logic, ontology modularity, automated reasoning, or other relevant specializations. The post-doc will work closely with leading practitioners in the area of automated reasoning on both theory and practice (i.e., software development) and should be comfortable realizing algorithmic ideas in Java.</p>

<p>The position is available immediately, for a duration of 18 months with a possibility to be extended an additional 18 months (extension to be determined at a later date). Competitive salary, good benefits package, etc. included.</p>

<p>See <a href="http://www.uacareertrack.com/applicants/Central?quickFind=196573">the UA job listing page</a> for details about the application process. Please feel free to <a href="mailto:%6B%65%6E%64%61%6C%6C%40%63%6C%61%72%6B%70%61%72%73%69%61%2E%63%6F%6D">email</a> with questions. (N.B.: the UA job description says &#8220;part-time&#8221; and &#8220;Washington, DC area&#8221;; but the position will be a full-time dual appointment and is available in DC or Boston.)</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2010/01/08/post-doc-position-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PelletDb 1.0</title>
		<link>http://clarkparsia.com/weblog/2009/12/01/pelletdb-10/</link>
		<comments>http://clarkparsia.com/weblog/2009/12/01/pelletdb-10/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 19:20:16 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[BizApps]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[PelletDb]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=875</guid>
		<description><![CDATA[After an extended beta period, we&#8217;re happy to announce the release of PelletDb 1.0. It&#8217;s the first commercially available OWL 2 DL reasoner that combines Pellet 2.0 with Oracle&#8217;s Semantic Technologies. We worked closely with the smart people at Oracle to develop a scalable and efficient OWL 2 reasoner offering that is well-integrated with the [...]]]></description>
			<content:encoded><![CDATA[<p>After an extended beta period, we&#8217;re happy to announce the release of <a href="http://clarkparsia.com/pelletdb">PelletDb 1.0</a>. It&#8217;s the first commercially available <span class="caps">OWL</span> 2 DL reasoner that combines Pellet 2.0 with Oracle&#8217;s <a href="http://www.oracle.com/technology/tech/semantic_technologies/index.html">Semantic Technologies</a>. We worked closely with the smart people at Oracle to develop a scalable and efficient <span class="caps">OWL</span> 2 reasoner offering that is well-integrated with the Oracle <span class="caps">RDF </span>and <span class="caps">OWL </span>system. A big thanks goes to Xavier Lopez and his team for being great partners in this endeavor.</p>

<p>If you&#8217;re interested in scalable, efficient semantic reasoning for the enterprise, try PelletDb 1.0, which is available for a 30 day trial period. </p>

<p>To discuss licensing requirements, <a href="mailto:%73%61%6C%65%73%40%63%6C%61%72%6B%70%61%72%73%69%61%2E%63%6F%6D">email us</a> or pick up the phone: +1 202 408 8770. You should follow us on Twitter, too: <a href="http://twitter.com/pelletdb">@pelletdb</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/12/01/pelletdb-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pellet 2.0 Release</title>
		<link>http://clarkparsia.com/weblog/2009/11/16/pellet-2-release/</link>
		<comments>http://clarkparsia.com/weblog/2009/11/16/pellet-2-release/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 20:25:10 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[Pellet]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=862</guid>
		<description><![CDATA[We&#8217;re happy to announce the release of Pellet 2.0, the first OWL 2 DL reasoner available commercially.  Pellet 2.0 is available for use in open source projects under the AGPL v.3 license; for commercial usage, alternative license terms are available.

During the past 13 months, we closed 199 tickets as part of the 2.0 release [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce the release of <a href="/pellet">Pellet 2.0</a>, the first <span class="caps">OWL</span> 2 DL reasoner available commercially.  Pellet 2.0 is available for use in open source projects under the <span class="caps">AGPL </span>v.3 license; for commercial usage, alternative license terms are <a href="mailto:%69%6E%71%75%69%72%69%65%73%40%63%6C%61%72%6B%70%61%72%73%69%61%2E%63%6F%6D">available</a>.</p>

<p>During the past 13 months, we closed 199 <a href="http://clark-parsia.trac.cvsdude.com/pellet-devel/report">tickets</a> as part of the 2.0 release candidate cycle, including numerous enhancements and bug fixes. Please see <span class="caps">CHANGES.</span>txt in the distribution for a complete change log; some highlights include:</p>


<ul>
<li>full <a href="http://www.w3.org/TR/owl2-overview/"><span class="caps">OWL</span> 2</a> support (modulo a few bugs that will be fixed in the 2.1 release)</li>
<li>supports domain &#038; range axioms, class expressions, qualified cardinality restrictions, literal constants, annotations, and nested  class expressions in <span class="caps">SPARQL </span>queries</li>
<li>support for all <span class="caps">SWRL </span>builtins, including previously missing builtins (substring, tokenize, and optional precision parameters for roundHalfToEven)</li>
<li>optimized support for <span class="caps">OWL</span> 2 EL reasoning; <span class="caps">OWL</span> 2 EL reasoner is autoselected based on data input</li>
<li>supports automated ontology module extraction</li>
<li>supports incremental classification</li>
<li>supports fine-grained inference extraction</li>
<li>enhanced <span class="caps">SWRL </span>rules performance</li>
<li><span class="caps">OWLAPI </span>v3 support</li>
<li>lots of improvements, cleanups to Pellet&#8217;s command line tools</li>
<li>updated to work with Jena 2.6.2 &#8212; Pellet is the only DL reasoner available from Jena</li>
<li>supports explanations via Jena</li>
<li>support autoselecting best <span class="caps">SPARQL </span>query engine based on input query</li>
<li>user-defined timeouts for reasoning</li>
<li>switch to dual license model to support commercial and open source projects</li>
</ul>




<p>This release marks a change in Pellet development process: starting with 2.1, Pellet will be released according to a time-based development cycle. We will do four quarterly releases per year. We will make point releases between the quarterly releases, as necessary, to fix critical bugs only. Thus, the release schedule for the 2.x series will be 29 March 2010, 28 June 2010, 27 September 2010, 20 December 2010.</p>

<p>We believe this new development and release process will further accelerate the commercialization of Pellet, with no undue impact on its utility for either research or other non-commercial applications.</p>

<p>Finally, with the release of Pellet 2.0, we will no longer support previous versions via the pellet-users mailing list. </p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/11/16/pellet-2-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PelletDb Beta Available for Download</title>
		<link>http://clarkparsia.com/weblog/2009/07/20/pelletdb-beta-available-for-download/</link>
		<comments>http://clarkparsia.com/weblog/2009/07/20/pelletdb-beta-available-for-download/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 16:03:10 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[PelletDb]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=845</guid>
		<description><![CDATA[I won&#8217;t say much about this here, since the web page is full of details, but the PelletDb Beta Release is now available for download.

Inquiries about sales and licensing? inquiries@clarkparsia.com or +1 202 408 8770.]]></description>
			<content:encoded><![CDATA[<p>I won&#8217;t say much about this here, since the <a href="http://clarkparsia.com/pelletdb">web page</a> is full of details, but the PelletDb Beta Release is now available for <a href="http://clarkparsia.com/pelletdb/beta">download</a>.</p>

<p>Inquiries about sales and licensing? <a href="mailto:%69%6E%71%75%69%72%69%65%73%40%63%6C%61%72%6B%70%61%72%73%69%61%2E%63%6F%6D">inquiries@clarkparsia.com</a> or +1 202 408 8770.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/07/20/pelletdb-beta-available-for-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PelletDb Whitepaper</title>
		<link>http://clarkparsia.com/weblog/2009/06/30/pelletdb-whitepaper/</link>
		<comments>http://clarkparsia.com/weblog/2009/06/30/pelletdb-whitepaper/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:28:47 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[BizApps]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[PelletDb]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=828</guid>
		<description><![CDATA[At Semantic Technology 2009 we formally announced PelletDb, our new product that integrates Pellet with Oracle&#8217;s Semantic Database system, including the Oracle RDF query engine and OWL reasoner. We&#8217;re excited about PelletDb since it makes Pellet available to Oracle users, including its sound and correct OWL 2 reasoning, unique reasoning services like SPARQL-DL and explanations, [...]]]></description>
			<content:encoded><![CDATA[<p>At Semantic Technology 2009 we formally announced PelletDb, our new product that integrates Pellet with Oracle&#8217;s Semantic Database system, including the Oracle <span class="caps">RDF </span>query engine and <span class="caps">OWL </span>reasoner. We&#8217;re excited about PelletDb since it makes Pellet available to Oracle users, including its sound and correct <span class="caps">OWL</span> 2 reasoning, unique reasoning services like <span class="caps">SPARQL</span>-DL and explanations, etc. But we&#8217;re also excited because it makes Oracle&#8217;s enterprise-class information management facilities available to Pellet users and apps.</p>

<p>Today we&#8217;re releasing an extensive <a href="http://clarkparsia.com/pelletdb/whitepaper">PelletDb whitepaper</a> (PDF) that explains in detail what PelletDb is, how it works, who should use it, etc. It includes customer benefits, sample code, and a basic roadmap for future development. If you&#8217;re curious about how we&#8217;re fusing Pellet and Oracle, check out the whitepaper.</p>

<p>The PelletDb limited beta is on-track to begin 15 July, so please <a href="mailto:pelletdb@clarkparsia.com">get in touch</a> if you want to participate.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/06/30/pelletdb-whitepaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pellet 2 Tutorial Available</title>
		<link>http://clarkparsia.com/weblog/2009/06/29/pellet-2-tutorial-available/</link>
		<comments>http://clarkparsia.com/weblog/2009/06/29/pellet-2-tutorial-available/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 19:39:14 +0000</pubDate>
		<dc:creator>Kendall Clark</dc:creator>
				<category><![CDATA[Pellet 2]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=823</guid>
		<description><![CDATA[Two weeks ago at Semantic Technology 2009 conference Evren and Mike presented a 4 hour tutorial about building OWL-based applications with Pellet 2. About 50 people attended, which was a surprising turnout given that it was at the rump end of the conference, a notoriously difficult time slot.

After some polishing based on feedback, we&#8217;re making [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago at Semantic Technology 2009 conference Evren and Mike presented a 4 hour tutorial about building <span class="caps">OWL</span>-based applications with Pellet 2. About 50 people attended, which was a surprising turnout given that it was at the rump end of the conference, a notoriously difficult time slot.</p>

<p>After some polishing based on feedback, we&#8217;re making the tutorial materials, including sample code, slides, and a bundled download of Pellet, <a href="http://clarkparsia.com/pellet/tutorial">available</a> for use in learning (or teaching others) how to use Pellet, both interactively and programmatically.</p>

<p>Enjoy!</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/06/29/pellet-2-tutorial-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pellet 2.0 RC7: The SemTech 2009 Release</title>
		<link>http://clarkparsia.com/weblog/2009/06/11/pellet-20-rc7/</link>
		<comments>http://clarkparsia.com/weblog/2009/06/11/pellet-20-rc7/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 17:51:56 +0000</pubDate>
		<dc:creator>Mike Smith</dc:creator>
				<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[Pellet 2]]></category>
		<category><![CDATA[Protege]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=815</guid>
		<description><![CDATA[In anticipation of our Pellet tutorial at the Semantic Technology Conference next week, we&#8217;ve made a new release candidate for Pellet 2.0 available for download.  Pellet 2.0 RC7 improves on previous releases by resolving several exception-causing bugs reported by users, improving the lint tool&#8217;s support for the OWL 2 specification, and enhancing the inference [...]]]></description>
			<content:encoded><![CDATA[<p>In anticipation of our Pellet tutorial at the Semantic Technology Conference next week, we&#8217;ve made a new release candidate for Pellet 2.0 available for download.  <a href="http://clarkparsia.com/pellet/download">Pellet 2.0 <span class="caps">RC7</span></a> improves on previous releases by resolving several exception-causing bugs reported by users, improving the lint tool&#8217;s support for the <span class="caps">OWL</span> 2 specification, and enhancing the inference explanation command line tool.  The release also includes an update to Jena 2.6.  This change is mostly backwards compatible for users with older Jena versions, but users depending on <span class="caps">SPARQL </span>query will need Jena 2.6.  All of these changes are described in a <a href="http://node8.cvsdude.com/trac/clark-parsia/pellet-devel/report/11">Pellet Trac report</a>. </p>

<p><a href="http://clarkparsia.com/pellet/protege">Pellet Reasoner Plug-in for Prot&Atilde;&copy;g&Atilde;&copy; 4</a> has also been updated. Existing users should be prompted for an automatic upgrade to plug-in version 0.9.3.</p>

<p>Please continue to send your bug reports to the <a href="http://lists.owldl.com/mailman/listinfo/pellet-users">Pellet users mailing list</a>.  As always, you can influence the future of Pellet by <a href="http://clarkparsia.com/contact">contacting us</a> to start a <a href="http://clarkparsia.com/support">support relationship</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/06/11/pellet-20-rc7/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>Pellet 2.0 RC6: The May Day Eve Release</title>
		<link>http://clarkparsia.com/weblog/2009/04/30/pellet-20-rc6/</link>
		<comments>http://clarkparsia.com/weblog/2009/04/30/pellet-20-rc6/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 16:16:47 +0000</pubDate>
		<dc:creator>Mike Smith</dc:creator>
				<category><![CDATA[OWL 2]]></category>
		<category><![CDATA[Pellet 2]]></category>
		<category><![CDATA[Protege]]></category>

		<guid isPermaLink="false">http://clarkparsia.com/weblog/?p=792</guid>
		<description><![CDATA[We&#8217;ve made a new release candidate for Pellet 2.0 available for download.  Pellet 2.0 RC6 improves on RC5 by resolving some correctness and exception generating bugs and by improving support for the RDF/XML serialization of the OWL 2 specification (which is now in its last call period).  All of these changes are documented [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve made a new release candidate for Pellet 2.0 available for download.  <a href="http://clarkparsia.com/pellet/download">Pellet 2.0 <span class="caps">RC6</span></a> improves on <span class="caps">RC5 </span>by resolving some correctness and exception generating bugs and by improving support for the <span class="caps">RDF</span>/XML serialization of the <span class="caps">OWL</span> 2 specification (which is now in <a href="http://www.w3.org/News/2009#item53">its last call period</a>).  All of these changes are documented more fully in a <a href="http://node8.cvsdude.com/trac/clark-parsia/pellet-devel/report/11">Pellet Trac report</a>. </p>

<p>We have also updated the <a href="http://clarkparsia.com/pellet/protege">Pellet Reasoner Plug-in for Prot&Atilde;&copy;g&Atilde;&copy; 4</a>.  Existing users with the <span class="caps">RC5 </span>based plug-in should be prompted for an automatic upgrade.  All other Prot&Atilde;&copy;g&Atilde;&copy; 4 users should follow the <a href="http://clarkparsia.com/pellet/protege">installation directions</a> as if the plug-in is a new install.</p>

<p>Many of the changes in this release were made in response to user identified problems, and several were prepared specifically for our <a href="http://clarkparsia.com/support">support customers</a>. Please continue to send your bug reports to the <a href="http://lists.owldl.com/mailman/listinfo/pellet-users">Pellet users mailing list</a> and if you have a particular problem that you&#8217;d like to motivate us to fix, you can <a href="http://clarkparsia.com/contact">contact us to start a support relationship</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/04/30/pellet-20-rc6/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>Local Ontology Repositories with Pellet</title>
		<link>http://clarkparsia.com/weblog/2009/03/16/local-ontology-repositories-with-pellet/</link>
		<comments>http://clarkparsia.com/weblog/2009/03/16/local-ontology-repositories-with-pellet/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 15:30:06 +0000</pubDate>
		<dc:creator>Mike Smith</dc:creator>
				<category><![CDATA[Ontology Engineering]]></category>
		<category><![CDATA[Pellet 2]]></category>

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


It is relatively common for us to hear from clients that they want to use Pellet without it accessing the network.  Sometimes they want to avoid network problems by caching locally; sometimes [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
*.code-file {
  font-family: monospace;
  font-size: 1em;
  padding-left: 1em;
  margin: 1em;
  overflow: auto;
  border: 1px solid #cccccc; 
}
</style>

<p>It is relatively common for us to hear from clients that they want to use Pellet without it accessing the network.  Sometimes they want to avoid network problems by caching locally; sometimes they&#8217;re conforming to local security policy constraints; often, people just like hacking on local copies before publishing their ontologies on the Web.  Regardless of motivation, they need to avoid the network access used to fetch the contents of an ontology&#8217;s imports closures.  In this post I outline how a user can setup a local ontology repository that will be used by Pellet&#8217;s Jena loader.</p>

<p>The most common use case is a user hand editing a collection of local ontologies which use <span class="caps">HTTP URL</span>s.  Until the ontologies are ready to be published there is no content (or, even worse, outdated content) at those <span class="caps">URL</span>s.  The problem is that it&#8217;s cumbersome to change all the <span class="caps">URL</span>s to <code>file:</code> URLs only to change them back when publishing.</p>

<p>Consider two simple ontologies, presented below using Turtle syntax. First,</p>

<div class="code-file"><notextile>@prefix</notextile> owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br/><br/>&lt;http://example.org/PeopleOntology&gt; a owl:Ontology .<br/><br/>&lt;http://example.org/PeopleOntology#Person&gt; a owl:Class .<br/></div>

Second,<br />
<div class="code-file"><notextile>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br/>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br/><br/></notextile>&lt;http://example.org/FriendOntology&gt; a owl:Ontology ;<br/>&nbsp;&nbsp;owl:imports &lt;http://example.org/PeopleOntology&gt; .<br/><br/>&lt;http://example.org/FriendOntology#Friend&gt; a owl:Class ;<br/>&nbsp;&nbsp;rdfs:subClassOf &lt;http://example.org/PeopleOntology#Person&gt; .<br/></div>

<p>We want to use Pellet to iteratively check the inferred class hierarchy as we develop the ontologies.  To do this with the command line tools, we normally issue the following command</p>

<code>:; pellet classify http://example.org/FriendOntology</code>

<p>But if we try this as-is, we&#8217;ll get an error.  We need Pellet to recognize that, while these ontologies are destined to be published on the Web, for now they are in local files named <code>people.ttl</code> and <code>friend.ttl</code>.  To do this, we use a <a href="http://jena.sourceforge.net/how-to/filemanager.html">Jena LocationMapper configuration file</a>. We can setup the file, named <code>location-mapping.ttl</code>, with the following Turtle content:</p>

<div class="code-file"><notextile>@prefix lm: &lt;http://jena.hpl.hp.com/2004/08/location-mapping#&gt; .<br/><br/></notextile>[] lm:mapping<br/>&nbsp;&nbsp;[ lm:name "http://example.org/PeopleOntology" ; lm:altName "file:people.ttl"  ] ,<br/>&nbsp;&nbsp;[ lm:name "http://example.org/FriendOntology" ; lm:altName "file:friend.ttl"  ] .<br/></div>

<p>The only other change we need is to explicitly tell Pellet to use the Jena loader; it uses the <span class="caps">OWLAPI </span>loader by default.  The command line looks like</p>

<code>:; pellet classify --loader Jena http://example.org/FriendOntology</code>

<p>With the location mapping configuration file in place, we no longer get a timeout but instead see the class hierarchy we expect, based on the content of the local files.</p>

<p>The second common use case is a user working with an ontology they&#8217;ve found on the Web and which has an arbitrarily large imports closure.  This user wants to avoid network accesses to fetch ontologies.  There are three steps to addressing this; first we need to identify all of the ontology <span class="caps">URL</span>s in the imports closure, then we need store them in our local repository; finally, we need to create an adequate mapping file.</p>

<p>To illustrate this example, we&#8217;ll use the <a href="http://www.estrellaproject.org/lkif-core/"><span class="caps">LKIF</span>-Core ontology</a>. This ontology is interesting because it has a moderate number of ontologies in its imports closure.  We could use a tool like <a href="http://protege.stanford.edu/">Prot&eacute;g&eacute; 4</a> to identify the ontologies in the imports closure; but we&#8217;re going to assume that Pellet is the only ontology tool available.  To find all the network resources fetched, we can take advantage of some debug logging available in Jena.  Jena uses log4j, so we need to create a log4j configuration file, called <code>lm-log4j.properties</code>, to echo the interesting content to standard error.</p>

<div class="code-file">log4j.rootLogger=WARN, stderr<br/><br/>log4j.appender.stderr=org.apache.log4j.ConsoleAppender<br/>log4j.appender.stderr.target=System.err<br/>log4j.appender.stderr.layout=org.apache.log4j.SimpleLayout<br/><br/>log4j.logger.com.hp.hpl.jena.util.FileManager=DEBUG</div>

<p>Once created, we set the system property <code>log4j.configuration</code> to reference the file.  If you&#8217;re using the shell script included with Pellet-2.0 <span class="caps">RC5 </span>or newer, you can do this with an environment variable as follows</p>

<code>:; export pellet_java_args=&quot;-Dlog4j.configuration=file:lm-log4j.properties&quot;</code>

<p>Then proceed as before</p>

<code>:; pellet consistency --loader Jena http://www.estrellaproject.org/lkif-core/lkif-core.owl</code>

<p>There will be a lot of <span class="caps">DEBUG </span>messages, but it&#8217;s easy to narrow in on the useful details with a simple grep command, such as</p>

<code>:; pellet consistency --loader Jena http://www.estrellaproject.org/lkif-core/lkif-core.owl 2&gt;&amp;#038;1 | grep 'Not mapped'</code>

What&#8217;s output should be something like the following, enumerating all of the <span class="caps">URL</span>s which are being retrieved:<br />
<div class="code-file"><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/lkif-core.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/norm.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/legal-role.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/legal-action.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/role.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/expression.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/action.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/process.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/relative-places.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/time.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/mereology.owl<br/><span class="caps">DEBUG </span>- Not mapped: http://www.estrellaproject.org/lkif-core/lkif-top.owl<br/></div>

<p>After downloading each of these files and saving them locally, we can create a location mapping file as above, with one map entry per ontology.  That said, the location mapping configuration file supports more sophisticated mapping, and this is a great time to take advantage of prefix based mapping.  The following content in <code>location-mapping.ttl</code> should be sufficient:</p>

<div class="code-file"><notextile>@prefix lm: &lt;http://jena.hpl.hp.com/2004/08/location-mapping#&gt; .<br/><br/></notextile>[] lm:mapping<br/>&nbsp;&nbsp;[ lm:prefix "http://www.estrellaproject.org/lkif-core/" ; lm:altPrefix "file:./" ] .<br/></div>

<p>With this in place and all the files in the working directory, if we rerun the previous command, grep doesn&#8217;t find any matches.  To disable the debug output </p>

<code>:; unset pellet_java_args</code>

<p>Then proceed as before</p>

<code>:; pellet consistency --loader Jena http://www.estrellaproject.org/lkif-core/lkif-core.owl</code>

<p>We&#8217;ve used the location mapping configuration to completely avoid network access.</p>

<p>A few additional details are worth noting.  First, Jena does some searching for the location mapping configuration file, but the easiest approach is to keep it in the working directory.  Alternatively, it can be explicitly named using the <code>LocationMap</code> system property.  This approach can be attractive if you work on multiple ontology projects and would like them to share a single local repository.  E.g., you might use</p>

<code>:; export pellet_java_args=&quot;-DLocationMap=file:///etc/my-repository.ttl&quot;</code>

<p>Second, in Pellet 2.0 <span class="caps">RC5 </span>this functionality is only available if Pellet&#8217;s Jena loader is used.  We&#8217;ve got <a href="https://node8.cvsdude.com/trac/clark-parsia/pellet-devel/ticket/220">a ticket open to duplicate the functionality in the <span class="caps">OWLAPI </span>loader</a> and hope to have it in place before the final Pellet 2.0 release.</p>

<p>Feel free to comment on this functionality or any other aspect of Pellet&#8217;s behavior on the <a href="http://lists.owldl.com/mailman/listinfo/pellet-users">pellet-users mailing list</a>.  See you there.</p>

<p><em>Edited 2009-03-16 15:15 <span class="caps">EDT </span>to note:</em><br />
There has been some public discussion, such as <a href="http://lists.w3.org/Archives/Public/public-owl-wg/2009Feb/0093.html">this thread on public-owl-wg@w3.org</a> about tools using <a href="http://www.oasis-open.org/committees/download.php/14809/xml-catalogs.html"><span class="caps">XML</span> Catalogs</a> to provide a standardized map description format similar to the one provided by the location mapper configuration file used here.  We think that any mechanism that is sane and supported by <span class="caps">OWL </span>tools in an interoperable way is a good thing.  Translation between the Jena format and <span class="caps">XML</span> Catalogs looks straight forward, so you needn&#8217;t worry about backwards compatibility issues if Pellet supports <span class="caps">XML</span> Catalogs in the future.</p>]]></content:encoded>
			<wfw:commentRss>http://clarkparsia.com/weblog/2009/03/16/local-ontology-repositories-with-pellet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
