rif_and_owl.html 19.5 KB
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="all">
    @import "/QA/2006/01/blogstyle.css";
    </style>
    <meta name="keywords" content='Knowledge representation, Logic programming, OWL, Prolog, RDF, RDF Schema, Rules' />
    <meta name="description" content="The W3C RIF Working Group has just published the RIF specification as a Candidate Recommendation. As a coincidence, the OWL 2 Working Group published the OWL 2 specification as Proposed Recommendation just a few days before. Ie, two major sets..." />
    <meta name="revision" content="$Id: rif_and_owl.html,v 1.63 2011/12/15 23:20:55 mirror Exp $" />    
   <link rel="alternate" type="application/atom+xml" title="Atom" href="http://www.w3.org/QA/atom.xml" />
   <link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="http://www.w3.org/QA/news.rss" />   
   <title>RIF and OWL - W3C Blog</title>

   <link rel="start" href="http://www.w3.org/QA/" title="Home" />
   <link rel="prev" href="http://www.w3.org/QA/2009/09/lets_make_every_day_one_web_da.html" title="Let's Make Every Day One Web Day!" />
   <link rel="next" href="http://www.w3.org/QA/2009/10/w3c_site_launch.html" title="W3C Site Launch" />

   <!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
    rdf:about="http://www.w3.org/QA/2009/10/rif_and_owl.html"
    trackback:ping="http://www.w3.org/QA/sununga/mt-tb.cgi/287"
    dc:title="RIF and OWL"
    dc:identifier="http://www.w3.org/QA/2009/10/rif_and_owl.html"
    dc:subject="Technology"
    dc:description="The W3C RIF Working Group has just published the RIF specification as a Candidate Recommendation. As a coincidence, the OWL 2 Working Group published the OWL 2 specification as Proposed Recommendation just a few days before. Ie, two major sets..."
    dc:creator="Ivan Herman"
    dc:date="2009-10-06T15:39:42+00:00" />
</rdf:RDF>
-->

    <!-- <script type="text/javascript" src="http://www.w3.org/QA/mt.js"></script>-->

</head>
<body class="layout-one-column">
      <div id="banner">
      <h1 id="title">
	<a href="http://www.w3.org/"><img height="48" alt="W3C" id="logo" src="http://www.w3.org/Icons/WWW/w3c_home_nb" /></a>
W3C Blog
</h1>
    </div>
    
    <ul class="navbar" id="menu">
        <li><strong><a href="/QA/" title="W3C Blog Home">[ W3C Blog ]</a></strong></li>
        <li><a href="/QA/Library/" title="Documents and Publications on Web and Quality">Documents</a></li>
        <li><a href="/QA/Tools/" accesskey="3" title="Validators and other Tools">Tools</a></li>
        <li><a href="/2007/12/qa-blog-help/index#feedback">Feedback</a></li>
    </ul>
<div id="searchbox">
<form method="get" action="http://www.google.com/custom" enctype="application/x-www-form-urlencoded">
<p id="formbox"><input type="text" size="15" class="textfield" name="q" accesskey="E" maxlength="255" /> <input type="submit" class="submitfield" value="Search" id="goButton" name="sa" accesskey="G" /> <input type="hidden" name="cof" value="T:black;LW:72;ALC:#ff3300;L:http://www.w3.org/Icons/w3c_home;LC:#000099;LH:48;BGC:white;AH:left;VLC:#660066;GL:0;AWFID:0b9847e42caf283e;" /><input type="hidden" id="searchW3C" name="sitesearch" checked="checked" value="www.w3.org/QA" /><input type="hidden" name="domains" value="www.w3.org/QA" /></p>
</form>
</div>


    <div id="main"><!-- This DIV encapsulates everything in this page - necessary for the positioning -->

                     <p class="content-nav">
                        <a href="http://www.w3.org/QA/2009/09/lets_make_every_day_one_web_da.html">&laquo; Let's Make Every Day One Web Day!</a> |
                        <a href="http://www.w3.org/QA/">Main</a>
                        | <a href="http://www.w3.org/QA/2009/10/w3c_site_launch.html">W3C Site Launch &raquo;</a>
                     </p>

                        <h2 class="entry-header">RIF and OWL</h2>
                           <div class="entry-body">
                              <P>The W3C RIF Working Group has just <A href="http://www.w3.org/blog/SW/2009/10/02/rif_is_a_w3c_candidate_recommendation">published the RIF specification as a Candidate Recommendation</A>. As a
