From 2f7cf61248fc1f90aa53dda0f8377bc8e2ab2cba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Fri, 20 Nov 2015 22:14:20 +0000
Subject: [PATCH] - added N3 translation of all exampkes in the documentation

---
 html/edoal.html | 411 +++++++++++++++++++++++++++++++++++++++++++-----
 html/style.css  |  11 +-
 2 files changed, 374 insertions(+), 48 deletions(-)

diff --git a/html/edoal.html b/html/edoal.html
index 60cee51b..6c5d364c 100644
--- a/html/edoal.html
+++ b/html/edoal.html
@@ -229,7 +229,7 @@ exemplified in the code below.
   &lt;/align:onto1>
   &lt;align:onto2>
     &lt;align:Ontology rdf:about="http://www.example.org/ontology2">
-      &lt;align:location>file:examples/rdf/onto2.owl&lt;/location>
+      &lt;align:location>file:examples/rdf/onto2.owl&lt;/align:location>
       &lt;align:formalism>
         &lt;align:Formalism align:name="OWL1.0" align:uri="http://www.w3.org/2002/07/owl#" />
       &lt;/align:formalism>
@@ -237,6 +237,29 @@ exemplified in the code below.
   &lt;/align:onto2>
 ...
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+<http://www.example.org/ontology1> a align:Ontology ;
+    align:formalism [ a align:Formalism ;
+            align:name "OWL1.0" ;
+            align:uri "http://www.w3.org/2002/07/owl#" ] ;
+    align:location "file:examples/rdf/onto1.owl" .
+
+<http://www.example.org/ontology2> a align:Ontology ;
+    align:formalism [ a align:Formalism ;
+            align:name "OWL1.0" ;
+            align:uri "http://www.w3.org/2002/07/owl#" ] ;
+    align:location "file:examples/rdf/onto2.owl" .
+
+[] a align:Alignment ;
+    align:level <b>"2EDOAL"</b> ;
+    align:method "fr.inrialpes.exmo.align.impl.method.StringDistAlignment" ;
+    align:onto1 <http://www.example.org/ontology1> ;
+    align:onto2 <http://www.example.org/ontology2> ;
+    align:time "7" ;
+    align:type "**" ;
+    align:xml "yes" .
+</div></div>
 
 <p>Details on each property are available on the <a href="format.html">Alignment format</a> page.</p>
 
@@ -260,6 +283,21 @@ Each cell can be linked to an alignment using the <tt>map</tt> property.
   &lt;/align:map>
 ...
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+O1:entity1 a <b>edoal:Class</b> .
+O2:entity2 a <b>edoal:Class</b> .
+
+    align:map [ a align:Cell ;
+            align:entity1 O1:entity1 ;
+            align:entity2 O2:entity2 ;
+            align:measure "1.0"^^xsd:float ;
+            align:relation "=" ;
+            <b>edoal:linkkey</b> "..." ;
+            <b>edoal:transformation</b> "..." ] ;
+</div></div>
+</p>
+<p>
 A <tt>Cell</tt> can only have
 one <tt>entity1</tt>, <tt>entity2</tt>, <tt>relation</tt>
 and <tt>measure</tt> property, though it may have
@@ -425,7 +463,10 @@ Hence, a class expression may be an identified class:
 <div class="rdfxml">
     &lt;Class rdf:about="&amp;wine;WineFlavor" />
 </div></div>
-<div class="rdfxmlDiv">
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:WineFlavor> a edoal:Class .
+</div></div>
 a disjunction or class expressions:
 <div class="rdfxml">RDF/XML Syntax</div>
 <div class="rdfxml">
@@ -437,6 +478,16 @@ a disjunction or class expressions:
       &lt;/or>
     &lt;/Class>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+vin:Acidite a edoal:Class .
+vin:Amertume a edoal:Class .
+vin:Astreingence a edoal:Class .
+
+[] a edoal:Class ;
+    edoal:or ( vin:Acidite vin:Astreingence vin:Amertume ) .
+</div></div>
+
 <div class="rdfxmlDiv">
 Thanks to paths and restrictions, it is possible to restrict a correspondence to ``Wines whose producing region is located in Aquitaine'' using the following restriction:
 <div class="rdfxml">RDF/XML Syntax</div>
