|
From: <jm...@us...> - 2010-03-22 12:34:56
|
Revision: 1336
http://eulergui.svn.sourceforge.net/eulergui/?rev=1336&view=rev
Author: jmvanel
Date: 2010-03-22 12:34:49 +0000 (Mon, 22 Mar 2010)
Log Message:
-----------
update doc.: n3_rules_good_practices.html, taches,
documentation.html : EulerGUI should flag non-monotonic (non OWA) rules and documents containing such rules.
Modified Paths:
--------------
trunk/eulergui/html/documentation.html
trunk/eulergui/html/n3_rules_good_practices.html
trunk/eulergui/html/taches.html
Property Changed:
----------------
trunk/eulergui/html/n3_rules_good_practices.html
Modified: trunk/eulergui/html/documentation.html
===================================================================
--- trunk/eulergui/html/documentation.html 2010-03-21 12:37:18 UTC (rev 1335)
+++ trunk/eulergui/html/documentation.html 2010-03-22 12:34:49 UTC (rev 1336)
@@ -11,7 +11,7 @@
<body>
<p style="text-align:center;font-size: 20pt">Euler GUI Manual</p>
-<p>© Jean-Marc Vanel - $Date: 2010-03-19$ - <a
+<p>© Jean-Marc Vanel - $Date: 2010-03-21$ - <a
href="http://eulergui.sourceforge.net/documentation.html">a view possibly older
in sync. with EulerGUI release </a> - <a
href="http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html">Latest
@@ -2248,7 +2248,8 @@
<h2 id="TODO">Missing features</h2>
<p>Partly prioritized, mostly historical, with older ideas below.</p>
-<pre>- an N3 file with fileencoding=utf-8, fileencodings=ucs-bom,utf-8,default,latin1
+<pre>- EulerGUI should flag non-monotonic (non OWA) rules and documents containing such rules.
+- an N3 file with fileencoding=utf-8, fileencodings=ucs-bom,utf-8,default,latin1
is not parsed right when it contains a non-ASCII character
- add to project ontologies imported by owl:import
- refresh all conversions to N3 (useful if modifications in e.g. Protégé)
Modified: trunk/eulergui/html/n3_rules_good_practices.html
===================================================================
--- trunk/eulergui/html/n3_rules_good_practices.html 2010-03-21 12:37:18 UTC (rev 1335)
+++ trunk/eulergui/html/n3_rules_good_practices.html 2010-03-22 12:34:49 UTC (rev 1336)
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>N3 rules good practices</title>
<style type="text/css">
@@ -16,14 +16,14 @@
<p style="font-size: 20pt">N3 rules: good practices, design patterns,
refactoring</p>
-<p>\xA9 Jean-Marc Vanel - $Date$</p>
+<p>© Jean-Marc Vanel - $Date$</p>
<p>TOC</p>
<div class="toc">
<ul>
<li><a href="#L470">Introduction</a></li>
- <li><a href="#L587">The limitations of RDF</a>
+ <li><a href="#L587">The limitations of RDF</a>
<ul>
<li><a href="#L930">Open world assumption</a></li>
<li><a href="#L1262">Monotonicity</a></li>
@@ -31,27 +31,27 @@
</li>
<li><a href="#L593">The limitations of N3 logic</a></li>
<li><a href="#L944">Using OWL ontologies</a></li>
- <li><a href="#L387">Variables patterns</a>
+ <li><a href="#L387">Variables patterns</a>
<ul>
<li><a href="#L398">Quantification</a></li>
<li><a href="#L420">Multiple occurences</a></li>
</ul>
</li>
- <li><a href="#L180">Design patterns</a>
+ <li><a href="#L180">Design patterns</a>
<ul>
<li><a href="#L432">Annotate the existing objects</a></li>
<li><a href="#L445">Create new objects</a></li>
</ul>
</li>
<li><a href="#L557">Data structures</a></li>
- <li><a href="#L255">Lists variants</a>
+ <li><a href="#L255">Lists variants</a>
<ul>
<li><a href="#L215">Lists OWL style</a></li>
<li><a href="#L303">Cloning a list</a></li>
<li><a href="#L170">Accumulating by recursion</a></li>
</ul>
</li>
- <li><a href="#L26">N3 refactorings</a>
+ <li><a href="#L26">N3 refactorings</a>
<ul>
<li><a href="#L135">Extract part of antecedent</a></li>
</ul>
@@ -72,7 +72,7 @@
<p><a href="http://www.google.fr/search?q=SWRL+design+pattern">Google search
SWRL+design+pattern</a></p>
-<p><a href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ">Prot\xE9g\xE9
+<p><a href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ">Protégé
wiki SWRL Language FAQ</a></p>
<p></p>
@@ -107,7 +107,7 @@
language, there is no limitation. Everything that can be expressed in XML, XMI,
SQL, JSON, can also be expressed in RDF and N3. Moreover, RDF is by design
adapted to Internet: URI are globally unique identifiers that can be
-dererenced, and it has SWRL for query language and protocol.</p>
+dereferenced, and it has SWRL for query language and protocol.</p>
<p>Then the principles of the Semantic Web imply the Open World Assumption,
which is a necessary limitation for the huge and ever changing Web.</p>
@@ -116,9 +116,9 @@
href="http://www.betaversion.org/~stefano/linotype/news/91/">Open world
assumption</a></h3>
-<p>The closed world assumption implies that everything we don’t know is
-false, while the open world assumption states that everything we don’t
-know is undefined. </p>
+<p>The closed world assumption implies that everything we don’t know is
+false, while the open world assumption states that everything we don’t know
+is undefined. </p>
<p>The closed world is the point of vue of all databases, except RDF databases.
Related to closed world assumption, there is a the unique name assumption,
@@ -145,6 +145,16 @@
form of negation; see the paragraph "Motivation" of <a
href="http://www.w3.org/DesignIssues/N3Logic">DesignIssues / N3Logic</a> .</p>
+<h2>Rules languages</h2>
+
+<p>http://www.jessrules.com/jess/index.shtml</p>
+
+<p>http://www.jessrules.com/jess/docs/71/rules.html#rules</p>
+
+<p>http://www.w3.org/Submission/SWRL</p>
+
+<p>http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTutorialESWC2010#nidB64</p>
+
<h2 id="L593">The limitations of N3 logic</h2>
<p>The original N3 logic (like SWRL) follows strictly the principles of the
@@ -208,20 +218,50 @@
<h2 id="L557">Data structures</h2>
-<p>No sets ? Why ? Because ordinary RDF properties act as sets.</p>
+<p>No sets ? Why ? Because an ordinary RDF property <code>myProp</code> plus a
+resource <code>R</code> defines the set of ?V such that :</p>
-<p>RDF is a bunch of associative arrays (called maps in Java and C++). ????</p>
+<p><code>R myProp ?V .</code></p>
+<p>RDF is a bunch of associative arrays (called maps in Java and C++). More
+precisely each resource in subject position can be considered as an associative
+array whose keys are the properties and whose values are the objects.</p>
+
<h2 id="L255">Lists variants</h2>
-<p>RDF lists, OWL, linked list.</p>
+<p>We are dealing here with ordered lists. As noted before, non-ordered lists
+(sets) are just expressible with ordinary RDF statements.</p>
-<p>transitive properties</p>
+<p>In RDF, there is a special pre-defined class rdf:List, with two properties
+<code>rdf:first</code> and <code>rdf:rest</code>, and a resource
+<code>rdf:nil</code> to terminate the list. But in fact, this is just the
+simplest way to define a linked list with a graph language like RDF. Instead of
+rdf:rest, any domain specific property can be used to define a linked list.</p>
+<h3>Transitive properties</h3>
+
+<p>Transitive properties are frequent for relations like: physical containment,
+ordering relationship, entreprise hierarchy, ancestor relation, ... They are
+typically modelized by an OWL Transitive property.</p>
+
+<p>???</p>
+
<h3 id="L215">Lists OWL style</h3>
-<p>????</p>
+<p>When using a plain domain specific property to define a linked list, there
+is </p>
+<p></p>
+<pre>class List hasNext only List
+ class EmptyList hasContents max 0, hasNext max 0
+
+object property hasContents functional
+
+object property hasRest transitive
+ object property hasNext functional</pre>
+
+<p></p>
+
<p>There is a paper describing the list pattern in OWL:</p>
<p>Drummond, N., Rector, A.L., Stevens, R., Moulton, G., Horridge, M., Wang, H,
@@ -233,6 +273,20 @@
<p></p>
+<p>To use this OWL list ontology, one must import the ontology from the generic
+URL:</p>
+
+<p><a
+href="http://www.co-ode.org/ontologies/lists/list.owl">http://www.co-ode.org/ontologies/lists/list.owl</a></p>
+
+<p></p>
+
+<p>and particularize the class OWLList as a list of cities, by two
+owl:Restrictions , like this (in Manchester OWL syntax) :</p>
+<pre><code>Itinerary equivalentTo</code><code> hasContents only City</code><code> and OWLList</code><code> and isFollowedBy only Itinerary</code></pre>
+
+<p></p>
+
<h3 id="L303">Cloning a list</h3>
<p>Here is an example with user specific :first and :rest properties , <a
Property changes on: trunk/eulergui/html/n3_rules_good_practices.html
___________________________________________________________________
Added: svn:keywords
+ Date
Modified: trunk/eulergui/html/taches.html
===================================================================
--- trunk/eulergui/html/taches.html 2010-03-21 12:37:18 UTC (rev 1335)
+++ trunk/eulergui/html/taches.html 2010-03-22 12:34:49 UTC (rev 1336)
@@ -15,22 +15,16 @@
</head>
<body>
-<p>Taches EulerGUI</p>
+<p><span style="font-size: 20pt">Taches EulerGUI</span></p>
-<p></p>
-
<p>Conception : points \xE0 voir:</p>
-<p></p>
-
<p>plusieurs WM ou une seule ? a priori une seule</p>
<p></p>
<h2>1.1 ficher de donn\xE9es et de configuration en N3</h2>
-<p></p>
-
<h2>Validation des donn\xE9es (contraintes)</h2>
<p>Prendre en compte la validation des donn\xE9es (contraintes) : faut-il une
@@ -73,6 +67,12 @@
<td><strong>Commentaire</strong></td>
</tr>
<tr>
+ <td>log et fen\xEAtres de messages</td>
+ <td></td>
+ <td>voir si un IDE ne fait pas automatiquement une partie du travail;
+ ajouter un espace messages</td>
+ </tr>
+ <tr>
<td>I18N</td>
<td></td>
<td>dans Java : pas de pb; dans N3: 1. entrer les valeurs de xml:lang en
@@ -88,10 +88,11 @@
<td>FAIT, \xE0 documenter</td>
</tr>
<tr>
- <td>log et fen\xEAtres de messages</td>
+ <td>\xE9crire un "script" en Java : lancer les cas de d\xE9mo : FaceBook, ceux
+ du manuel D\xE9ductions</td>
<td></td>
- <td>voir si un IDE ne fait pas automatiquement une partie du travail;
- ajouter un espace messages</td>
+ <td>il serait bien de g\xE9n\xE9rer une config. JNLP \xE0 partir de la config.
+ Maven.</td>
</tr>
<tr>
<td>catalogue de XML Schema en N3</td>
@@ -99,44 +100,54 @@
<td>se mettre d'accord sur le vocabulaire RDF</td>
</tr>
<tr>
- <td>\xE9crire un "script" en Java : lancer les cas de d\xE9mo : FaceBook, ceux
- du manuel D\xE9ductions</td>
- <td></td>
- <td>il serait bien de g\xE9n\xE9rer une config. JNLP \xE0 partir de la config.
- Maven.</td>
- </tr>
- <tr>
<td>Utiliser Jython</td>
<td></td>
- <td></td>
+ <td>probl\xE8mes avec rdflib</td>
</tr>
<tr>
<td>1.1 avoir un ficher de donn\xE9es et de configuration en N3 (
actuellement, la honte, c'est du XMLEncoder ) ;</td>
<td></td>
- <td>refactorer Project pour mettre toutes les donn\xE9es dans une KB.</td>
+ <td>on a d'aboord envisag\xE9 de refactorer Project pour mettre toutes les
+ donn\xE9es dans une KB;
+
+ <p>le proto. actuel garde la structure de donn\xE9es Java, mais ajoute un
+ listener qui remplit la KB, cf</p>
+
+ <p><a href="project_ontology.html">Proposal for a new ontology and N3
+ format for RDF + OWL + rules projects</a></p>
+ </td>
</tr>
<tr>
<td>1.2 pouvoir exporter les mini-application avec formulaires g\xE9n\xE9r\xE9es
(actuellement elles ne tournent que dans l'IDE )</td>
<td></td>
- <td>bla??????????</td>
+ <td>en fait on n'a pas besoin dans un premier temps d'extraire les
+ classes n\xE9cessaires (runtime Drools, instanciateur, etc) , on peut
+ utiliser le gros jar de EulerGUI;
+
+ <p>ce serait juste un argument <code>--launch</code> qui lancer
+ l'application g\xE9n\xE9r\xE9e .</p>
+ </td>
</tr>
<tr>
<td>1.3 am\xE9liorer ces mini-application, les rendres plus
configurables</td>
<td></td>
- <td>??????????? hyperlien , cf Prot\xE9g\xE9 Forms
-
- <p>sans en faire trop car c'est du boulot ( mais on est au coeur de la
- d\xE9marche qui est de d\xE9duire l'application, et qui permettra \xE0 terme de
- g\xE9n\xE9rer une application telle que EulerGUI )</p>
+ <td><p>sans en faire trop car c'est du boulot ( mais on est au coeur de
+ la d\xE9marche qui est de d\xE9duire l'application, et qui permettra \xE0 terme
+ de g\xE9n\xE9rer une application telle que EulerGUI )</p>
</td>
</tr>
<tr>
<td>int\xE9grer le composant form de Prot\xE9g\xE9 3</td>
<td></td>
- <td>: qui l'a fait ? D\xE9pendant de la vieille API CLIPS </td>
+ <td>cf <a
+ href="http://protegewiki.stanford.edu/index.php/UseProtegeFormsInApplications">Using
+ Protege Forms in Other Applications</a>
+
+ <p>: qui l'a fait ? D\xE9pendant de la vieille API CLIPS </p>
+ </td>
</tr>
<tr>
<td>1.4 embarquer un moteur de r\xE8gle dans l'application EulerGUI
@@ -151,20 +162,33 @@
savoir que si le projet inclut certains URL, alors c'est un projet
d'IHM, et alors il faudra lancer certains outils; d\xE9corer les sources
du projet en fonction de leur contenu, statut, statistiques et
- m\xE9triques, historique, etc</td>
+ m\xE9triques, historique, etc
+
+ <p>cf <a href="project_ontology.html">Proposal for a new ontology and
+ N3 format for RDF + OWL + rules projects</a></p>
+
+ <p></p>
+ </td>
</tr>
<tr>
<td>1.4.1 aller vers un EulerGUI autog\xE9n\xE9r\xE9</td>
<td></td>
- <td>pouvoir int\xE9grer commod\xE9ment du code Java existant</td>
+ <td>d\xE9j\xE0 pouvoir int\xE9grer commod\xE9ment du code Java existant et des r\xE8gles
+ dans le EulerGUI existant</td>
</tr>
<tr>
<td>1.5 int\xE9grer dans la cha\xEEne l'outil Attempto Ace View, pour pouvoir
entrer les mod\xE8les, r\xE8gles, et donn\xE9es en Anglais Controll\xE9</td>
<td></td>
- <td>cela implique: soit de traduire le SWRL en logique N3, soit
- d'utiliser Pellet + API Prot\xE9g\xE9 / OWL API (qui prennent du SWRL) \xE0 la
- place du moteur Drools / N3 de EulerGUI</td>
+ <td>cela implique:
+ <ul>
+ <li>soit de traduire le SWRL en logique N3, </li>
+ <li>soit d'adapter le code Prolog existant qui g\xE9n\xE9rer du
+ OWL+SWRL</li>
+ <li>soit d'utiliser Pellet + API Prot\xE9g\xE9 / OWL API (qui prennent du
+ SWRL) \xE0 la place du moteur Drools / N3 de EulerGUI</li>
+ </ul>
+ </td>
</tr>
<tr>
<td>1.6 \xE9diteur N3 int\xE9gr\xE9 en Java: ajouter diverses facilit\xE9s : Control
@@ -203,7 +227,12 @@
propri\xE9t\xE9s et classes non d\xE9clar\xE9es par ailleurs</p>
</td>
<td></td>
- <td></td>
+ <td>une base de r\xE8gles existe d\xE9j\xE0, qui avertit des propri\xE9t\xE9s non
+ d\xE9clar\xE9es:
+
+ <p>voir <a
+ href="deductions/n3_new/model-rules-coherence.n3p">deductions/n3_new/model-rules-coherence.n3p</a></p>
+ </td>
</tr>
<tr>
<td>1.9 requ\xEAtes param\xE9tr\xE9es (alias query en Drools)</td>
@@ -349,11 +378,9 @@
</tr>
</tbody>
</table>
-<ul>
- <li></li>
- <li></li>
-</ul>
<p></p>
+
+<p></p>
</body>
</html>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|