coincidence, the OWL 2 Working Group <A href="http://www.w3.org/blog/SW/2009/09/23/owl_2_is_a_proposed_recommendation">published the OWL 2 specification as Proposed Recommendation</A> just a few days before.
Ie, two major sets of technologies that can be used for various kinds of inferences on the Semantic Web have arrived
to a high level of maturity almost at the same time. If everything goes as planned (I know, it never does, but one can
still speculate) they will become Recommendations around the end of the year.
</P>
<P>
A group of questions I often get is: how do these two sets of recommendations relate to one another? Did W3C create competing,
incompatible technologies that are in the same design space? Why having two? How can they be combined? 
</P>
<P>
To answer this question one has to realize that the two sets of technologies represent different approaches. <A href="http://www.w3.org/TR/2009/PR-owl2-overview-20090922/">OWL 2</A>
(and, actually, <A href="http://www.w3.org/TR/rdf-schema/">RDFS</A>) rely, very broadly speaking, on knowledge representation techniques. Think of thesauri, of
ontologies, of various classification mechanisms: one classifies and characterizes predicates, resources, and can
then deduce logical consequences based on that classification. (On the Semantic Web this usually means discovering new
relationships or locating inconsistencies.) <A href="http://www.w3.org/TR/2009/WD-rif-overview-20091001/">RIF</A>, on the other hand, is more reminiscent
of logic programming (think of Prolog). Ie, if these and these relationships hold then new relationships can be deduced.
(It must be said that RIF also includes a separate work on production rules, but they are fairly distinct from OWL
2, so let us forget about that for the moment.)</P>
<P>
Would I want to use OWL 2 or rather RIF to develop an application? Well, it depends. Some applications are better
formulated this way, others that way. There are a number of papers published on when one approach is better than the
other, how certain tasks can or cannot be expressed using classification or rules, respectively, how reasoning is possible
in one circumstances or the other. Very often it also boils down to
personal experience and, frankly, taste: some feel more comfortable using rules while others prefer knowledge
representation. I do not think it makes sense to claim that one is better than the other. Simply put: they are
different and both approaches have their roles to play.</P>
<P>
So far so good, the reader could say, but what about using OWL and RIF together? 
</P>
<P>
One of the six recommendation track documents of RIF is called <A href="http://www.w3.org/TR/rif-rdf-owl/">“RIF RDF and OWL Compatibility”</A>. Because we are talking
about formal semantics, this document is of course not an easy read. However, in layman's term, what it
describes is how the two “sides”, ie, the rule and the classification sides, should work together on the same data set.
It defines some sort of an interplay between two different mechanisms: the, shall we say, logic programming part
and the knowledge representation part. Implementations doing both are a bit like hybrid cars: they have two parallel
engines and a well defined connections between those two. That said, the document only defines
what the combination means; whether, for example, engines will always succeed in handling the two worlds together
in a finite time is not necessarily guaranteed in all cases. But we can be positive: in many cases (ie, by accepting restrictions here and there) this combination <EM>does</EM> work well, and there are, actually, good implementations out there that do just that.</P>
<P>
A simple case where no problem occurs is the so called <A href="http://www.w3.org/TR/2009/PR-owl2-profiles-20090922/#OWL_2_RL">OWL 2 RL Profile</A>. This profile has been defined by the OWL Working Group
with the goal of being implementable fully via rule engines. This does not necessarily means RIF (I myself have
<A href="http://ivan-herman.name/2009/09/29/owl-2-rl-closure/">implemented</A> OWL 2 RL by direct programming in Python), but the fact that RIF could also be used is important. The RIF
Working Group has therefore published a separate document (<A href="http://www.w3.org/TR/2009/WD-rif-owl-rl-20091001/">“OWL 2 RL in RIF”</A>) which shows just that: it reformulates the
rules for the implementation of OWL 2 RL as RIF rules (more exactly, <A href="http://www.w3.org/TR/rif-core/">RIF Core</A> rules). Ie, a RIF implementation can just
take those rules, import any kind of RDF data that also include OWL 2 statements, and the RIF engine will produce just
the right inference results. How cool is that?</P>
<P>
So, the answer to the original question is: yes, for many applications, RIF and OWL 2 can happily live together ever
after…
</P>