@@ -460,6 +511,21 @@ Thanks to paths and restrictions, it is possible to restrict a correspondence to
     &lt;/Class>
 </div>
 </div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:name a edoal:Property .
+vin:Wine a edoal:Class .
+vin:hasTerroir a edoal:Relation .
+
+[] a edoal:Class ;
+    edoal:and ( vin:Wine> [ a edoal:AttributeValueRestriction ;
+                edoal:onAttribute [ a edoal:Property ;
+                        edoal:compose ( vin:hasTerroir wine:name ) ] ;
+                edoal:comparator edoal:equals ;
+                edoal:value [ a edoal:Literal ;
+                        edoal:type "http://www.w3.org/2001/XMLSchema#string" ;
+                        edoal:string "Acquitaine" ] ] ) .
+</div></div>
 <!--div class="rdfxmlDiv">
 We can with this restriction build the correspondence between
 ``BordeauxWine'' and ``Vin'' whose ``terroir'' is located in
@@ -489,6 +555,9 @@ We can with this restriction build the correspondence between
     &lt;/Class>
   &lt;/align:entity2>
 &lt;/align:Cell>
+</div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
 </div></div-->
 
 <p>
@@ -541,6 +610,10 @@ As previously properties can be identified by its URI:
 <div class="rdfxml">
     &lt;Property rdf:about="&amp;wine;hasVintageYear" />
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:hasVintageYear a edoal:Property .
+</div></div>
 <div class="rdfxmlDiv">
 As previously properties can be assembled by boolean connectors:
 <div class="rdfxml">RDF/XML Syntax</div>
@@ -552,7 +625,15 @@ As previously properties can be assembled by boolean connectors:
       &lt;/and>
     &lt;/Property>
 </div></div>
-<div class="rdfxmlDiv">
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+vin:négociant a edoal:Property .
+vin:propriétaire a edoal:Property .
+
+[] a edoal:Property ;
+    edoal:and ( vin:propriétaire vin:négociant ) .
+</div></div>
+
 but they can be obtained through a path, i.e., a sequence of relations
 ending by a property:
 <div class="rdfxml">RDF/XML Syntax</div>
@@ -564,6 +645,14 @@ ending by a property:
       &lt;/compose>
     &lt;/Property>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:name a edoal:Property .
+vin:hasTerroir a edoal:Relation .
+
+[] a edoal:Property ;
+    edoal:compose ( vin:hasTerroir wine:name ) .
+</div></div>
 
 <div class="rdfxmlDiv">
 <div class="rdfxml">RDF/XML Syntax</div>
@@ -574,6 +663,13 @@ ending by a property:
       &lt;/datatype>
     &lt;/PropertyTypeRestriction>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+xsd:integer a edoal:Datatype .
+
+[] a edoal:PropertyTypeRestriction ;
+    edoal:datatype xsd:integer .
+</div></div>
 
 
 <h2 id="ssec:relations">Relation expressions</h2>
@@ -627,19 +723,39 @@ Domain restriction is exemplified in the following correspondence with relation
 <div class="rdfxml">
 &lt;align:Cell>
   &lt;align:entity1>
-    &lt;Relation rdf:about="&amp;wine;locatedIn">
-      &lt;domainRestriction>
-        &lt;Class rdf:about="&amp;wine;Wine" />
-      &lt;/domainRestriction>
+    &lt;Relation>
+      &lt;and rdf:parseType="Collection">
+        &lt;Relation rdf:about="&amp;wine;locatedIn" />
+        &lt;Relation>
+          &lt;domainRestriction>
+            &lt;Class rdf:about="&amp;wine;Wine" />
+          &lt;/domainRestriction>
+        &lt;/Relation>
+      &lt;/and>
     &lt;/Relation>
   &lt;/align:entity1>
   &lt;align:entity2>
     &lt;Relation rdf:about="&amp;vin;hasTerroir" />
   &lt;/align:entity2>
   &lt;align:measure rdf:datatype="&amp;xsd;float">1.0&lt;/align:measure>
-  &lt;align:relation>&lt;&lt;/align:relation>
+  &lt;align:relation>&amp;lt;&lt;/align:relation>
 &lt;/align:Cell>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:Wine a edoal:Class .
