2010/6/14 Kaarel Kaljurand &lt;<a href="mailto:kaljurand@gmail.com">kaljurand@gmail.com</a>&gt;:<br>...<br>&gt; Maybe it could already now be a solution for you, i.e. forget about changing<br>&gt; <a href="http://owlfss_owlrdfxml.pl">owlfss_owlrdfxml.pl</a>, and try to connect the output of ACE-&gt;OWL/SWRL<br>
&gt; (drs_to_owlswrl) directly to Thea&#39;s RDF/XML writer (if such a thing exists).<br><br>I also think that it makes sense to reuse existing tools, and Thea looks good, and I exchanged mails with Vangelis some mounths ago.<br>
<br>However, for the algebraic expressions, the worm in the fruit drs_to_owlswrl, not only in <a href="http://owlfss_owlrdfxml.pl">owlfss_owlrdfxml.pl</a> .<div>More precisely, I updated </div><div>ape/utils/owlswrl/<a href="http://implication_to_swrl.pl">implication_to_swrl.pl</a></div>
<div>so that I-variable/1 predicates are added recursively around DRS/SWRL variables.</div><div><br></div><div>Now the OWL FSS looks good:</div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      Consequent(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">         description(</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            Class(owl:Thing)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            I-variable(6)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">         )</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">         description(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            ObjectProperty(:has-surface)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            I-variable(1)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            I-variable(6)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">         )</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">         builtIn(multiply, I-variable($VAR(6)), I-variable($VAR(2)), I-variable($VAR(4)))</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      )</font></div></div><div><br></div><div>I commited all my modifications here on Subversion (same directory structure) :</div><div><a href="http://deductions.svn.sourceforge.net/viewvc/deductions/ape/">http://deductions.svn.sourceforge.net/viewvc/deductions/ape/</a></div>
<div><a href="http://deductions.svn.sourceforge.net/viewvc/deductions/ape/"></a><br><div>This is work in progress; I get an SGML exception while writing the OWL/RDF file.</div><div><br></div><div>I think I&#39;ll go on hacking the existing (and brushing my rusted Prolog), while also paving the way with Vangelis for using his tools. I&#39;m not sure at all that his predicates for OWL are similar to ACE&#39;s, not to speak about his rule representation.</div>
<div><br></div><div>In issue that is mentionned in ACE articles is that datatype properties are hard to detect.</div><div>In the example mentioned before:</div><div><i>If a n:rectangle R has a n:length L1 and R has a n:length L2 then R v:has-surface S, and S = ( L1 * L2 ) .</i></div>
<div><br></div><div>has-surface is wrongly taken as an ObjectProperty.</div><div>It could however be detected as a numeric datatype Property because of the formula that produces a numeric result.</div><div><br></div><div>
-- <br>Jean-Marc Vanel<br>Consulting, services, training,<br>Rule-based programming, Semantic Web<br><a href="http://jmvanel.free.fr/">http://jmvanel.free.fr/</a><br>+33 (0)6 89 16 29 52 -- +33 (0)1 39 55 58 16<br>( we rarely listen to voice messages, please send a mail instead )<br>
<br></div></div>