<DIV class="zemanta-pixie" style="margin-top:10px;height:15px"><A class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/2bc62200-71f7-4a2f-a2ec-726a5a21b366/" title="Reblog this post [with Zemanta]"><IMG class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=2bc62200-71f7-4a2f-a2ec-726a5a21b366" alt="Reblog this post [with Zemanta]" style="border:none;float:right"></A><SPAN class="zem-script more-related pretty-attribution"><SCRIPT type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></SCRIPT></SPAN></DIV>
                           </div>
                           <div id="more" class="entry-more">
                              
                           </div>
                       <p class="postinfo">Filed by <a href="http://www.w3.org/People/Ivan">Ivan Herman</a> on October  6, 2009  3:39 PM in <a href="http://www.w3.org/QA/archive/w3cqa_news/publications/">Publications</a>, <a href="http://www.w3.org/QA/archive/technology/semantic_web/">Semantic Web</a>, <a href="http://www.w3.org/QA/archive/technology/">Technology</a>, <a href="http://www.w3.org/QA/archive/w3cqa_news/">W3C・QA News</a><br />
<span class="separator">|</span> <a class="permalink" href="http://www.w3.org/QA/2009/10/rif_and_owl.html">Permalink</a>
                                 | <a href="http://www.w3.org/QA/2009/10/rif_and_owl.html#comments">Comments (5)</a>
                                 | <a href="http://www.w3.org/QA/2009/10/rif_and_owl.html#trackback">TrackBacks (0)</a>
</p>



<h3 class="comments-header" id="comments">Comments</h3>
<div class="comment" id="comment-184147">
<p class="comment-meta" id="c184147">
<span class="comment-meta-author"><strong>Chris Welty </strong></span>
<span class="comment-meta-date"><a href="#c184147">#</a> 2009-10-14</span>
</p>
<div class="comment-bulk">
<p>Ivan,</p>

<p>The labels in your classification system need to be amended. As a past chair of the Knowledge Representation conference, and current president of KR.org, I can assure you that both description logics (OWL) and logic programming (RIF) are equals parts of the field named "knowledge representation". Thus referring to OWL as KR and RIF as LP is like saying Physics is Science and Chemistry is Chemistry.  Although these are only labels, you can see by analogy why chemists might find the mislabeling somewhat offensive.</p>

<p>I would replace "knowledge representation" with "description logics" in your entry.  </p>

<p>Since both RIF and OWL "rely, very broadly speaking, on knowledge representation techniques", what is the real difference?  They can actually be used for many of the same tasks, and as you say the choice is primarily one of style, but the substantive differences is that RIF (ie logic programming) and OWL (ie description logics) are designed to allow for optimizations of different sets of reasoning problems.  The expressive differences are quite minor, and in practice one may never encounter a representation problem that couldn't be handled by either - but you may quite easily find yourself with a reasoning problem that takes significantly longer to terminate using one or the other.</p>

<p>It would no doubt be more useful to provide examples of when this occurs, but "very broadly speaking" description logics optimize for taxonomic reasoning problems within an ontology specification (ie without the data), and logic programs optimize for reasoning problems within the data (ie without the ontology).  So a reasonable rule of thumb is, if your ontology is very large (like the <a href="http://geneontology.org" rel="nofollow">Gene Ontology</a>) you probably should use OWL, and if your data set is very large (like the <a>Linked Data Cloud</a>), you should probably use RIF.</p>

<p>That said, I should reemphasize that the difference is largely a matter of style, and criteria like available expertise, ease of adapting to existing data, tooling support, maturity and costs, etc., should be considered as far more important when trying to choose.</p>

<p>-Chris</p>

</div>
</div>


<div class="comment" id="comment-184150">
<p class="comment-meta" id="c184150">
<span class="comment-meta-author"><strong>Ivan Herman </strong></span>
<span class="comment-meta-date"><a href="#c184150">#</a> 2009-10-14</span>
</p>
<div class="comment-bulk">
<p>Chris,</p>

<p>I stand corrected:-) The reason I did not want to use the term 'Description Logic' is because this term is, as we know, reserved to one specific semantics attached to OWL 2 and which is different than the RDF Based Semantics. Maybe 'classification methods' would have been a better term to use.</p>

</div>
</div>


<div class="comment" id="comment-184307">
<p class="comment-meta" id="c184307">
<span class="comment-meta-author"><strong>Bob DuCharme </strong></span>
<span class="comment-meta-date"><a href="#c184307">#</a> 2009-10-21</span>
</p>
<div class="comment-bulk">
<p>Hi Ivan,</p>