+wine:locatedIn a edoal:Relation .
+vin:hasTerroir a edoal:Relation .
+
+[] a align:Cell ;
+    align:entity1 [ a edoal:Relation ;
+            edoal:and ( wine:locatedIn 
+                        [ a edoal:Relation ;
+                              edoal:domainRestriction wine:Wine ] ) ] ;
+    align:entity2 vin:hasTerroir ;
+    align:measure "1.0"^^xsd:float ;
+    align:relation "<" .
+</div></div>
 
 <div class="rdfxmlDiv">
 An example of occurrence restriction would be the wines produced in a region with no adjacent region, such as an island. For instance Moscatel Madeira wine is produced on the island of Madeira.
@@ -649,21 +765,19 @@ An example of occurrence restriction would be the wines produced in a region wit
   &lt;align:entity1>
     &lt;Class>
       &lt;and rdf:parseType="Collection">
-        &lt;Class rdf:about="&amp;wine;Wine">
-        &lt;attributeOccurrenceCondition>
-          &lt;Restriction>
+        &lt;Class rdf:about="&amp;wine;Wine" />
+        &lt;AttributeOccurrenceCondition>
             &lt;onAttribute>
               &lt;Relation>
                 &lt;compose rdf:parseType="Collection">
-                  &lt;Relation rdf:about="&amp;vin;hasTerroir" />
+                  &lt;Relation rdf:about="&amp;wine;hasTerroir" />
                   &lt;Relation rdf:about="&amp;wine;adjacentRegion" />
                 &lt;/compose>
               &lt;/Relation>
             &lt;/onAttribute>
             &lt;comparator rdf:resource="&amp;edoal;greater-than" />
             &lt;value>&lt;Literal edoal:type="&amp;xsd;integer" edoal:string="0"/>&lt;/value>
-          &lt;/Restriction>
-        &lt;/attributeOccurrenceCondition>
+        &lt;/AttributeOccurrenceCondition>
       &lt;/and>
     &lt;/Class>
   &lt;/align:entity1>
@@ -674,6 +788,26 @@ An example of occurrence restriction would be the wines produced in a region wit
   &lt;align:relation>>&lt;/align:relation>
 &lt;/align:Cell>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:Wine a edoal:Class .
+wine:adjacentRegion a edoal:Relation .
+wine:hasTerroir a edoal:Relation .
+vin:Madere a edoal:Class .
+
+[] a align:Cell ;
+    align:entity1 [ a edoal:Class ;
+            edoal:and ( wine:Wine [ a edoal:AttributeOccurrenceCondition ;
+                        edoal:onAttribute [ a edoal:Relation ;
+                                edoal:compose ( wine:hasTerroir wine:adjacentRegion ) ] ;
+                        edoal:comparator edoal:greater-than ;
+                        edoal:value [ a edoal:Literal ;
+                                edoal:string "0" ;
+                                edoal:type "http://www.w3.org/2001/XMLSchema#integer" ] ] ) ] ;
+    align:entity2 vin:Madere ;
+    align:measure "1.0"^^xsd:float ;
+    align:relation ">" .
+</div></div>
 
 <div class="rdfxmlDiv">
 Another example 
