diff --git a/.bzrignore b/.bzrignore
index 4b8534ac90df35c4d8ba85e0b77fcd0a72e6605f..f7bd05c74f46a4d7a9ba5ec7176245c894251c70 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -16,3 +16,4 @@ siaras/ontology.owl
 siaras/javadoc
 siaras/OntologyCompiler.jar
 *.repository
+siaras/ontology.pprj
diff --git a/owl.jjt b/owl.jjt
index d5549c24f3d32100c3326fc48d8906d85358764f..d458ffa2a77019865fad2408b2e04217da7cbd3a 100644
--- a/owl.jjt
+++ b/owl.jjt
@@ -393,7 +393,7 @@ String getData() {
 		}
 		s.append(t.image);
 	}
-	return s.toString();
+	return s.toString().trim();
 }
 
 // void StringElement() #StringElement : { Token t; }
diff --git a/siaras/OntologyGeneration.jrag b/siaras/OntologyGeneration.jrag
index d6b83752f897d5829802beb8af6136d697994dc9..3874e1cb1e304b277ec466522531e968c138ba6a 100644
--- a/siaras/OntologyGeneration.jrag
+++ b/siaras/OntologyGeneration.jrag
@@ -44,6 +44,24 @@ aspect OntologyGeneration {
 		}
 	}
 
+	public void ValueElement.genOntology(String ind, PrintStream pStream) {
+		pStream.print(ind+"<"+name());
+		for (int i=0; i<getNumAttribute(); i++) {
+			pStream.print(" ");
+			getAttribute(i).genOntology(pStream);
+		}
+		if (getNumElement() > 0) {
+			pStream.println();
+			pStream.print(ind+">");
+			for (int i=0; i<getNumElement(); i++) {
+				getElement(i).genOntology(ind+"  ", pStream);
+			}
+			pStream.println("</"+name()+">");
+		} else {
+			pStream.println("/>");
+		}
+	}
+
 // 	public void Thing.genOntology(String ind, PrintStream pStream) {
 
 // 	}
diff --git a/siaras/Siaras.jjt b/siaras/Siaras.jjt
index 589d48751b927366891cbae3adc3344b7331c305..91ee21f7219bef9481259cc914e8da3efa3bfeb7 100644
--- a/siaras/Siaras.jjt
+++ b/siaras/Siaras.jjt
@@ -378,7 +378,7 @@ String getData() {
 		}
 		s.append(t.image);
 	}
-	return s.toString();
+	return s.toString().trim();
 }