<blockquote>
  <p>Would I want to use OWL 2 or rather RIF to develop an application?</p>
</blockquote>

<p>I understand the general idea of juxtaposing KR approaches and logic programming approaches, but I'd like to know more about where the IF part fits in. If RIF is an interchange format and not an actual rules language, can it really form the basis of a set of application development logic assertions? I see from <a href="http://www.w3.org/TR/rif-core/" rel="nofollow">http://www.w3.org/TR/rif-core/</a> that it identifies a core a common subset of other rules language; does implementing RIF refer to implementing rules expressed using this core or implementing an automated mapping between other formats, which is what "interchange format" sounds like to me? Or is the idea that RIF serves as a meta-language in which one can plan out application logic that will then use one of a choice of actual rules languages? If so, then wouldn't implementations of RIF make it less meta, i.e. make the other languages less necessary outside of the maintenance of legacy systems? </p>

<p>thanks,</p>

<p>Bob</p>

</div>
</div>


<div class="comment" id="comment-184326">
<p class="comment-meta" id="c184326">
<span class="comment-meta-author"><strong>goldsmith011 </strong></span>
<span class="comment-meta-date"><a href="#c184326">#</a> 2009-10-21</span>
</p>
<div class="comment-bulk">
<p>I totally agree. So what, if two major set of technologies have arrived at the same time!! Both can off-course.....happy live together.
<br /><a href="http://www.acnetreatmentsite.com" rel="nofollow">Acne Treatment</a><br /></p>

</div>
</div>


<div class="comment" id="comment-184656">
<p class="comment-meta" id="c184656">
<span class="comment-meta-author"><strong>robertsteve12 </strong></span>
<span class="comment-meta-date"><a href="#c184656">#</a> 2009-10-29</span>
</p>
<div class="comment-bulk">
<p>I don't think this is a issue to get worried about coz these 2 technologies represent 2 different approaches..one emphasizes on knowledge representation techniques and the other one represents logic programming.</p>

</div>
</div>



  <div class="comments-open" id="comments-open">
<h3 class="comments-open-header">Leave a comment</h3>

<div class="comments-open-moderated">
   <p>
   Note: this blog is intended to foster <strong>polite
   on-topic discussions</strong>. Comments failing these
   requirements and spam will not get published. Please,
   enter your real name and email address. Every
   individual comment is reviewed by the W3C staff.
   This may take some time, thank you for your patience.
   </p>
   <p>
   You can use the following HTML markup (a href, b, i, 
   br/, p, strong, em, ul, ol, li, blockquote, pre) 
   and/or <a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a>.</p>
</div>

<div id="comments-open-data">
<form method="post" action="http://www.w3.org/QA/sununga/beach.pl" id="comments-form">
<h4>Your comment</h4>
<div id="comments-open-text">
  <textarea id="comment-text" name="text" rows="20" cols="100"></textarea><br />
<label for="comment-text">Write your comment text here. Remember, keep the discussion on topic and courteous.</label>
</div>

<h4>About you</h4>
<div id="comment-form-name">
  <input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="6481" />
<input type="hidden" name="__lang" value="en" /> 
<label for="comment-author">Your Name</label>
<input id="comment-author" name="author" size="30" value="" />
</div>
<div id="comment-form-email">
<label for="comment-email">Your Email Address</label>
<input id="comment-email" name="email" size="30" value="" />
</div>

<div id="comments-open-footer">
<input type="submit" accesskey="s" name="post" id="comment-submit" value="Submit" />

</div>
</form>
</div>
</div>



<p id="gentime">This page was last generated on $Date: 2011/12/15 23:20:55 $</p> 

      </div><!-- End of "main" DIV. -->

<address>

This blog is written by W3C staff and working group participants,<br />
&nbsp;and maintained by <a href="/People/CMercier/">Coralie Mercier</a>.<br />
Authorized parties may <a href="/QA/new">log in</a> to create a new entry.<br/>
<span id="poweredby">Powered by Movable Type, magpierss and a lot of Web Technology</span>
    </address>


    
    <p class="copyright">
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 1994-2011
      <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a>&reg;
      (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
      <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
      <a href="http://www.keio.ac.jp/">Keio</a>),
      All Rights Reserved.
      W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
      <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
      and <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
      rules apply. Your interactions with this site are in accordance
      with our <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a> and
      <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a> privacy
      statements.
    </p>

  </body>
</html>