@@ -687,10 +821,10 @@ uses a path to state that a locally grown wine is a wine whose owner (propri&eac
   &lt;align:entity2>
     &lt;Class>
       &lt;and rdf:parseType="Collection">
-        &lt;Class rdf:about="&amp;vin;Vin">
+        &lt;Class rdf:about="&amp;vin;Vin" />
         &lt;AttributeValueRestriction>
           &lt;onAttribute>
-            &lt;Relation rdf:about="&amp;vin;propri&eacute;taire" />&lt;/first>
+            &lt;Relation rdf:about="&amp;vin;propri&eacute;taire" />
           &lt;/onAttribute>
           &lt;comparator rdf:resource="&amp;edoal;equals" />
           &lt;value>&lt;Relation rdf:about="&amp;vin;n&eacute;gotiant" />&lt;/value>
@@ -702,6 +836,24 @@ uses a path to state that a locally grown wine is a wine whose owner (propri&eac
   &lt;align:relation>>&lt;/align:relation>
 &lt;/align:Cell>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+wine:LocallyGrownWine a edoal:Class .
+vin:Vin a edoal:Class .
+vin:négotiant a edoal:Relation .
+vin:propriétaire a edoal:Relation .
+
+[] a align:Cell ;
+    align:entity1 wine:LocallyGrownWine> ;
+    align:entity2 [ a edoal:Class ;
+            edoal:and ( vin:Vin
+                      [ a edoal:AttributeValueRestriction ;
+                        edoal:onAttribute vin:propriétaire ;
+                        edoal:comparator edoal:equals ;
+                        edoal:value vin:négotiant ] ) ] ;
+    align:measure "1.0"^^xsd:float ;
+    align:relation ">" .
+</div></div>
 
 <p>
 Note that <tt>compose</tt> may take no
@@ -755,6 +907,12 @@ Literal values:
     &lt;Literal edoal:type="&amp;xsd;integer" edoal:string="123" />
 <!--    &lt;Literal edoal:type="&amp;xsd;integer">123&lt;/Literal>-->
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+[] a <http://ns.inria.org/edoal/1.0/Literal> ;
+    edoal:type "http://www.w3.org/2001/XMLSchema#integer" ;
+    edoal:string "123" .
+</div></div>
 
 <p>
 Instances are always single entities refering to an individual
@@ -764,6 +922,10 @@ Instances are always single entities refering to an individual
 <div class="rdfxml">
     &lt;Instance rdf:about="&amp;vin;hasTerroir" />
 
+</div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+vin:hasTerroir> a edoal:Instance> .
 </div></div>
 </p>
 <p>
@@ -774,7 +936,7 @@ the following way:
 <div class="rdfxml">
       &lt;Apply edoal:operator="http://example.com/Whatever">
         &lt;arguments rdf:parseType="Collection">
-          &lt;Literal rdf:about="&amp;xsd;integer" edoal:string="123" />
+          &lt;Literal edoal:type="&amp;xsd;integer" edoal:string="123" />
           &lt;Property>
             &lt;compose rdf:parseType="Collection">
              &lt;Relation rdf:about="&amp;vin;hasTerroir" />
@@ -785,6 +947,21 @@ the following way:
         &lt;/arguments>
       &lt;/Apply>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+proton:localedIn a edoal:Property .
+vin:Bordelais a edoal:Instance .
+vin:hasTerroir a edoal:Relation .
+
+[] a edoal:Apply ;
+    edoal:operator "http://example.com/Whatever" ;
+    edoal:arguments ( [ a edoal:Literal ;
+                        edoal:type "http://www.w3.org/2001/XMLSchema#integer" ;
+                        edoal:string "123" ] 
+                    [ a edoal:Property ;
+                        edoal:compose ( vin:hasTerroir proton:localedIn> ) ] 
+                    vin:Bordelais> ) .
+</div></div>
 </p>
 
 <p>
@@ -795,7 +972,7 @@ Aggregagtion of a set of values may be defined by (sum the weights of components
       &lt;Aggregate edoal:operator="&fn;sum">
         &lt;arguments rdf:parseType="Collection">
            &lt;Property>
-             &lt;compose rdf:parseType="Collection"/>
+             &lt;compose rdf:parseType="Collection">
                &lt;Property rdf:about="&O1;component" />
                &lt;Property rdf:about="&O1;weight" />
              &lt;/compose>
@@ -803,6 +980,16 @@ Aggregagtion of a set of values may be defined by (sum the weights of components
         &lt;/arguments>
       &lt;/Aggregate>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+O1:component a edoal:Property .
+O2:weight a edoal:Property .
+
+[] a edoal:Aggregate ;
+    edoal:operator "http://www.w3.org/2005/xpath-functions#sum" ;
+    edoal:arguments ( [ a edoal:Property ;
+                edoal:compose ( O1:component O1:weight ) ] ) .
+</div></div>
 </p>
 
 <p>
@@ -890,6 +1077,27 @@ The following correspondence shows an example of the use of data transformation:
 	  &lt;/Transformation>
 	&lt;/transformation>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+vcard:firstname a edoal:Property .
+vcard:lastname a edoal:Property .
+vcard:middleinitial a edoal:Property .
+
+[] a edoal:Transformation ;
+    edoal:direction "o-" ;
+    edoal:entity1 [ a edoal:Property ;
+            edoal:compose () ] ;
+    edoal:entity2 [ a edoal:Apply ;
+            edoal:operator "concat"
+            edoal:arguments ( 
+                <vcard:firstname> 
+                [ a edoal:Literal ;
+                        edoal:type "http://www.w3.org/2001/XMLSchema#string" ;
+                        edoal:string " " ] 
+                <vcard:middleinitial> 
+                [ a edoal:Literal ; edoal:string ". " ] 
+                <vcard:lastname> ) ; ] .
+</div></div>
 
 
 <h2 id="ssec:linkkeys">Linkkeys</h2>
@@ -968,6 +1176,29 @@ This is expressed in the following example:
   &lt;/linkkey>
 &lt;/align:Cell>
 </div></div>
+<div class="n3Div"><div class="n3">N3 Syntax</div>
+<div class="n3" id="ex4n3">
+O1:Livre a edoal:Class .
+O1:auteur a edoal:Relation .
+O1:titre a edoal:Property .
+O2:Novel a edoal:Class .
+O2:creator a edoal:Relation .
+O2:title a edoal:Property .
+
+edoal:cell-with-linkkey a align:Cell ;
+    align:entity1 O1:Livre ;
+    align:entity2 O2:Novel ;
+    align:relation "=" ;
+    edoal:linkkey [ a edoal:Linkkey ;
+            lk:type "plain" ;
+            edoal:binding [ a edoal:Intersects ;
+                    edoal:property1 O1:auteur ;
+                    edoal:property2 O2:creator ],
+                [ a edoal:Equals ;
+                    edoal:property1 O1:titre ;
+                    edoal:property2 O2:title ] ] .
+</div></div>
+
 </p>
 <p>
 It is then possible to identify duplicates or to
@@ -1213,7 +1444,7 @@ O2:GreenLED a edoal:Class.
           &lt;/onAttribute>
           &lt;comparator rdf:resource="&edoal;equals" />
           &lt;value>&lt;Literal edoal:type="&xsd;int" edoal:string="2"/>&lt;/value>
-        &lt;/AttributeValuerestriction>
+        &lt;/AttributeValueRestriction>
       &lt;/and>
     &lt;/Class>
   &lt;/align:entity2>
@@ -1223,7 +1454,28 @@ O2:GreenLED a edoal:Class.
 </div>
 <div class="n3Div"><div class="n3">N3 Syntax</div>
 <div class="n3" id="ex3n3">
-NOT DONE
+nuts:FR a edoal:Instance .
+nuts:Region a edoal:Class .
+nuts:level a edoal:Property .
+nuts:hasParentRegion a edoal:Relation .
+insee:Département a edoal:Class .
+
+[] a align:Cell ;
+    align:entity1 insee:Département ;
+    align:entity2 [ a edoal:Class ;
+            edoal:and ( nuts:Region
+                        [ a edoal:AttributeValueRestriction ;
+                         edoal:comparator edoal:equals ;
+                         edoal:onAttribute [ a edoal:Relation ;
+                                edoal:compose ( nuts:hasParentRegion nuts:hasParentRegion ) ] ;
+                         edoal:value nuts:FR ] 
+                        [ a edoal:AttributeValueRestriction ;
+                         edoal:comparator edoal:equals ;
+                         edoal:onAttribute nuts:level ;
+                         edoal:value [ a edoal:Literal ;
+                                edoal:string "2" ;
+                                edoal:type "http://www.w3.org/2001/XMLSchema#int" ] ] ) ] ;
+    align:relation "=" .
 </div>
 </div>
 <!--div class="graphDiv"><div class="exampleheader">Graph</div>
@@ -1250,15 +1502,15 @@ because the first part is defined as a relation.</p>
         &lt;compose rdf:parseType="Collection">
           &lt;Relation>
             &lt;inverse>
-              &lt;Relation rdf:about="&me;sourceComponent" />
+              &lt;Relation rdf:about="&O1;sourceComponent" />
             &lt;/inverse>
           &lt;/Relation>
           &lt;Relation>
             &lt;and rdf:parseType="Collection">
-              &lt;Relation rdf:about="&me;targetComponent" />
+              &lt;Relation rdf:about="&O1;targetComponent" />
               &lt;RelationDomainRestriction>
                 &lt;class>
-                  &lt;Class rdf:about="&me;Connection" />
+                  &lt;Class rdf:about="&O1;Connection" />
                 &lt;/class>
               &lt;/RelationDomainRestriction>
             &lt;/and>
@@ -1266,7 +1518,7 @@ because the first part is defined as a relation.</p>
         &lt;/compose>
       &lt;/Relation>
     &lt;/align:entity1>
-    &lt;align:entity2>&lt;Relation rdf:about="&im;connectedWith" />&lt;/align:entity2>
+    &lt;align:entity2>&lt;Relation rdf:about="&O1;connectedWith" />&lt;/align:entity2>
     &lt;align:relation>=&lt;/align:relation>
     &lt;align:measure rdf:datatype="&xsd;float">1.0&lt;/align:measure>
   &lt;/align:Cell>
@@ -1275,7 +1527,23 @@ because the first part is defined as a relation.</p>
 </div>
 <div class="n3Div"><div class="n3">N3 Syntax</div>
 <div class="n3" id="ex3n3">
-NOT DONE
+O1:Connection a edoal:Class .
+O1:sourceComponent a edoal:Relation .
+O1:targetComponent a edoal:Relation .
+O2:connectedWith a edoal:Relation .
+
+edoal:M6 a align:Cell ;
+    align:entity1 [ a edoal:Relation ;
+            edoal:compose ( 
+                 [ a edoal:Relation ;
+                        edoal:inverse O1:sourceComponent ] 
+                 [ a edoal:Relation ;
+                        edoal:and ( O1:targetComponent 
+                                      [ a edoal:RelationDomainRestriction ;
+                                            edoal:class O1:Connection ] ) ] ) ] ;
+    align:entity2 O2:connectedWith ;
+    align:measure "1.0"^^xsd:float ;
+    align:relation "=" .
 </div>
 </div>
 <!--div class="graphDiv"><div class="exampleheader">Graph</div>
@@ -1312,7 +1580,6 @@ another.
 
 <div class="rdfxmlDiv"><div class="rdfxml">RDF/XML Syntax</div>
 <div class="rdfxml">
-
 &lt;align:map>
   &lt;align:Cell rdf:about="#M11b">
     &lt;align:entity1>&lt;Class rdf:about="&O1;Activity" />&lt;/align:entity1>
@@ -1422,7 +1689,7 @@ another.
         &lt;entity2>
           &lt;Apply edoal:operator="http://www.google.com/finance/converter">
   	    &lt;arguments rdf:parseType="Collection">
-              &lt;Property>&lt;Property rdf:about="&O2;hasPrice" />&lt;/Property>
+              &lt;Property rdf:about="&O2;hasPrice" />
               &lt;Literal edoal:string="EUR" />
               &lt;Literal edoal:string="CNY" />
 	    &lt;/arguments>
@@ -1432,24 +1699,82 @@ another.
     &lt;/transformation>
   &lt;/align:Cell>
 &lt;/align:map>
-
-
 </div>
 </div>
 <div class="n3Div"><div class="n3">N3 Syntax</div>
 <div class="n3" id="ex3n3">
-NOT DONE
-O1:price a edoal:Property.
-O2:hasPrice a edoal:Property.
-:cell a align:Cell;
-	align:entity1 [
-			edoal:function &lt;http://www.google.com/finance/converter?>;
-			edoal:parameters [ rdf:li O1:price;
-			  rdf:li "from=EUR";
-			  rdf:li "to=CNY".
-		   ].
-	];
-	align:entity2 O2:hasPrice.
+O1:Activity a edoal:Class .
+O1:cost a edoal:Property .
+O1:hasEndDate a edoal:Property .
+O1:hasStartingDate a edoal:Property .
+O1:manpower a edoal:Property .
+O1:subTask a edoal:Relation .
+O2:Project a edoal:Class .
+O2:duration a edoal:Property .
+O2:firstname a edoal:Property .
+O2:fullname a edoal:Property .
+O2:hasPrice a edoal:Property .
+O2:lastname a edoal:Property .
+O2:load a edoal:Property .
+O2:hasLeader a edoal:Property .
+O2:leader a edoal:Relation .
+
+edoal:M11b a align:Cell ;
+    align:entity1 O1:Activity ;
+    align:entity2 O2:Project ;
+    align:measure "1.0"^^xsd:float ;
+    align:relation "=" ;
+    edoal:transformation [ a edoal:Transformation ;
+            edoal:direction "-o" ;
+            edoal:entity1 O1:hasLeader ;
+            edoal:entity2 [ a edoal:Apply ;
+                    edoal:operator "http://www.w3.org/2005/xpath-functions#replace" ;
+                    edoal:arguments ( [ a edoal:Property ;
+                                            edoal:compose ( O2:leader O2:fullname ) ] 
+                                      [ a edoal:Literal ;
+                                            edoal:string "(.*) ([^ ]*)" ]
+                                      [ a edoal:Literal ;
+                                            edoal:string "$2, $1" ] ) ] ],
+        [ a edoal:Transformation ;
+            edoal:direction "o-" ;
+            edoal:entity1 [ a edoal:Apply ;
+                    edoal:operator "http://www.w3.org/2005/xpath-functions#substring-after" ;
+                    edoal:arguments ( O1:hasLeader [ a edoal:Literal ;
+                                edoal:string ", " ] ) ] ;
+            edoal:entity2 [ a edoal:Property ;
+                    edoal:compose ( O2:leader O2:firstname ) ] ],
+        [ a edoal:Transformation ;
+            edoal:direction "o-" ;
+            edoal:entity1 [ a edoal:Apply ;
+                    edoal:operator "java:java.lang.String#substringBefore" ;
+                    edoal:arguments ( O1:hasLeader [ a edoal:Literal ;
+                                edoal:string ", " ] ) ] ;
+            edoal:entity2 [ a edoal:Property ;
+                    edoal:compose ( O2:leader O2:lastname ) ] ],
+        [ a edoal:Transformation ;
+            edoal:direction "o-" ;
+            edoal:entity1 [ a edoal:Apply ;
+                    edoal:operator "op:subtract-dates" ;
+                    edoal:arguments ( O1:hasEndDate O1:hasStartingDate ) ] ;
+            edoal:entity2 O2:duration ],
+        [ a edoal:Transformation ;
+            edoal:direction "o-" ;
+            edoal:entity1 O1:cost ;
+            edoal:entity2 [ a edoal:Apply ;
+                    edoal:operator "http://www.google.com/finance/converter" ;
+                    edoal:arguments ( O2:hasPrice 
+                                       [ a edoal:Literal ;
+                                            edoal:string "EUR" ]
+                                       [ a edoal:Literal ;
+                                            edoal:string "CNY" ] ) ] ],
+        [ a edoal:Transformation ;
+            edoal:direction "-o" ;
+            edoal:entity1 [ a edoal:Aggregate ;
+                    edoal:operator "http://www.w3.org/2005/xpath-functions#sum" ;
+                    edoal:arguments ( [ a edoal:Property ;
+                                edoal:compose ( O1:subTask O1:manpower ) ] ) ] ;
+            edoal:entity2 O2:load ] .
+
 </div>
 </div>
 <div class="graphDiv"><div class="exampleheader">Graph</div>
@@ -1951,7 +2276,9 @@ and <a href="http://www.robertnyman.com">Robert Nyman</a> for the
 syntax toggling scripts borrowed from the OWL Recommendation web page.
 <a href="http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/">http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/</a>.
 </p> 
-
+<p>
+Thanks to Alex Stolz for his very useful <a href="http://rdf-translator.appspot.com/">RDF Translator</a>.
+</p>
 
 <address>
 <small>
diff --git a/html/style.css b/html/style.css
index efa14c04..007d6c0c 100644
--- a/html/style.css
+++ b/html/style.css
@@ -35,19 +35,18 @@ div.owl, div.rdf, div.rdfxml, div.xml, div.swrl, div.skos, div.xslt, div.align,
   background: #edd;
   border:1pt dotted;
   padding: 5px;
-    font-family: monospace;
-    white-space: pre;
-    overflow: auto;
+  font-family: monospace;
+  white-space: pre;
+  overflow: auto;
 }
 
 /* For Java and code */
 
 div.fragment, div.java, div.code, div.n3 {
-    margin: 0.9em 0;
-    padding: 5px;
-    width: 98%;
     background: #dde;
     border: 1pt dashed;
+    padding: 5px;
+    width: 98%;
     font-family: monospace;
     white-space: pre;
     overflow: auto;
-- 
GitLab