From: <lor...@us...> - 2010-03-10 19:43:27
|
Revision: 2111 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2111&view=rev Author: lorenz_b Date: 2010-03-10 19:43:20 +0000 (Wed, 10 Mar 2010) Log Message: ----------- Added README and INSTALL file. Removed unnecessary script files in ORE build. Added LICENSE file to ORE build. Modified Paths: -------------- trunk/build.xml trunk/src/dl-learner/org/dllearner/Info.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/INSTALL trunk/src/dl-learner/org/dllearner/tools/ore/README Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription + .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2010-03-10 10:58:35 UTC (rev 2110) +++ trunk/build.xml 2010-03-10 19:43:20 UTC (rev 2111) @@ -458,7 +458,7 @@ <!-- build the ORE tool --> <target name="buildORE" description="build ore including scripts, no javadoc"> - + <property name="ore_source" value="src/dl-learner/org/dllearner/tools/ore" /> <!-- build scripts --> <path id="addjar"> <path refid="classpath"/> @@ -476,8 +476,7 @@ <map from="${removeprefix}" to="."/> </pathconvert> - <echo file="bin/ore.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.tools.ore.OREApplication"/> - <echo file="bin/ore" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.tools.ore.OREApplication $@"/> + <!-- write current build date into Info.java --> <echo file="${source_dir}/org/dllearner/Info.java" append="false"> @@ -502,11 +501,7 @@ </copy> <mkdir dir="${release_ore_dir}"/> <mkdir dir="${release_ore_dir}/lib/"/> - <mkdir dir="${temp}/lib/pellet" /> - <mkdir dir="${temp}/lib/jena" /> - <mkdir dir="${temp}/lib/ore-tool" /> - <mkdir dir="${temp}/lib/owlapi" /> - <mkdir dir="${temp}/lib/protege" /> + <jar jarfile="${release_ore_dir}/lib/dllearner.jar"> <fileset dir="classes_tmp"/> @@ -538,15 +533,26 @@ <copy toDir="${release_ore_dir}/examples"> <fileset dir="examples/ore"/> </copy> - <copy toDir="${release_ore_dir}"> - <fileset dir="bin"/> - </copy> + <echo file="${release_ore_dir}/ore.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.tools.ore.OREApplication"/> + <echo file="${release_ore_dir}/ore" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.tools.ore.OREApplication $@"/> + <!-- create file containing the build info --> <echo file="${release_ore_dir}/build.txt" append="false">ORE Build ${today}</echo> <!-- create empty log directory for release --> <mkdir dir="${release_ore_dir}/log" /> + + <!-- create cache directory for SPARQL extraction --> + <mkdir dir="${release_ore_dir}/cache" /> + + <!-- copy README and INSTALL file --> + <copy toDir="${release_ore_dir}" > + <fileset dir="${ore_source}" includes="INSTALL,README"/> + </copy> + + <!-- copy LICENSE file --> + <copy file="LICENSE" toDir="${release_ore_dir}" /> <!-- create tar.gz files (allows storing whether a file is executable) --> <tar longfile="gnu" destfile="ore-nosource-${today}.tar.gz" compression="gzip"> Modified: trunk/src/dl-learner/org/dllearner/Info.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Info.java 2010-03-10 10:58:35 UTC (rev 2110) +++ trunk/src/dl-learner/org/dllearner/Info.java 2010-03-10 19:43:20 UTC (rev 2111) @@ -3,6 +3,6 @@ package org.dllearner; public class Info { - public static final String build = "2010-03-09"; + public static final String build = "2010-03-10"; } \ No newline at end of file Added: trunk/src/dl-learner/org/dllearner/tools/ore/INSTALL =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/INSTALL (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/INSTALL 2010-03-10 19:43:20 UTC (rev 2111) @@ -0,0 +1,20 @@ +Requirements +============ +Java 6 is required. (All other libraries are included in the release.) + +Installation +============ +No further installation is necessary. Just download and extract ORE. + +Running Instructions +==================== + +Linux (and other systems) + +Make sure the file "ore" is executable. You can run it on the command line either individually or +followed by the name of the ontology to process, e.g. "./ore examples/koala.owl". + +Windows: + +Run "ore.bat" either individually or followed by the name of the ontology to process, + e.g. "ore.bat examples/koala.owl". Added: trunk/src/dl-learner/org/dllearner/tools/ore/README =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/README (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/README 2010-03-10 19:43:20 UTC (rev 2111) @@ -0,0 +1,19 @@ +README +====== + +The ORE-Tool supports the user to check and improve the quality of ontologies. Therefore it +allows to detect semantic defects, e.g. inconsistencies in the ontology are detected and can +be explained by showing the relevant axioms. Another feature is to enrich ontologies with new logical axioms +by using powerful machine learning algorithms from the underlying DL-Learner framework. + +Homepage: http://dl-learner.org/wiki/ORE +Sourceforge.net Project Page: http://sourceforge.net/projects/dl-learner/ +Bugs & Feature Requests: http://sourceforge.net/tracker/?group_id=203619 +Mailing Lists: http://sourceforge.net/mail/?group_id=203619 +Latest Release: http://sourceforge.net/project/showfiles.php?group_id=203619 +Sourcecode: https://dl-learner.svn.sourceforge.net/svnroot/dl-learner/trunk/src/dl-learner/org/dllearner/tools/ore/ + +ORE is Open Source and licensed under the GNU General Public License. + +More information and a screencast can be found at: +http://dl-learner.org/wiki/ORE. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-03-11 16:09:45
|
Revision: 2113 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2113&view=rev Author: jenslehmann Date: 2010-03-11 15:12:28 +0000 (Thu, 11 Mar 2010) Log Message: ----------- implemented extraction database cache using embedded H2 database Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java Added Paths: ----------- trunk/lib/db/h2-1.2.131.jar trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionDBCache.java Added: trunk/lib/db/h2-1.2.131.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/db/h2-1.2.131.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2010-03-10 20:12:38 UTC (rev 2112) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2010-03-11 15:12:28 UTC (rev 2113) @@ -137,6 +137,7 @@ // compute md5-hash private String getHash(String string) { + Monitor hashTime = JamonMonitorLogger.getTimeMonitor(Cache.class, "HashTime").start(); // calculate md5 hash of the string (code is somewhat // difficult to read, but there doesn't seem to be a // single function call in Java for md5 hashing) @@ -154,7 +155,9 @@ for (int i = 0; i < result.length; i++) { hexString.append(Integer.toHexString(0xFF & result[i])); } - return hexString.toString(); + String str = hexString.toString(); + hashTime.stop(); + return str; } // return filename where the query result should be saved Added: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionDBCache.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionDBCache.java 2010-03-11 15:12:28 UTC (rev 2113) @@ -0,0 +1,151 @@ +/** + * Copyright (C) 2007-2010, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.kb.sparql; + +import java.io.ByteArrayOutputStream; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.sql.Clob; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import org.dllearner.utilities.Helper; + +import com.hp.hpl.jena.rdf.model.Model; +import com.hp.hpl.jena.rdf.model.ModelFactory; +import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; + +/** + * The class is used to cache information about resources to a database. + * Provides the connection to an H2 database in a light weight, configuration free + * manner. + * + * @author Jens Lehmann + * + */ +public class ExtractionDBCache { + + private String databaseDirectory = "cache"; + private String databaseName = "extraction"; + + // specifies after how many seconds a cached result becomes invalid + private long freshnessSeconds = 15 * 24 * 60 * 60; // 15 days + + private Connection conn; + + MessageDigest md5; + + public ExtractionDBCache() throws ClassNotFoundException, SQLException, NoSuchAlgorithmException { + md5 = MessageDigest.getInstance("MD5"); + + // load driver + Class.forName("org.h2.Driver"); + + // connect to database (created automatically if not existing) + conn = DriverManager.getConnection("jdbc:h2:"+databaseDirectory+"/"+databaseName, "sa", ""); + + // create cache table if it does not exist + Statement stmt = conn.createStatement(); + stmt.execute("CREATE TABLE IF NOT EXISTS QUERY_CACHE(QUERYHASH BINARY PRIMARY KEY,QUERY VARCHAR(255), TRIPLES CLOB, STORE_TIME TIMESTAMP)"); + } + + public Model executeConstructQuery(String query) throws SQLException, UnsupportedEncodingException { + byte[] md5 = md5(query); +// Timestamp currTS = new Timestamp(new java.util.Date().getTime()); + PreparedStatement ps=conn.prepareStatement("SELECT * FROM QUERY_CACHE WHERE QUERYHASH=? LIMIT 1"); + ps.setBytes(1, md5); + ResultSet rs = ps.executeQuery(); + + boolean readFromCache = rs.next() && (rs.getTimestamp("STORE_TIME").getTime() - System.currentTimeMillis() < freshnessSeconds); + + if(readFromCache) { +// System.out.println("Reading from cache"); +// String posedQuery = rs.getString("QUERY"); +// System.out.println(posedQuery); + Clob clob = rs.getClob("TRIPLES"); + Model readModel = ModelFactory.createDefaultModel(); + readModel.read(clob.getAsciiStream(), null, "N-TRIPLE"); + return readModel; + } else { +// System.out.println("Posing new query"); + + String endpoint = "http://139.18.2.37:8890/sparql"; + QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint, query); + queryExecution.addDefaultGraph("http://dbpedia.org"); + Model m2 = queryExecution.execConstruct(); + + // convert model to N-Triples + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + m2.write(baos, "N-TRIPLE"); + String modelStr = baos.toString("UTF-8"); + + // use a prepared statement, so that Java handles all the escaping stuff correctly automatically + PreparedStatement ps2=conn.prepareStatement("INSERT INTO QUERY_CACHE VALUES(?,?,?,?)"); + ps2.setBytes(1, md5); + ps2.setString(2, query); + ps2.setClob(3, new StringReader(modelStr)); + ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); + ps2.executeUpdate(); + + return m2; + } + } + + public void closeConnection() throws SQLException { + conn.close(); + } + + private byte[] md5(String string) { + md5.reset(); + md5.update(string.getBytes()); + return md5.digest(); + } + + public static String toNTriple(Model m) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + m.write(baos, "N-TRIPLE"); + try { + return baos.toString("UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return null; + } + } + + public static void main(String[] args) throws ClassNotFoundException, SQLException, NoSuchAlgorithmException, UnsupportedEncodingException { + String resource = "http://dbpedia.org/resource/Leipzig"; + String query = "CONSTRUCT { <"+resource+"> ?p ?o } WHERE { <"+resource+"> ?p ?o }"; + System.out.println("query: " + query); + + ExtractionDBCache h2 = new ExtractionDBCache(); + long startTime = System.nanoTime(); + Model m = h2.executeConstructQuery(query); + long runTime = System.nanoTime() - startTime; + System.out.println("Answer obtained in " + Helper.prettyPrintNanoSeconds(runTime)); + System.out.println(ExtractionDBCache.toNTriple(m)); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2010-03-16 17:55:32
|
Revision: 2123 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2123&view=rev Author: kurzum Date: 2010-03-16 17:55:25 +0000 (Tue, 16 Mar 2010) Log Message: ----------- fixed a sparql conversion bug Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/test/SparqlQueryConverter.java Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin + .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin tigerResults dbpedia_3.4.owl dbpedia_3.4.owl.count dbpedia_3.4.owl.expanded.count dbpedia_3.4.owl.purged.ser dbpedia_3.4.owl.sub.ser dbpedia_3.4.owl.super.ser dbpedia_3.4.owl.tar.gz skoscategories_en.nt skoscategories_en.nt.count skoscategories_en.nt.expanded.count skoscategories_en.nt.purged.ser skoscategories_en.nt.sub.ser skoscategories_en.nt.super.ser skoscategories_en.nt.tar.gz yagoclasses_links.nt yagoclasses_links.nt.count yagoclasses_links.nt.expanded.count yagoclasses_links.nt.purged.ser yagoclasses_links.nt.sub.ser yagoclasses_links.nt.super.ser yagoclasses_links.nt.tar.gz Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-03-16 09:01:43 UTC (rev 2122) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-03-16 17:55:25 UTC (rev 2123) @@ -58,6 +58,7 @@ import org.dllearner.core.owl.Union; import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; +import org.dllearner.test.SparqlQueryConverter; /** * Converter from DL-Learner descriptions to a corresponding SPARQL query to get @@ -251,6 +252,7 @@ * @param args */ public static void main(String[] args) { + SparqlQueryConverter.test(); try { SortedSet<String> s = new TreeSet<String>(); HashMap<String, String> result = new HashMap<String, String>(); @@ -301,7 +303,6 @@ if (true) { System.exit(0); } - // <http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag> String query = ""; SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor(); @@ -362,11 +363,18 @@ if(transitiveProperties!= null && transitiveProperties.contains(description.getRole().toString()) ){ option =" OPTION (TRANSITIVE , t_in(?" + stack.peek()+"), t_out(?object" + currentObject + "), T_MIN(0), T_MAX(6), T_DIRECTION 1 , T_NO_CYCLES) "; } - query += "\n?" + stack.peek() + " <" + description.getRole() + "> ?object" + currentObject + option + ". "; - stack.push("object" + currentObject); - currentObject++; - description.getChild(0).accept(this); - stack.pop(); + + if(description.getChild(0) instanceof Thing){ + //I removed a point here at the end + query += "\n?" + stack.peek() + " <" + description.getRole() + "> [] " + option + " "; + }else{ + query += "\n?" + stack.peek() + " <" + description.getRole() + "> ?object" + currentObject + option + " . "; + stack.push("object" + currentObject); + currentObject++; + description.getChild(0).accept(this); + stack.pop(); + } + logger.trace(description.getRole().toString()); logger.trace(description.getChild(0).toString()); } @@ -402,10 +410,18 @@ * .Intersection) */ public void visit(Intersection description) { - logger.trace("Intersection"); - description.getChild(0).accept(this); - query += ". "; - description.getChild(1).accept(this); + if(description.getChild(0) instanceof Thing ){ + logger.trace("Intersection with TOP"); + description.getChild(1).accept(this); + }else if(description.getChild(1) instanceof Thing ){ + logger.trace("Intersection with TOP"); + description.getChild(0).accept(this); + }else{ + logger.trace("Intersection"); + description.getChild(0).accept(this); + query += ". "; + description.getChild(1).accept(this); + } } /* @@ -416,13 +432,23 @@ * .Union) */ public void visit(Union description) { - // HACK see replace hacks in other functions - logger.trace("Union"); - query += "{"; - description.getChild(0).accept(this); - query += "} UNION {"; - description.getChild(1).accept(this); - query += "}"; + + if(description.getChild(0) instanceof Thing ){ + logger.trace("Union with TOP"); + description.getChild(1).accept(this); + }else if(description.getChild(1) instanceof Thing ){ + logger.trace("Union with TOP"); + description.getChild(0).accept(this); + }else{ + logger.trace("Union"); + query += "{"; + description.getChild(0).accept(this); + query += "} UNION {"; + description.getChild(1).accept(this); + query += "}"; + } + + } /* Added: trunk/src/dl-learner/org/dllearner/test/SparqlQueryConverter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlQueryConverter.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/test/SparqlQueryConverter.java 2010-03-16 17:55:25 UTC (rev 2123) @@ -0,0 +1,55 @@ +package org.dllearner.test; + +import java.util.HashMap; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; +import org.dllearner.parser.ParseException; +import org.junit.Test; + +public class SparqlQueryConverter { + + @Test + public static void test(){ + SortedSet<String> s = new TreeSet<String>(); + s.add("(\"http://dbpedia.org/ontology/Work\" AND (EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".TOP AND (\"http://dbpedia.org/ontology/TelevisionEpisode\" OR EXISTS \"http://xmlns.com/foaf/0.1/depiction\".TOP)))"); + s.add("(\"http://dbpedia.org/ontology/Work\" AND (EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".TOP AND \"http://dbpedia.org/ontology/TelevisionEpisode\"))"); + s.add(" ( EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".TOP AND \"http://dbpedia.org/ontology/TelevisionEpisode\")"); + s.add(" EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".TOP "); + s.add(" EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".(TOP OR \"http://dbpedia.org/ontology/TelevisionEpisode\") "); + s.add(" EXISTS \"http://dbpedia.org/property/hasPhotoCollection\".(TOP AND \"http://dbpedia.org/ontology/TelevisionEpisode\") "); + convert(s); + if (true) { + System.exit(0); + } + } + + private static void convert(Set<String> s){ + try{ + HashMap<String, String> result = new HashMap<String, String>(); + String query = ""; + SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor(); + visit.setLabels(false); + visit.setDistinct(false); +// visit.setClassToSubclassesVirtuoso(subclassMap); + + + + for (String kbsyntax : s) { + query = visit.getSparqlQuery(kbsyntax); + result.put(kbsyntax, query); + } + System.out.println("************************"); + for (String string : result.keySet()) { + System.out.println("KBSyntayString: " + string); + System.out.println("Query:\n" + result.get(string)); + System.out.println("************************"); + } + System.out.println("Finished"); + } catch (ParseException e) { + e.printStackTrace(); + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2010-03-25 08:41:37
|
Revision: 2137 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2137&view=rev Author: kurzum Date: 2010-03-25 08:41:30 +0000 (Thu, 25 Mar 2010) Log Message: ----------- started pom for dllearner, not so easy, currently browserlauncher2 is making problems Added Paths: ----------- trunk/pom.xml Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin tigerResults dbpedia_3.4.owl dbpedia_3.4.owl.count dbpedia_3.4.owl.expanded.count dbpedia_3.4.owl.purged.ser dbpedia_3.4.owl.sub.ser dbpedia_3.4.owl.super.ser dbpedia_3.4.owl.tar.gz skoscategories_en.nt skoscategories_en.nt.count skoscategories_en.nt.expanded.count skoscategories_en.nt.purged.ser skoscategories_en.nt.sub.ser skoscategories_en.nt.super.ser skoscategories_en.nt.tar.gz yagoclasses_links.nt yagoclasses_links.nt.count yagoclasses_links.nt.expanded.count yagoclasses_links.nt.purged.ser yagoclasses_links.nt.sub.ser yagoclasses_links.nt.super.ser yagoclasses_links.nt.tar.gz + .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin tigerResults dbpedia_3.4.owl dbpedia_3.4.owl.count dbpedia_3.4.owl.expanded.count dbpedia_3.4.owl.purged.ser dbpedia_3.4.owl.sub.ser dbpedia_3.4.owl.super.ser dbpedia_3.4.owl.tar.gz skoscategories_en.nt skoscategories_en.nt.count skoscategories_en.nt.expanded.count skoscategories_en.nt.purged.ser skoscategories_en.nt.sub.ser skoscategories_en.nt.super.ser skoscategories_en.nt.tar.gz yagoclasses_links.nt yagoclasses_links.nt.count yagoclasses_links.nt.expanded.count yagoclasses_links.nt.purged.ser yagoclasses_links.nt.sub.ser yagoclasses_links.nt.super.ser yagoclasses_links.nt.tar.gz target Added: trunk/pom.xml =================================================================== --- trunk/pom.xml (rev 0) +++ trunk/pom.xml 2010-03-25 08:41:30 UTC (rev 2137) @@ -0,0 +1,258 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.dllearner</groupId> + <artifactId>dllearner</artifactId> + <version>1</version> + <properties> + <!-- tell the compiler we can use 1.5 --> + <maven.compiler.source>1.5</maven.compiler.source> + <maven.compiler.target>1.5</maven.compiler.target> + + </properties> + <!-- + <distributionManagement> + <repository> + <id>archiva.internal</id> + <name>Internal Release Repository</name> + <url>http://reposerver.mycompany.com:8080/archiva/repository/internal/</url> + </repository> + <snapshotRepository> + <id>archiva.snapshots</id> + <name>Internal Snapshot Repository</name> + <url>http://reposerver.mycompany.com:8080/archiva/repository/snapshots/</url> + </snapshotRepository> + </distributionManagement> + --> + + <repositories> + <repository> + <id>some_stuff_such_as_pellet</id> + <url>http://on.cs.unibas.ch/maven/repository</url> + </repository> + <repository> + <id>java sun maven</id> + <url>http://download.java.net/maven/2</url> + </repository> + <repository> + <id>our archiva</id> + <url>http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> + <repository> + <id>Jamon 2.7</id> + <url>http://maven.jahia.org/maven2</url> + </repository> + <repository> + <id>browserlauncher2</id> + <url>http://www.laughingpanda.org/maven2</url> + </repository> + </repositories> + + + <build> + <directory>target</directory> + <outputDirectory>target/classes</outputDirectory> + <finalName>${artifactId}-${version}</finalName> + <testOutputDirectory>target/test-classes</testOutputDirectory> + <sourceDirectory>src/dl-learner</sourceDirectory> + <scriptSourceDirectory>bin</scriptSourceDirectory> + <!-- <testSourceDirectory>src/test/java</testSourceDirectory> --> + </build> + + <dependencies> + <dependency> + <groupId>edu.stanford.ejalbert.BrowserLauncher2</groupId> + <artifactId>BrowserLauncher2</artifactId> + <version>1.3</version> + </dependency> + + + <dependency> + <groupId>secondstring-20060615</groupId> + <artifactId>secondstring-20060615</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.semanticweb.owl</groupId> + <artifactId>owlapi</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.protege.editor.core.application</groupId> + <artifactId>org.protege.editor.core.application</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.protege.editor.owl</groupId> + <artifactId>org.protege.editor.owl</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>dig1.1-xmlbeans</groupId> + <artifactId>dig1.1-xmlbeans</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>FaCTpp-OWLAPI-v1.1.11</groupId> + <artifactId>FaCTpp-OWLAPI-v1.1.11</artifactId> + <version>1</version> + </dependency> + + <dependency> + <groupId>org.semanticweb.owl</groupId> + <artifactId>owlapiV3</artifactId> + <version>1</version> + </dependency> +<!-- Pellet stuff here --> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-core</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-datatypes</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-el</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-explanation</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-modularity</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-owlapi</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-rules</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>relaxngDatatype</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>xsdlib</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>aterm</artifactId> + <version>1</version> + </dependency> + + + + <!-- test --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.7</version> + <!-- <scope>test</scope> --> + </dependency> + <dependency> + <groupId>com.hp.hpl.jena</groupId> + <artifactId>jena</artifactId> + <version>2.6.2</version> + </dependency> + <dependency> + <groupId>com.jamonapi</groupId> + <artifactId>jamon</artifactId> + <version>2.7</version> + </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20090211</version> + </dependency> + <dependency> + <groupId>com.hp.hpl.jena</groupId> + <artifactId>arq</artifactId> + <version>2.8.2</version> + <exclusions> + <exclusion> + <groupId>javax.mail</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>mail</artifactId> + </exclusion> + <exclusion> + <groupId>javax.jms</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jms</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jdmk</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jmxtools</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jmx</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jmxri</artifactId> + </exclusion> + + + </exclusions> + </dependency> + <dependency> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils-core</artifactId> + <version>1.8.2</version> + </dependency> + + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>20040616</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring</artifactId> + <version>2.5.6.SEC01</version> + </dependency> + <dependency> + <groupId>org.ini4j</groupId> + <artifactId>ini4j</artifactId> + <version>0.5.1</version> + </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.2.131</version> + </dependency> + <dependency> + <groupId>com.kenai.nbpwr</groupId> + <artifactId>org-jdesktop-swingx</artifactId> + <version>1.6-201002261215</version> + <type>nbm</type> + </dependency> + <dependency> + <groupId>org.apache.xmlbeans</groupId> + <artifactId>xmlbeans</artifactId> + <version>2.4.0</version> + </dependency> + <dependency> + <groupId>net.sf.jopt-simple</groupId> + <artifactId>jopt-simple</artifactId> + <version>3.2</version> + </dependency> + <dependency> + <groupId>com.jgoodies</groupId> + <artifactId>looks</artifactId> + <version>2.2.2</version> + </dependency> + + </dependencies> + + +</project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2010-03-27 14:32:36
|
Revision: 2139 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2139&view=rev Author: kurzum Date: 2010-03-27 14:32:30 +0000 (Sat, 27 Mar 2010) Log Message: ----------- renamed pom as it is not working yet Added Paths: ----------- trunk/pom_not_working.xml Removed Paths: ------------- trunk/pom.xml Deleted: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-03-25 16:25:28 UTC (rev 2138) +++ trunk/pom.xml 2010-03-27 14:32:30 UTC (rev 2139) @@ -1,258 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>org.dllearner</groupId> - <artifactId>dllearner</artifactId> - <version>1</version> - <properties> - <!-- tell the compiler we can use 1.5 --> - <maven.compiler.source>1.5</maven.compiler.source> - <maven.compiler.target>1.5</maven.compiler.target> - - </properties> - <!-- - <distributionManagement> - <repository> - <id>archiva.internal</id> - <name>Internal Release Repository</name> - <url>http://reposerver.mycompany.com:8080/archiva/repository/internal/</url> - </repository> - <snapshotRepository> - <id>archiva.snapshots</id> - <name>Internal Snapshot Repository</name> - <url>http://reposerver.mycompany.com:8080/archiva/repository/snapshots/</url> - </snapshotRepository> - </distributionManagement> - --> - - <repositories> - <repository> - <id>some_stuff_such_as_pellet</id> - <url>http://on.cs.unibas.ch/maven/repository</url> - </repository> - <repository> - <id>java sun maven</id> - <url>http://download.java.net/maven/2</url> - </repository> - <repository> - <id>our archiva</id> - <url>http://db0.aksw.org:8081/archiva/repository/internal/</url> - </repository> - <repository> - <id>Jamon 2.7</id> - <url>http://maven.jahia.org/maven2</url> - </repository> - <repository> - <id>browserlauncher2</id> - <url>http://www.laughingpanda.org/maven2</url> - </repository> - </repositories> - - - <build> - <directory>target</directory> - <outputDirectory>target/classes</outputDirectory> - <finalName>${artifactId}-${version}</finalName> - <testOutputDirectory>target/test-classes</testOutputDirectory> - <sourceDirectory>src/dl-learner</sourceDirectory> - <scriptSourceDirectory>bin</scriptSourceDirectory> - <!-- <testSourceDirectory>src/test/java</testSourceDirectory> --> - </build> - - <dependencies> - <dependency> - <groupId>edu.stanford.ejalbert.BrowserLauncher2</groupId> - <artifactId>BrowserLauncher2</artifactId> - <version>1.3</version> - </dependency> - - - <dependency> - <groupId>secondstring-20060615</groupId> - <artifactId>secondstring-20060615</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>org.semanticweb.owl</groupId> - <artifactId>owlapi</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>org.protege.editor.core.application</groupId> - <artifactId>org.protege.editor.core.application</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>org.protege.editor.owl</groupId> - <artifactId>org.protege.editor.owl</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>dig1.1-xmlbeans</groupId> - <artifactId>dig1.1-xmlbeans</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>FaCTpp-OWLAPI-v1.1.11</groupId> - <artifactId>FaCTpp-OWLAPI-v1.1.11</artifactId> - <version>1</version> - </dependency> - - <dependency> - <groupId>org.semanticweb.owl</groupId> - <artifactId>owlapiV3</artifactId> - <version>1</version> - </dependency> -<!-- Pellet stuff here --> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-core</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-datatypes</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-el</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-explanation</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-modularity</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-owlapi</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>pellet-rules</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>relaxngDatatype</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>xsdlib</artifactId> - <version>1</version> - </dependency> - <dependency> - <groupId>com.owldl</groupId> - <artifactId>aterm</artifactId> - <version>1</version> - </dependency> - - - - <!-- test --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.7</version> - <!-- <scope>test</scope> --> - </dependency> - <dependency> - <groupId>com.hp.hpl.jena</groupId> - <artifactId>jena</artifactId> - <version>2.6.2</version> - </dependency> - <dependency> - <groupId>com.jamonapi</groupId> - <artifactId>jamon</artifactId> - <version>2.7</version> - </dependency> - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - <version>20090211</version> - </dependency> - <dependency> - <groupId>com.hp.hpl.jena</groupId> - <artifactId>arq</artifactId> - <version>2.8.2</version> - <exclusions> - <exclusion> - <groupId>javax.mail</groupId> <!-- Exclude Project-E from Project-B --> - <artifactId>mail</artifactId> - </exclusion> - <exclusion> - <groupId>javax.jms</groupId> <!-- Exclude Project-E from Project-B --> - <artifactId>jms</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jdmk</groupId> <!-- Exclude Project-E from Project-B --> - <artifactId>jmxtools</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jmx</groupId> <!-- Exclude Project-E from Project-B --> - <artifactId>jmxri</artifactId> - </exclusion> - - - </exclusions> - </dependency> - <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils-core</artifactId> - <version>1.8.2</version> - </dependency> - - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>20040616</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring</artifactId> - <version>2.5.6.SEC01</version> - </dependency> - <dependency> - <groupId>org.ini4j</groupId> - <artifactId>ini4j</artifactId> - <version>0.5.1</version> - </dependency> - - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <version>1.2.131</version> - </dependency> - <dependency> - <groupId>com.kenai.nbpwr</groupId> - <artifactId>org-jdesktop-swingx</artifactId> - <version>1.6-201002261215</version> - <type>nbm</type> - </dependency> - <dependency> - <groupId>org.apache.xmlbeans</groupId> - <artifactId>xmlbeans</artifactId> - <version>2.4.0</version> - </dependency> - <dependency> - <groupId>net.sf.jopt-simple</groupId> - <artifactId>jopt-simple</artifactId> - <version>3.2</version> - </dependency> - <dependency> - <groupId>com.jgoodies</groupId> - <artifactId>looks</artifactId> - <version>2.2.2</version> - </dependency> - - </dependencies> - - -</project> \ No newline at end of file Copied: trunk/pom_not_working.xml (from rev 2138, trunk/pom.xml) =================================================================== --- trunk/pom_not_working.xml (rev 0) +++ trunk/pom_not_working.xml 2010-03-27 14:32:30 UTC (rev 2139) @@ -0,0 +1,258 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.dllearner</groupId> + <artifactId>dllearner</artifactId> + <version>1</version> + <properties> + <!-- tell the compiler we can use 1.5 --> + <maven.compiler.source>1.5</maven.compiler.source> + <maven.compiler.target>1.5</maven.compiler.target> + + </properties> + <!-- + <distributionManagement> + <repository> + <id>archiva.internal</id> + <name>Internal Release Repository</name> + <url>http://reposerver.mycompany.com:8080/archiva/repository/internal/</url> + </repository> + <snapshotRepository> + <id>archiva.snapshots</id> + <name>Internal Snapshot Repository</name> + <url>http://reposerver.mycompany.com:8080/archiva/repository/snapshots/</url> + </snapshotRepository> + </distributionManagement> + --> + + <repositories> + <repository> + <id>some_stuff_such_as_pellet</id> + <url>http://on.cs.unibas.ch/maven/repository</url> + </repository> + <repository> + <id>java sun maven</id> + <url>http://download.java.net/maven/2</url> + </repository> + <repository> + <id>our archiva</id> + <url>http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> + <repository> + <id>Jamon 2.7</id> + <url>http://maven.jahia.org/maven2</url> + </repository> + <repository> + <id>browserlauncher2</id> + <url>http://www.laughingpanda.org/maven2</url> + </repository> + </repositories> + + + <build> + <directory>target</directory> + <outputDirectory>target/classes</outputDirectory> + <finalName>${artifactId}-${version}</finalName> + <testOutputDirectory>target/test-classes</testOutputDirectory> + <sourceDirectory>src/dl-learner</sourceDirectory> + <scriptSourceDirectory>bin</scriptSourceDirectory> + <!-- <testSourceDirectory>src/test/java</testSourceDirectory> --> + </build> + + <dependencies> + <dependency> + <groupId>edu.stanford.ejalbert.BrowserLauncher2</groupId> + <artifactId>BrowserLauncher2</artifactId> + <version>1.3</version> + </dependency> + + + <dependency> + <groupId>secondstring-20060615</groupId> + <artifactId>secondstring-20060615</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.semanticweb.owl</groupId> + <artifactId>owlapi</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.protege.editor.core.application</groupId> + <artifactId>org.protege.editor.core.application</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>org.protege.editor.owl</groupId> + <artifactId>org.protege.editor.owl</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>dig1.1-xmlbeans</groupId> + <artifactId>dig1.1-xmlbeans</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>FaCTpp-OWLAPI-v1.1.11</groupId> + <artifactId>FaCTpp-OWLAPI-v1.1.11</artifactId> + <version>1</version> + </dependency> + + <dependency> + <groupId>org.semanticweb.owl</groupId> + <artifactId>owlapiV3</artifactId> + <version>1</version> + </dependency> +<!-- Pellet stuff here --> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-core</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-datatypes</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-el</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-explanation</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-modularity</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-owlapi</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>pellet-rules</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>relaxngDatatype</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>xsdlib</artifactId> + <version>1</version> + </dependency> + <dependency> + <groupId>com.owldl</groupId> + <artifactId>aterm</artifactId> + <version>1</version> + </dependency> + + + + <!-- test --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.7</version> + <!-- <scope>test</scope> --> + </dependency> + <dependency> + <groupId>com.hp.hpl.jena</groupId> + <artifactId>jena</artifactId> + <version>2.6.2</version> + </dependency> + <dependency> + <groupId>com.jamonapi</groupId> + <artifactId>jamon</artifactId> + <version>2.7</version> + </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20090211</version> + </dependency> + <dependency> + <groupId>com.hp.hpl.jena</groupId> + <artifactId>arq</artifactId> + <version>2.8.2</version> + <exclusions> + <exclusion> + <groupId>javax.mail</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>mail</artifactId> + </exclusion> + <exclusion> + <groupId>javax.jms</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jms</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jdmk</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jmxtools</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jmx</groupId> <!-- Exclude Project-E from Project-B --> + <artifactId>jmxri</artifactId> + </exclusion> + + + </exclusions> + </dependency> + <dependency> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils-core</artifactId> + <version>1.8.2</version> + </dependency> + + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>20040616</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring</artifactId> + <version>2.5.6.SEC01</version> + </dependency> + <dependency> + <groupId>org.ini4j</groupId> + <artifactId>ini4j</artifactId> + <version>0.5.1</version> + </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.2.131</version> + </dependency> + <dependency> + <groupId>com.kenai.nbpwr</groupId> + <artifactId>org-jdesktop-swingx</artifactId> + <version>1.6-201002261215</version> + <type>nbm</type> + </dependency> + <dependency> + <groupId>org.apache.xmlbeans</groupId> + <artifactId>xmlbeans</artifactId> + <version>2.4.0</version> + </dependency> + <dependency> + <groupId>net.sf.jopt-simple</groupId> + <artifactId>jopt-simple</artifactId> + <version>3.2</version> + </dependency> + <dependency> + <groupId>com.jgoodies</groupId> + <artifactId>looks</artifactId> + <version>2.2.2</version> + </dependency> + + </dependencies> + + +</project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-04-08 16:34:00
|
Revision: 2142 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2142&view=rev Author: jenslehmann Date: 2010-04-08 16:33:52 +0000 (Thu, 08 Apr 2010) Log Message: ----------- started ISLE learning algorithm Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/components.ini trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java trunk/src/dl-learner/org/dllearner/scripts/ConfigJavaGenerator.java Added Paths: ----------- trunk/lib/lucene-core-3.0.1.jar trunk/src/dl-learner/org/dllearner/algorithms/isle/ trunk/src/dl-learner/org/dllearner/algorithms/isle/EntityTextRetriever.java trunk/src/dl-learner/org/dllearner/algorithms/isle/ISLE.java trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneDocument.java trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneIndexer.java trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneSearcher.java trunk/src/dl-learner/org/dllearner/algorithms/isle/NLPHeuristic.java trunk/src/dl-learner/org/dllearner/algorithms/isle/Relevances.java trunk/src/dl-learner/org/dllearner/core/configurators/ISLEConfigurator.java Added: trunk/lib/lucene-core-3.0.1.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/lucene-core-3.0.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/EntityTextRetriever.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/EntityTextRetriever.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/EntityTextRetriever.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,48 @@ +/** + * Copyright (C) 2007-2010, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.algorithms.isle; + +import java.util.Map; + +import org.dllearner.core.owl.Entity; + +/** + * Interface for methods, which retrieve relevant texts given an entity + * in an ontology. An entity text retriever can do simple operations such + * as converting the URI into text or retrieving an rdfs:label, but could + * also search web pages for textual explanations of an entity. + * + * @author Jens Lehmann + * + */ +public interface EntityTextRetriever { + + /** + * The method retrieves a string or a set of strings, which is weighted by + * importance with respect to the entity. For instance, an rdfs:label of + * an entity can be given more weight than an rdfs:comment, which in turn + * can be more important than a description retrieved from a web page. + * + * @param entity The entity to handle. + * @return A weighted set of strings. For a value x, we need to have 0 <= x <= 1. + */ + public Map<String, Integer> getRelevantText(Entity entity); + +} Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/ISLE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/ISLE.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/ISLE.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,736 @@ +/** + * Copyright (C) 2007-2010, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.algorithms.isle; + +import java.text.DecimalFormat; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.algorithms.celoe.CELOE; +import org.dllearner.algorithms.celoe.OEHeuristicRuntime; +import org.dllearner.algorithms.celoe.OENode; +import org.dllearner.core.ComponentInitException; +import org.dllearner.core.EvaluatedDescription; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.configurators.CELOEConfigurator; +import org.dllearner.core.configurators.Configurator; +import org.dllearner.core.configurators.ISLEConfigurator; +import org.dllearner.core.options.BooleanConfigOption; +import org.dllearner.core.options.CommonConfigOptions; +import org.dllearner.core.options.ConfigOption; +import org.dllearner.core.owl.ClassHierarchy; +import org.dllearner.core.owl.Description; +import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.Intersection; +import org.dllearner.core.owl.NamedClass; +import org.dllearner.core.owl.Restriction; +import org.dllearner.core.owl.Thing; +import org.dllearner.learningproblems.ClassLearningProblem; +import org.dllearner.learningproblems.PosNegLP; +import org.dllearner.learningproblems.PosNegLPStandard; +import org.dllearner.learningproblems.PosOnlyLP; +import org.dllearner.refinementoperators.OperatorInverter; +import org.dllearner.refinementoperators.RefinementOperator; +import org.dllearner.refinementoperators.RhoDRDown; +import org.dllearner.utilities.Helper; +import org.dllearner.utilities.owl.ConceptComparator; +import org.dllearner.utilities.owl.ConceptTransformation; +import org.dllearner.utilities.owl.DescriptionMinimizer; +import org.dllearner.utilities.owl.EvaluatedDescriptionSet; +import org.dllearner.utilities.owl.PropertyContext; + +import com.jamonapi.Monitor; +import com.jamonapi.MonitorFactory; + +/** + * ISLE - *I*nductive and *S"tatistical *L*earning of OWL Class *E*xpressions + * + * @author Jens Lehmann + * + */ +public class ISLE extends LearningAlgorithm { + + private static Logger logger = Logger.getLogger(CELOE.class); + private ISLEConfigurator configurator; + + private boolean isRunning = false; + private boolean stop = false; + +// private OEHeuristicStable heuristicStable = new OEHeuristicStable(); +// private OEHeuristicRuntime heuristicRuntime = new OEHeuristicRuntime(); + + private RefinementOperator operator; + private DescriptionMinimizer minimizer; + + // all nodes in the search tree (used for selecting most promising node) + private TreeSet<OENode> nodes; + private NLPHeuristic heuristic = new NLPHeuristic(); + // root of search tree + private OENode startNode; + // the class with which we start the refinement process + private Description startClass; + + // all descriptions in the search tree plus those which were too weak (for fast redundancy check) + private TreeSet<Description> descriptions; + + private EvaluatedDescriptionSet bestEvaluatedDescriptions; + + // if true, then each solution is evaluated exactly instead of approximately + // private boolean exactBestDescriptionEvaluation = false; + private boolean singleSuggestionMode; + private Description bestDescription; + private double bestAccuracy = Double.MIN_VALUE; + + private NamedClass classToDescribe; + // examples are either 1.) instances of the class to describe 2.) positive examples + // 3.) union of pos.+neg. examples depending on the learning problem at hand + private Set<Individual> examples; + + // CELOE was originally created for learning classes in ontologies, but also + // works for other learning problem types + private boolean isClassLearningProblem; + private boolean isEquivalenceProblem; + + private long nanoStartTime; + + // important parameters + private double noise; + private double maxDepth; + private boolean filterFollowsFromKB; + + // utility variables + private String baseURI; + private Map<String, String> prefixes; + private DecimalFormat dfPercent = new DecimalFormat("0.00%"); + private ConceptComparator descriptionComparator = new ConceptComparator(); + + // statistical variables + private int expressionTests = 0; + private int minHorizExp = 0; + private int maxHorizExp = 0; + + @Override + public ISLEConfigurator getConfigurator() { + return configurator; + } + + public ISLE(LearningProblem problem, ReasonerComponent reasoner) { + super(problem, reasoner); + configurator = new ISLEConfigurator(this); + } + + public static Collection<Class<? extends LearningProblem>> supportedLearningProblems() { + Collection<Class<? extends LearningProblem>> problems = new LinkedList<Class<? extends LearningProblem>>(); + problems.add(LearningProblem.class); + return problems; + } + + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + options.add(CommonConfigOptions.useAllConstructor()); + options.add(CommonConfigOptions.useExistsConstructor()); + options.add(CommonConfigOptions.useHasValueConstructor()); + options.add(CommonConfigOptions.useDataHasValueConstructor()); + options.add(CommonConfigOptions.valueFreqencyThreshold()); + options.add(CommonConfigOptions.useCardinalityRestrictions()); + options.add(CommonConfigOptions.cardinalityLimit()); + // by default, we do not use negation (should be configurable in GUI) + options.add(CommonConfigOptions.useNegation(false)); + options.add(CommonConfigOptions.useBooleanDatatypes()); + options.add(CommonConfigOptions.useDoubleDatatypes()); + options.add(CommonConfigOptions.maxExecutionTimeInSeconds(10)); + options.add(CommonConfigOptions.getNoisePercentage()); + options.add(CommonConfigOptions.getMaxDepth(7)); + options.add(CommonConfigOptions.maxNrOfResults(10)); + options.add(new BooleanConfigOption("singleSuggestionMode", "Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.", false)); + options.add(CommonConfigOptions.getInstanceBasedDisjoints()); + options.add(new BooleanConfigOption("filterDescriptionsFollowingFromKB", "If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions.", false)); + options.add(new BooleanConfigOption("reuseExistingDescription", "If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base.", false)); + return options; + } + + public static String getName() { + return "ISLE"; + } + + @Override + public void init() throws ComponentInitException { + // copy class hierarchy and modify it such that each class is only + // reachable via a single path + ClassHierarchy classHierarchy = reasoner.getClassHierarchy().clone(); + classHierarchy.thinOutSubsumptionHierarchy(); + + minimizer = new DescriptionMinimizer(reasoner); + + startClass = Thing.instance; + + singleSuggestionMode = configurator.getSingleSuggestionMode(); + + // create refinement operator + operator = new RhoDRDown(reasoner, classHierarchy, startClass, configurator); + baseURI = reasoner.getBaseURI(); + prefixes = reasoner.getPrefixes(); + + bestEvaluatedDescriptions = new EvaluatedDescriptionSet(configurator.getMaxNrOfResults()); + + isClassLearningProblem = (learningProblem instanceof ClassLearningProblem); + + // we put important parameters in class variables + noise = configurator.getNoisePercentage()/100d; + maxDepth = configurator.getMaxDepth(); + // (filterFollowsFromKB is automatically set to false if the problem + // is not a class learning problem + filterFollowsFromKB = configurator.getFilterDescriptionsFollowingFromKB() + && isClassLearningProblem; + + // actions specific to ontology engineering + if(isClassLearningProblem) { + ClassLearningProblem problem = (ClassLearningProblem) learningProblem; + classToDescribe = problem.getClassToDescribe(); + isEquivalenceProblem = problem.isEquivalenceProblem(); + + examples = reasoner.getIndividuals(classToDescribe); + + // start class: intersection of super classes for definitions (since it needs to + // capture all instances), but owl:Thing for learning subclasses (since it is + // superfluous to add super classes in this case) + if(isEquivalenceProblem) { + Set<Description> existingDefinitions = reasoner.getAssertedDefinitions(classToDescribe); + if(configurator.getReuseExistingDescription() && (existingDefinitions.size() > 0)) { + // the existing definition is reused, which in the simplest case means to + // use it as a start class or, if it is already too specific, generalise it + + // pick the longest existing definition as candidate + Description existingDefinition = null; + int highestLength = 0; + for(Description exDef : existingDefinitions) { + if(exDef.getLength() > highestLength) { + existingDefinition = exDef; + highestLength = exDef.getLength(); + } + } + + LinkedList<Description> startClassCandidates = new LinkedList<Description>(); + startClassCandidates.add(existingDefinition); + ((RhoDRDown)operator).setDropDisjuncts(true); + RefinementOperator upwardOperator = new OperatorInverter(operator); + + // use upward refinement until we find an appropriate start class + boolean startClassFound = false; + Description candidate; + do { + candidate = startClassCandidates.pollFirst(); + if(((ClassLearningProblem)learningProblem).getRecall(candidate)<1.0) { + // add upward refinements to list + Set<Description> refinements = upwardOperator.refine(candidate, candidate.getLength()); +// System.out.println("ref: " + refinements); + LinkedList<Description> refinementList = new LinkedList<Description>(refinements); +// Collections.reverse(refinementList); +// System.out.println("list: " + refinementList); + startClassCandidates.addAll(refinementList); +// System.out.println("candidates: " + startClassCandidates); + } else { + startClassFound = true; + } + } while(!startClassFound); + startClass = candidate; + + if(startClass.equals(existingDefinition)) { + logger.info("Reusing existing description " + startClass.toManchesterSyntaxString(baseURI, prefixes) + " as start class for learning algorithm."); + } else { + logger.info("Generalised existing description " + existingDefinition.toManchesterSyntaxString(baseURI, prefixes) + " to " + startClass.toManchesterSyntaxString(baseURI, prefixes) + ", which is used as start class for the learning algorithm."); + } + +// System.out.println("start class: " + startClass); +// System.out.println("existing def: " + existingDefinition); +// System.out.println(reasoner.getIndividuals(existingDefinition)); + + ((RhoDRDown)operator).setDropDisjuncts(false); + + } else { + Set<Description> superClasses = reasoner.getClassHierarchy().getSuperClasses(classToDescribe); + if(superClasses.size() > 1) { + startClass = new Intersection(new LinkedList<Description>(superClasses)); + } else if(superClasses.size() == 1){ + startClass = (Description) superClasses.toArray()[0]; + } else { + startClass = Thing.instance; + logger.warn(classToDescribe + " is equivalent to owl:Thing. Usually, it is not " + + "sensible to learn a description in this case."); + } + } + } + } else if(learningProblem instanceof PosOnlyLP) { + examples = ((PosOnlyLP)learningProblem).getPositiveExamples(); + } else if(learningProblem instanceof PosNegLP) { + examples = Helper.union(((PosNegLP)learningProblem).getPositiveExamples(),((PosNegLP)learningProblem).getNegativeExamples()); + } + } + + @Override + public Description getCurrentlyBestDescription() { + EvaluatedDescription ed = getCurrentlyBestEvaluatedDescription(); + return ed == null ? null : ed.getDescription(); + } + + @Override + public List<Description> getCurrentlyBestDescriptions() { + return bestEvaluatedDescriptions.toDescriptionList(); + } + + @Override + public EvaluatedDescription getCurrentlyBestEvaluatedDescription() { + return bestEvaluatedDescriptions.getBest(); + } + + @Override + public TreeSet<? extends EvaluatedDescription> getCurrentlyBestEvaluatedDescriptions() { + return bestEvaluatedDescriptions.getSet(); + } + + @Override + public void start() { +// System.out.println(configurator.getMaxExecutionTimeInSeconds()); + + stop = false; + isRunning = true; + reset(); + nanoStartTime = System.nanoTime(); + + // highest accuracy so far + double highestAccuracy = 0.0; + OENode nextNode; + + addNode(startClass, null); + + int loop = 0; + while (!terminationCriteriaSatisfied()) { + + if(!singleSuggestionMode && bestEvaluatedDescriptions.getBestAccuracy() > highestAccuracy) { + highestAccuracy = bestEvaluatedDescriptions.getBestAccuracy(); + logger.info("more accurate (" + dfPercent.format(highestAccuracy) + ") class expression found: " + descriptionToString(bestEvaluatedDescriptions.getBest().getDescription())); + } + + // chose best node according to heuristics + nextNode = getNextNodeToExpand(); + int horizExp = nextNode.getHorizontalExpansion(); + + // apply operator + Monitor mon = MonitorFactory.start("refineNode"); + TreeSet<Description> refinements = refineNode(nextNode); + mon.stop(); + +// System.out.println("next node: " + nextNode); +// for(Description refinement : refinements) { +// System.out.println("refinement: " + refinement); +// } + + while(refinements.size() != 0) { + // pick element from set + Description refinement = refinements.pollFirst(); + int length = refinement.getLength(); + + // we ignore all refinements with lower length and too high depth + // (this also avoids duplicate node children) + if(length > horizExp && refinement.getDepth() <= maxDepth) { + +// System.out.println("potentially adding " + refinement + " to search tree as child of " + nextNode + " " + new Date()); + Monitor mon2 = MonitorFactory.start("addNode"); + addNode(refinement, nextNode); + mon2.stop(); + // adding nodes is potentially computationally expensive, so we have + // to check whether max time is exceeded + if(terminationCriteriaSatisfied()) { + break; + } +// System.out.println("addNode finished" + " " + new Date()); + } + +// System.out.println(" refinement queue length: " + refinements.size()); + } + + updateMinMaxHorizExp(nextNode); + +// System.out.println(loop); + loop++; + } + + if (stop) { + logger.info("Algorithm stopped ("+expressionTests+" descriptions tested). " + nodes.size() + " nodes in the search tree.\n"); + } else { + logger.info("Algorithm terminated successfully ("+expressionTests+" descriptions tested). " + nodes.size() + " nodes in the search tree.\n"); + } + + if(singleSuggestionMode) { + bestEvaluatedDescriptions.add(bestDescription, bestAccuracy, learningProblem); + } + + // print solution(s) + logger.info("solutions:\n" + getSolutionString()); + +// System.out.println(startNode.toTreeString(baseURI)); + + isRunning = false; +// System.out.println("isRunning: " + isRunning); + } + + private OENode getNextNodeToExpand() { + // we expand the best node of those, which have not achieved 100% accuracy + // already and have a horizontal expansion equal to their length + // (rationale: further extension is likely to add irrelevant syntactical constructs) + Iterator<OENode> it = nodes.descendingIterator(); + while(it.hasNext()) { + OENode node = it.next(); + if(node.getAccuracy() < 1.0 || node.getHorizontalExpansion() < node.getDescription().getLength()) { + return node; + } + } + + // this should practically never be called, since for any reasonable learning + // task, we will always have at least one node with less than 100% accuracy + return nodes.last(); + } + + // expand node horizontically + private TreeSet<Description> refineNode(OENode node) { + // we have to remove and add the node since its heuristic evaluation changes through the expansion + // (you *must not* include any criteria in the heuristic which are modified outside of this method, + // otherwise you may see rarely occurring but critical false ordering in the nodes set) + nodes.remove(node); +// System.out.println("refining: " + node); + int horizExp = node.getHorizontalExpansion(); + TreeSet<Description> refinements = (TreeSet<Description>) operator.refine(node.getDescription(), horizExp+1); + node.incHorizontalExpansion(); + node.setRefinementCount(refinements.size()); + nodes.add(node); + return refinements; + } + + // add node to search tree if it is not too weak + // returns true if node was added and false otherwise + private boolean addNode(Description description, OENode parentNode) { + +// System.out.println(description); + + // redundancy check (return if redundant) + boolean nonRedundant = descriptions.add(description); + if(!nonRedundant) { + return false; + } + + // check whether the description is allowed + if(!isDescriptionAllowed(description, parentNode)) { + return false; + } + +// System.out.println("Test " + new Date()); + // quality of description (return if too weak) + double accuracy = learningProblem.getAccuracyOrTooWeak(description, noise); + // issue a warning if accuracy is not between 0 and 1 or -1 (too weak) + if(accuracy > 1.0 || (accuracy < 0.0 && accuracy != -1)) { + logger.warn("Invalid accuracy value " + accuracy + " for description " + description + ". This could be caused by a bug in the heuristic measure and should be reported to the DL-Learner bug tracker."); + System.exit(0); + } + +// System.out.println("Test2 " + new Date()); + expressionTests++; +// System.out.println("acc: " + accuracy); +// System.out.println(description + " " + accuracy); + if(accuracy == -1) { + return false; + } + + OENode node = new OENode(parentNode, description, accuracy); + + // link to parent (unless start node) + if(parentNode == null) { + startNode = node; + } else { + parentNode.addChild(node); + } + + nodes.add(node); +// System.out.println("Test3 " + new Date()); + + // in some cases (e.g. mutation) fully evaluating even a single description is too expensive + // due to the high number of examples -- so we just stick to the approximate accuracy + if(singleSuggestionMode) { + if(accuracy > bestAccuracy) { + bestAccuracy = accuracy; + bestDescription = description; + logger.info("more accurate (" + dfPercent.format(bestAccuracy) + ") class expression found: " + descriptionToString(bestDescription)); // + getTemporaryString(bestDescription)); + } + return true; + } + + // maybe add to best descriptions (method keeps set size fixed); + // we need to make sure that this does not get called more often than + // necessary since rewriting is expensive + boolean isCandidate = !bestEvaluatedDescriptions.isFull(); + if(!isCandidate) { + EvaluatedDescription worst = bestEvaluatedDescriptions.getWorst(); + double accThreshold = worst.getAccuracy(); + isCandidate = + (accuracy > accThreshold || + (accuracy >= accThreshold && description.getLength() < worst.getDescriptionLength())); + } + +// System.out.println("Test4 " + new Date()); + if(isCandidate) { + Description niceDescription = rewriteNode(node); + ConceptTransformation.transformToOrderedForm(niceDescription, descriptionComparator); +// Description niceDescription = node.getDescription(); + + // another test: none of the other suggested descriptions should be + // a subdescription of this one unless accuracy is different + boolean shorterDescriptionExists = false; + for(EvaluatedDescription ed : bestEvaluatedDescriptions.getSet()) { + if(Math.abs(ed.getAccuracy()-accuracy) <= 0.00001 && ConceptTransformation.isSubdescription(niceDescription, ed.getDescription())) { + shorterDescriptionExists = true; + break; + } + } + + if(!shorterDescriptionExists) { + if(!filterFollowsFromKB || !((ClassLearningProblem)learningProblem).followsFromKB(niceDescription)) { + bestEvaluatedDescriptions.add(niceDescription, accuracy, learningProblem); +// System.out.println("acc: " + accuracy); +// System.out.println(bestEvaluatedDescriptions); + } + } + + } + +// System.out.println("Test5 " + new Date()); +// System.out.println("best evaluated descriptions size: " + bestEvaluatedDescriptions.size() + " worst: " + bestEvaluatedDescriptions.getWorst()); + return true; + } + + // checks whether the description is allowed + private boolean isDescriptionAllowed(Description description, OENode parentNode) { + if(isClassLearningProblem) { + if(isEquivalenceProblem) { + // the class to learn must not appear on the outermost property level + if(occursOnFirstLevel(description, classToDescribe)) { + return false; + } + } else { + // none of the superclasses of the class to learn must appear on the + // outermost property level + TreeSet<Description> toTest = new TreeSet<Description>(descriptionComparator); + toTest.add(classToDescribe); + while(!toTest.isEmpty()) { + Description d = toTest.pollFirst(); + if(occursOnFirstLevel(description, d)) { + return false; + } + toTest.addAll(reasoner.getClassHierarchy().getSuperClasses(d)); + } + } + } + + // perform forall sanity tests + if(parentNode != null && ConceptTransformation.getForallOccurences(description) > ConceptTransformation.getForallOccurences(parentNode.getDescription())) { + // we have an additional \forall construct, so we now fetch the contexts + // in which it occurs + SortedSet<PropertyContext> contexts = ConceptTransformation.getForallContexts(description); + SortedSet<PropertyContext> parentContexts = ConceptTransformation.getForallContexts(parentNode.getDescription()); + contexts.removeAll(parentContexts); +// System.out.println("parent description: " + parentNode.getDescription()); +// System.out.println("description: " + description); +// System.out.println("contexts: " + contexts); + // we now have to perform sanity checks: if \forall is used, then there + // should be at least on class instance which has a filler at the given context + for(PropertyContext context : contexts) { + // transform [r,s] to \exists r.\exists s.\top + Description existentialContext = context.toExistentialContext(); + boolean fillerFound = false; + for(Individual instance : examples) { + if(reasoner.hasType(existentialContext, instance)) { +// System.out.println(instance + " " + existentialContext); + fillerFound = true; + break; + } + } + // if we do not find a filler, this means that putting \forall at + // that position is not meaningful + if(!fillerFound) { + return false; + } + } + } + + // we do not want to have negations of sibling classes on the outermost level + // (they are expressed more naturally by saying that the siblings are disjoint, + // so it is reasonable not to include them in solutions) +// Set<Description> siblingClasses = reasoner.getClassHierarchy().getSiblingClasses(classToDescribe); +// for now, we just disable negation + + return true; + } + + // determine whether a named class occurs on the outermost level, i.e. property depth 0 + // (it can still be at higher depth, e.g. if intersections are nested in unions) + private boolean occursOnFirstLevel(Description description, Description clazz) { + if(description instanceof NamedClass) { + if(description.equals(clazz)) { + return true; + } + } + + if(description instanceof Restriction) { + return false; + } + + for(Description child : description.getChildren()) { + if(occursOnFirstLevel(child, clazz)) { + return true; + } + } + + return false; + } + + // check whether the node is a potential solution candidate + private Description rewriteNode(OENode node) { + Description description = node.getDescription(); + // minimize description (expensive!) - also performes some human friendly rewrites + Description niceDescription = minimizer.minimizeClone(description); + // replace \exists r.\top with \exists r.range(r) which is easier to read for humans + ConceptTransformation.replaceRange(niceDescription, reasoner); + return niceDescription; + } + + private boolean terminationCriteriaSatisfied() { + return stop || ((System.nanoTime() - nanoStartTime) >= (configurator.getMaxExecutionTimeInSeconds()*1000000000l)); + } + + private void reset() { + // set all values back to their default values (used for running + // the algorithm more than once) + nodes = new TreeSet<OENode>(heuristic); + descriptions = new TreeSet<Description>(new ConceptComparator()); + bestEvaluatedDescriptions.getSet().clear(); + expressionTests = 0; + } + + @Override + public boolean isRunning() { + return isRunning; + } + + @Override + public void stop() { + stop = true; + } + + public OENode getSearchTreeRoot() { + return startNode; + } + + // central function for printing description + private String descriptionToString(Description description) { + return description.toManchesterSyntaxString(baseURI, prefixes); + } + + @SuppressWarnings("unused") + private String bestDescriptionToString() { + EvaluatedDescription best = bestEvaluatedDescriptions.getBest(); + return best.getDescription().toManchesterSyntaxString(baseURI, prefixes) + " (accuracy: " + dfPercent.format(best.getAccuracy()) + ")"; + } + + private String getSolutionString() { + int current = 1; + String str = ""; + for(EvaluatedDescription ed : bestEvaluatedDescriptions.getSet().descendingSet()) { + // temporary code + if(learningProblem instanceof PosNegLPStandard) { + str += current + ": " + descriptionToString(ed.getDescription()) + " (pred. acc.: " + dfPercent.format(((PosNegLPStandard)learningProblem).getPredAccuracyOrTooWeakExact(ed.getDescription(),1)) + ", F-measure: "+ dfPercent.format(((PosNegLPStandard)learningProblem).getFMeasureOrTooWeakExact(ed.getDescription(),1)) + ")\n"; + } else { + str += current + ": " + descriptionToString(ed.getDescription()) + " " + dfPercent.format(ed.getAccuracy()) + "\n"; +// System.out.println(ed); + } + current++; + } + return str; + } + +// private String getTemporaryString(Description description) { +// return descriptionToString(description) + " (pred. acc.: " + dfPercent.format(((PosNegLPStandard)learningProblem).getPredAccuracyOrTooWeakExact(description,1)) + ", F-measure: "+ dfPercent.format(((PosNegLPStandard)learningProblem).getFMeasureOrTooWeakExact(description,1)) + ")"; +// } + + private void updateMinMaxHorizExp(OENode node) { + int newHorizExp = node.getHorizontalExpansion(); + + // update maximum value + maxHorizExp = Math.max(maxHorizExp, newHorizExp); + + // we just expanded a node with minimum horizontal expansion; + // we need to check whether it was the last one + if(minHorizExp == newHorizExp - 1) { + + // the best accuracy that a node can achieve + double scoreThreshold = heuristic.getNodeScore(node) + 1 - node.getAccuracy(); + + for(OENode n : nodes.descendingSet()) { + if(n != node) { + if(n.getHorizontalExpansion() == minHorizExp) { + // we can stop instantly when another node with min. + return; + } + if(heuristic.getNodeScore(n) < scoreThreshold) { + // we can stop traversing nodes when their score is too low + break; + } + } + } + + // inc. minimum since we found no other node which also has min. horiz. exp. + minHorizExp++; + +// System.out.println("minimum horizontal expansion is now " + minHorizExp); + } + } + + public int getMaximumHorizontalExpansion() { + return maxHorizExp; + } + + public int getMinimumHorizontalExpansion() { + return minHorizExp; + } + + /** + * @return the expressionTests + */ + public int getClassExpressionTests() { + return expressionTests; + } + +} Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneDocument.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneDocument.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneDocument.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,24 @@ + +package org.dllearner.algorithms.isle; + +import java.io.File; +import java.io.FileReader; + +import org.apache.lucene.document.DateTools; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; + + +public class LuceneDocument { + + public static Document Document( File f ) throws java.io.FileNotFoundException { + Document doc = new Document(); + doc.add( new Field( "path", f.getPath(), Field.Store.YES, Field.Index.NOT_ANALYZED ) ); + doc.add( new Field( "modified", + DateTools.timeToString(f.lastModified(), DateTools.Resolution.MINUTE), + Field.Store.YES, Field.Index.NOT_ANALYZED)); + doc.add( new Field( "contents", new FileReader(f) ) ); + return doc; + } +} + Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneIndexer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneIndexer.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneIndexer.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,77 @@ + +package org.dllearner.algorithms.isle; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Date; + +import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.Version; + + +public class LuceneIndexer { + + static final File INDEX = new File( "index" ); + + public static void main( String[] args ) { + if( INDEX.exists() ) + { + System.out.println("<delete index!>"); + System.exit(1); + } + final File docDir = new File( args[0] ); + LuceneIndexer indexer = new LuceneIndexer( docDir ); + } + + public LuceneIndexer( File docDir ){ + System.out.println( "LuceneIndex: "+ docDir ); + Date start = new Date(); + try { + IndexWriter writer = new IndexWriter( FSDirectory.open( INDEX ), + new StandardAnalyzer( Version.LUCENE_CURRENT ), true, IndexWriter.MaxFieldLength.LIMITED ); + System.out.println( "Creating index ..." ); + index( writer, docDir ); + System.out.println( "Optimizing index ..." ); + writer.optimize(); + writer.close(); + Date end = new Date(); + System.out.println( end.getTime() - start.getTime() + " total milliseconds" ); + } + catch (IOException e) { + e.printStackTrace(); + } + } + + private void index( IndexWriter writer, File file ) throws IOException { + // System.out.println( "LuceneIndexer.index: "+ file ); + if( file.canRead() ) + { + if( file.isDirectory() ) + { + String[] files = file.list(); + if( files != null ) + { + for( int i = 0; i < files.length; i++ ) { + index( writer, new File( file, files[i] ) ); + } + } + } + else { + // System.out.println( "Indexer.index: adding " + file ); + try { + writer.addDocument( LuceneDocument.Document( file ) ); + } + catch (FileNotFoundException fnfe) { + fnfe.printStackTrace(); + } + } + } + else { + System.out.println( "<cannot read file!>" ); + } + } + +} Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneSearcher.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneSearcher.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/LuceneSearcher.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,126 @@ + +package org.dllearner.algorithms.isle; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.queryParser.QueryParser; +import org.apache.lucene.search.Collector; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.Scorer; +import org.apache.lucene.search.Searcher; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.Version; + +public class LuceneSearcher { + + private String INDEX = "index"; + private String FIELD = "contents"; + + private IndexReader m_reader = null; + private Searcher m_searcher = null; + private Analyzer m_analyzer = null; + private QueryParser m_parser = null; + + private Map<Document,Float> m_results = null; + + + public static void main( String[] args ) throws Exception { + String sQuery = args[0]; + LuceneSearcher searcher = new LuceneSearcher(); + List<Document> docs = searcher.search( sQuery ); + System.out.println( "\nquery='"+ sQuery +"' all="+ searcher.indexSize() +" hits="+ docs.size() ); + for( Document doc : docs ) + { + String sDoc = doc.toString(); + float score = searcher.getScore( doc ); + System.out.println( "score="+ score +" doc="+ doc ); + } + } + + public LuceneSearcher() throws Exception { + m_reader = IndexReader.open( FSDirectory.open( new File( INDEX ) ), true ); + m_searcher = new IndexSearcher( m_reader ); + m_analyzer = new StandardAnalyzer( Version.LUCENE_CURRENT ); + m_parser = new QueryParser( Version.LUCENE_CURRENT, FIELD, m_analyzer ); + } + + public void close() throws Exception { + m_reader.close(); + } + + public int indexSize(){ + return m_reader.numDocs(); + } + + public List<Document> search( String sQuery ) throws Exception { + m_results = new HashMap<Document,Float>(); + Query query = m_parser.parse( sQuery ); + search( query ); + // m_reader.close(); + return getDocuments(); + } + + public int count( String sQuery ) throws Exception { + return search( sQuery ).size(); + } + + public List<Document> getDocuments(){ + List<Document> docs = new ArrayList<Document>(); + for( Document doc: m_results.keySet() ){ + docs.add( doc ); + } + Collections.sort( docs, new Comparator<Document>(){ + public int compare( Document d1, Document d2 ){ + float s1 = getScore( d1 ); + float s2 = getScore( d2 ); + if( s1 > s2 ) return -1; + else if( s1 < s2 ) return 1; + return 0; + } + public boolean equals( Object obj ){ + return false; + } + } ); + return docs; + } + + public float getScore( Document doc ){ + return m_results.get( doc ); + } + + private void search( Query query ) throws IOException { + Collector collector = new Collector() + { + private Scorer scorer; + private int docBase; + private Map<Document,Float> results = new HashMap<Document,Float>(); + + public void collect(int doc) throws IOException { + // System.out.println("doc=" + doc + docBase + " score=" + scorer.score()); + m_results.put( m_searcher.doc( doc ), scorer.score() ); + } + public boolean acceptsDocsOutOfOrder() { + return true; + } + public void setNextReader( IndexReader reader, int docBase ) throws IOException { + this.docBase = docBase; + } + public void setScorer(Scorer scorer) throws IOException { + this.scorer = scorer; + } + }; + m_searcher.search( query, collector ); + } +} Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/NLPHeuristic.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/NLPHeuristic.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/NLPHeuristic.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,82 @@ +/** + * Copyright (C) 2007-2010, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.algorithms.isle; + +import java.util.Comparator; + +import org.dllearner.algorithms.celoe.OENode; +import org.dllearner.utilities.owl.ConceptComparator; + +/** + * + * TODO: NLP-Heuristiken in Statistik integrieren + * + * @author Jens Lehmann + * + */ +public class NLPHeuristic implements Comparator<OENode> { + // strong penalty for long descriptions + private double expansionPenaltyFactor = 0.1; + // bonus for being better than parent node + private double gainBonusFactor = 0.3; + // penalty if a node description has very many refinements since exploring + // such a node is computationally very expensive + private double nodeRefinementPenalty = 0.0001; + // syntactic comparison as final comparison criterion + private ConceptComparator conceptComparator = new ConceptComparator(); + + @Override + public int compare(OENode node1, OENode node2) { +// System.out.println("node1 " + node1); +// System.out.println("score: " + getNodeScore(node1)); +// System.out.println("node2 " + node2); +// System.out.println("score: " + getNodeScore(node2)); + + double diff = getNodeScore(node1) - getNodeScore(node2); + + if(diff>0) { + return 1; + } else if(diff<0) { + return -1; + } else { + return conceptComparator.compare(node1.getDescription(), node2.getDescription()); + } + } + + public double getNodeScore(OENode node) { + // accuracy as baseline + double score = node.getAccuracy(); + // being better than the parent gives a bonus; + if(!node.isRoot()) { + double parentAccuracy = node.getParent().getAccuracy(); + score += (parentAccuracy - score) * gainBonusFactor; + } + // penalty for horizontal expansion + score -= node.getHorizontalExpansion() * expansionPenaltyFactor; + // penalty for having many child nodes (stuck prevention) + score -= node.getRefinementCount() * nodeRefinementPenalty; + return score; + } + + public double getExpansionPenaltyFactor() { + return expansionPenaltyFactor; + } + +} Added: trunk/src/dl-learner/org/dllearner/algorithms/isle/Relevances.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/isle/Relevances.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/isle/Relevances.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,146 @@ + +package org.dllearner.algorithms.isle; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLEntity; +import org.semanticweb.owlapi.model.OWLNamedObject; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyManager; + + +public class Relevances { + + private LuceneSearcher m_searcher = null; + + private OWLOntologyManager m_manager; + private OWLOntology m_ontology; + + private Set<OWLEntity> m_entities; + private Set<OWLClass> m_classes; + + + public static void main( String args[] ) throws Exception { + Relevances relevances = new Relevances( args[0] ); + relevances.printScores(); + } + + public void printScores() throws Exception { + for( OWLClass c: m_classes ) + { + Map<OWLEntity,Double> hmEntity2Score = getEntityRelevance(c); + // normalization per class? + hmEntity2Score = normalize( hmEntity2Score ); + for( OWLEntity e : hmEntity2Score.keySet() ) + { + double dScore = hmEntity2Score.get(e); + System.out.println( "P( "+ getLabel(c) +", "+ getLabel(e) +" ) = "+ dScore ); + } + } + m_searcher.close(); + } + + public Relevances( String sOntologyURI ) throws Exception { + m_searcher = new LuceneSearcher(); + loadOntology( sOntologyURI ); + } + + public Map<OWLEntity,Double> normalize( Map<OWLEntity,Double> hmEntity2Score ){ + Map<OWLEntity,Double> hmEntity2Norm = new HashMap<OWLEntity,Double>(); + double dMin = Double.MAX_VALUE; + Double dMax = Double.MIN_VALUE; + for( OWLEntity e : hmEntity2Score.keySet() ) + { + double dValue = hmEntity2Score.get(e); + if( dValue < dMin ){ + dMin = dValue; + } + else if( dValue > dMax ){ + dMax = dValue; + } + } + // System.out.println( "min="+ dMin +" max="+ dMax ); + for( OWLEntity e : hmEntity2Score.keySet() ) + { + double dValue = hmEntity2Score.get(e); + double dNorm = 0; + if( dMin == dMax ){ + dNorm = dValue; + } + else { + dNorm = ( dValue - dMin ) / ( dMax - dMin ); + } + hmEntity2Norm.put( e, dNorm ); + } + return hmEntity2Norm; + } + + public Map<OWLEntity,Double> getEntityRelevance( OWLClass c ) throws Exception { + // computes relevance of entity for this class + // conditional probability: P(C,E)=f(C,E)/f(E) + // PMI(C,E)=log( P(C,E) / P(C) ) + Map<OWLEntity,Double> hmEntity2Score = new HashMap<OWLEntity,Double>(); + String sClass = getLabel(c); + int iClass = m_searcher.count( sClass ); + int iAll = m_searcher.indexSize(); + double dPClass = (double) iClass / (double) iAll; + for( OWLEntity e: m_entities ) + { + String sEntity = getLabel(e); + int iEntity = m_searcher.count( sEntity ); + int iEntityClass = m_searcher.count( sClass +" AND "+ sEntity ); + double dPEntity = (double)iEntity / (double)iAll; + double dPClassEntity = (double) iEntityClass / (double)iEntity; + double dPMI = Math.log( dPClassEntity / dPClass ); + if( !Double.isNaN( dPMI ) && !Double.isInfinite( dPMI ) ){ + hmEntity2Score.put( e, dPMI ); + } + } + return hmEntity2Score; + } + + /* private String getLabel( OWLEntity e ){ + System.out.println( "getLabel: "+ e ); + OWLDataFactory factory = m_manager.getOWLDataFactory(); + OWLAnnotationProperty label = factory.getOWLAnnotationProperty( OWLRDFVocabulary.RDFS_LABEL.getIRI() ); + Set<OWLAnnotation> anns = e.getAnnotations( m_ontology, label ); + for( OWLAnnotation annotation: anns ) + { + System.out.println( "annotation="+ annotation ); + if( annotation.getValue() instanceof OWLLiteral ) + { + OWLLiteral val = (OWLLiteral) annotation.getValue(); + if( !val.isOWLTypedLiteral() ){ + if (val.asOWLStringLiteral().getLang().equals("en")) { + return val.getLiteral(); + } + } + return val.getLiteral(); + } + } + return null; + } */ + + private String getLabel( OWLEntity e ){ + if( e instanceof OWLNamedObject ){ + String sIRI = ((OWLNamedObject)e).getIRI().toString(); + return sIRI.substring( sIRI.indexOf( "#" )+1 ); + } + return null; + } + + private void loadOntology( String sOntologyURI ) throws Exception { + m_manager = OWLManager.createOWLOntologyManager(); + IRI ontologyIRI = IRI.create( sOntologyURI ); + m_ontology = m_manager.loadOntology( ontologyIRI ); + m_classes = m_ontology.getClassesInSignature(); + m_entities = m_ontology.getSignature(); + System.out.println( "classes="+ m_classes.size() +" entities="+ m_entities.size() ); + // m_manager.removeOntology( ontology ); + } +} \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/components.ini =================================================================== --- trunk/src/dl-learner/org/dllearner/components.ini 2010-03-30 21:45:14 UTC (rev 2141) +++ trunk/src/dl-learner/org/dllearner/components.ini 2010-04-08 16:33:52 UTC (rev 2142) @@ -25,3 +25,4 @@ org.dllearner.algorithms.el.ELLearningAlgorithm org.dllearner.algorithms.el.ELLearningAlgorithmDisjunctive org.dllearner.algorithms.celoe.CELOE +org.dllearner.algorithms.isle.ISLE Modified: trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java 2010-03-30 21:45:14 UTC (rev 2141) +++ trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -28,6 +28,7 @@ import org.dllearner.algorithms.el.ELLearningAlgorithm; import org.dllearner.algorithms.el.ELLearningAlgorithmDisjunctive; import org.dllearner.algorithms.gp.GP; +import org.dllearner.algorithms.isle.ISLE; import org.dllearner.algorithms.refinement.ROLearner; import org.dllearner.algorithms.refinement2.ROLComponent2; import org.dllearner.core.KnowledgeSource; @@ -229,6 +230,16 @@ * @param learningProblem see LearningProblem * @param reasoningService see ReasoningService * @throws LearningProblemUnsupportedException see +* @return a component ready for initialization ISLE +**/ +public static ISLE getISLE(LearningProblem learningProblem, ReasonerComponent reasoningService) throws LearningProblemUnsupportedException { +return ISLEConfigurator.getISLE(learningProblem, reasoningService); +} + +/** +* @param learningProblem see LearningProblem +* @param reasoningService see ReasoningService +* @throws LearningProblemUnsupportedException see * @return a component ready for initialization ROLearner **/ public static ROLearner getROLearner(LearningProblem learningProblem, ReasonerComponent reasoningService) throws LearningProblemUnsupportedException { Added: trunk/src/dl-learner/org/dllearner/core/configurators/ISLEConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/ISLEConfigurator.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/core/configurators/ISLEConfigurator.java 2010-04-08 16:33:52 UTC (rev 2142) @@ -0,0 +1,395 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package org.dllearner.core.configurators; + +import org.dllearner.algorithms.isle.ISLE; +import org.dllearner.core.ComponentManager; +import org.dllearner.core.LearningProblem; +import org.dllearner.core.LearningProblemUnsupportedException; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.configurators.RefinementOperatorConfigurator; + +/** +* automatically generated, do not edit manually. +* run org.dllearner.scripts.ConfigJavaGenerator to update +**/ +@SuppressWarnings("all") +public class ISLEConfigurator extends RefinementOperatorConfigurator implements Configurator { + +private boolean reinitNecessary = false; +@SuppressWarnings("unused") + +private ISLE iSLE; + +/** +* @param iSLE see ISLE +**/ +public ISLEConfigurator(ISLE iSLE){ +this.iSLE = iSLE; +} + +/** +* @param reasoningService see reasoningService +* @param learningProblem see learningProblem +* @throws LearningProblemUnsupportedException see +* @return ISLE +**/ +public static ISLE getISLE(LearningProblem learningProblem, ReasonerComponent reasoningService) throws LearningProblemUnsupportedException{ +ISLE component = ComponentManager.getInstance().learningAlgorithm(ISLE.class, learningProblem, reasoningService); +return component; +} + +/** +* useAllConstructor specifies whether the universal concept constructor is used in the learning algorithm. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getUseAllConstructor() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useAllConstructor") ; +} +/** +* useExistsConstructor specifies whether the existential concept constructor is used in the learning algorithm. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getUseExistsConstructor() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useExistsConstructor") ; +} +/** +* useHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getUseHasValueConstructor() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useHasValueConstructor") ; +} +/** +* useDataHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getUseDataHasValueConstructor() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useDataHasValueConstructor") ; +} +/** +* valueFrequencyThreshold specifies how often an object must occur as value in order to be considered for hasValue restrictions. +* mandatory: false| reinit necessary: true +* default value: 3 +* @return int +**/ +public int getValueFrequencyThreshold() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(iSLE, "valueFrequencyThreshold") ; +} +/** +* useCardinalityRestrictions specifies whether CardinalityRestrictions is used in the learning algorithm. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getUseCardinalityRestrictions() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useCardinalityRestrictions") ; +} +/** +* cardinalityLimit Gives the maximum number used in cardinality restrictions.. +* mandatory: false| reinit necessary: true +* default value: 5 +* @return int +**/ +public int getCardinalityLimit() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(iSLE, "cardinalityLimit") ; +} +/** +* useNegation specifies whether negation is used in the learning algorothm. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getUseNegation() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useNegation") ; +} +/** +* useBooleanDatatypes specifies whether boolean datatypes are used in the learning algorothm. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getUseBooleanDatatypes() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useBooleanDatatypes") ; +} +/** +* useDoubleDatatypes specifies whether boolean datatypes are used in the learning algorothm. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getUseDoubleDatatypes() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "useDoubleDatatypes") ; +} +/** +* maxExecutionTimeInSeconds algorithm will stop after specified seconds. +* mandatory: false| reinit necessary: true +* default value: 10 +* @return int +**/ +public int getMaxExecutionTimeInSeconds() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(iSLE, "maxExecutionTimeInSeconds") ; +} +/** +* noisePercentage the (approximated) percentage of noise within the examples. +* mandatory: false| reinit necessary: true +* default value: 0.0 +* @return double +**/ +public double getNoisePercentage() { +return (Double) ComponentManager.getInstance().getConfigOptionValue(iSLE, "noisePercentage") ; +} +/** +* maxDepth maximum depth of description. +* mandatory: false| reinit necessary: true +* default value: 7 +* @return int +**/ +public int getMaxDepth() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(iSLE, "maxDepth") ; +} +/** +* maxNrOfResults Sets the maximum number of results one is interested in. (Setting this to a lower value may increase performance as the learning algorithm has to store/evaluate/beautify less descriptions).. +* mandatory: false| reinit necessary: true +* default value: 10 +* @return int +**/ +public int getMaxNrOfResults() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(iSLE, "maxNrOfResults") ; +} +/** +* singleSuggestionMode Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getSingleSuggestionMode() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "singleSuggestionMode") ; +} +/** +* instanceBasedDisjoints Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator.. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getInstanceBasedDisjoints() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "instanceBasedDisjoints") ; +} +/** +* filterDescriptionsFollowingFromKB If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions.. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getFilterDescriptionsFollowingFromKB() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "filterDescriptionsFollowingFromKB") ; +} +/** +* reuseExistingDescription If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base.. +* mandatory: false| reinit necessary: true +* default value: false +* @return boolean +**/ +public boolean getReuseExistingDescription() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(iSLE, "reuseExistingDescription") ; +} + +/** +* @param useAllConstructor specifies whether the universal concept constructor is used in the learning algorithm. +* mandatory: false| reinit necessary: true +* default value: true +**/ +public void setUseAllConstructor(boolean useAllConstructor) { +ComponentManager.getInstance().applyConfigEntry(iSLE, "useAllConstructor", useAllConstructor); +reinitNecessary = true; +} +/** +* @param useExistsConstructor specifies whether the existenti... [truncated message content] |
From: <lor...@us...> - 2010-05-04 20:36:58
|
Revision: 2144 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2144&view=rev Author: lorenz_b Date: 2010-05-04 20:36:49 +0000 (Tue, 04 May 2010) Log Message: ----------- Refactoring to OWLAPI V3 almost finished. Modified Paths: -------------- trunk/lib/owlapi/owlapi-bin.jar trunk/lib/pellet/pellet-core.jar trunk/lib/pellet/pellet-datatypes.jar trunk/lib/pellet/pellet-el.jar trunk/lib/pellet/pellet-explanation.jar trunk/lib/pellet/pellet-modularity.jar trunk/lib/pellet/pellet-rules.jar trunk/lib/protege/org.protege.editor.core.application.jar trunk/lib/protege/org.protege.editor.owl.jar trunk/src/dl-learner/org/dllearner/Info.java trunk/src/dl-learner/org/dllearner/algorithms/gp/ADC.java trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java trunk/src/dl-learner/org/dllearner/core/owl/KB.java trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java trunk/src/dl-learner/org/dllearner/examples/Corpus.java trunk/src/dl-learner/org/dllearner/examples/KRK.java trunk/src/dl-learner/org/dllearner/examples/KRKModular.java trunk/src/dl-learner/org/dllearner/examples/MonogenicDiseases.java trunk/src/dl-learner/org/dllearner/examples/corpus/Sentence.java trunk/src/dl-learner/org/dllearner/kb/OWLAPIOntology.java trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java trunk/src/dl-learner/org/dllearner/kb/extraction/OWLAPIOntologyCollector.java trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionClass.java trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosNeg.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIDIGConverter.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java trunk/src/dl-learner/org/dllearner/scripts/NT2RDF.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationGUI.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java trunk/src/dl-learner/org/dllearner/test/FaCTBugDemo.java trunk/src/dl-learner/org/dllearner/test/JenaConstruct.java trunk/src/dl-learner/org/dllearner/test/OWLAPIBugDemo.java trunk/src/dl-learner/org/dllearner/test/OWLAPIConsistency.java trunk/src/dl-learner/org/dllearner/test/PelletBug.java trunk/src/dl-learner/org/dllearner/test/PelletBug2.java trunk/src/dl-learner/org/dllearner/test/PelletPerformanceProblem.java trunk/src/dl-learner/org/dllearner/test/junit/OWLAPITests.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/EvaluationPlugin.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/EvaluationTable.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/EvaluationTableModel.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/GraphicalCoveragePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ConcurrencyBug.java trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionParseTest.java trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationTest.java trunk/src/dl-learner/org/dllearner/tools/ore/ImpactManager.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifier.java trunk/src/dl-learner/org/dllearner/tools/ore/PelletBug.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairManager.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairManagerListener.java trunk/src/dl-learner/org/dllearner/tools/ore/TaskManager.java trunk/src/dl-learner/org/dllearner/tools/ore/cache/DLSyntaxRenderingCache.java trunk/src/dl-learner/org/dllearner/tools/ore/cache/ManchesterSyntaxRenderingCache.java trunk/src/dl-learner/org/dllearner/tools/ore/cache/OWLEntityRenderingCache.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/AxiomSelector.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/AxiomUsageChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/CachedExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/Explanation.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/ExplanationException.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/ExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/HSTExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/LaconicTest.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/LostEntailmentsChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/PelletExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/RemainingAxiomPartsGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/RootFinder.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/BaseDescriptionGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/Beta.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/BottomTester.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/LaconicExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/OPlus.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/Tau.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/TopTester.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/HittingSet.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/RelevanceBasedGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SimpleSelectionFunction.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SyntacticRelevanceBasedExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ChangesTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ChangesTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ClassesTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ClassesTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/DescriptionLabel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/GraphicalCoveragePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ImpactTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ImpactTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/OverrideFileChooser.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsDialog.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairDialog.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ResultTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SimpleExplanationTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SimpleExplanationTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatsTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar2.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/UndoLabel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/UnsatClassesTableCellRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/UnsatisfiableClassesTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/UnsatisfiableClassesTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/AutoCompleterMatcher.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/ExpressionEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/ManchesterOWLSyntaxParser.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OREOWLEntityChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAutoCompleter.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomsEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLEntityFinder.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLExpressionChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLExpressionParserException.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/ParserUtil.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/item/RemoveAllPropertyAssertionsToMenuItem.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/DescriptionComparator.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/KeywordColorMap.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxOWLObjectRendererImpl.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxObjectRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxTableCellRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/MultiLineTableCellRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/OWLEntityRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/TextAreaRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/InconsistencyExplanationPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/KnowledgeSourcePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ManualLearnPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/RepairPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/UnsatisfiableExplanationPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/InconsistencyExplanationPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel2.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerView.java trunk/src/dl-learner/org/dllearner/tools/protege/GraphicalCoveragePanel.java trunk/src/dl-learner/org/dllearner/tools/protege/GraphicalCoveragePanelHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/IndividualPoint.java trunk/src/dl-learner/org/dllearner/tools/protege/ProtegePlugin.java trunk/src/dl-learner/org/dllearner/tools/protege/ReadingOntologyThread.java trunk/src/dl-learner/org/dllearner/tools/protege/StatusBar2.java trunk/src/dl-learner/org/dllearner/tools/protege/SuggestionsTable.java trunk/src/dl-learner/org/dllearner/tools/protege/SuggestionsTableModel.java trunk/src/dl-learner/org/dllearner/utilities/owl/DLLearnerDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/owl/ManchesterOWLSyntaxParser.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIAxiomConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIConverter.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIRenderers.java trunk/src/dl-learner/org/dllearner/utilities/owl/OntologyClassRewriter.java trunk/src/dl-learner/org/dllearner/utilities/owl/OntologyCloser.java trunk/src/dl-learner/org/dllearner/utilities/owl/OntologyCloserOWLAPI.java Added Paths: ----------- trunk/lib/fact/factplusplus-1.3.1.jar trunk/lib/pellet/pellet-owlapiv3.jar trunk/lib/pellet/pellet-query.jar trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/SubsumptionTree.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/AddRoundButton.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/OWLEntityShortFormProvider.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/OWLTableCellRenderer.java Removed Paths: ------------- trunk/lib/fact/FaCTpp-OWLAPI-v1.1.11.jar trunk/lib/owlapi/owlapiV3-bin.jar trunk/lib/pellet/pellet-owlapi.jar trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel2.java Deleted: trunk/lib/fact/FaCTpp-OWLAPI-v1.1.11.jar =================================================================== (Binary files differ) Added: trunk/lib/fact/factplusplus-1.3.1.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/factplusplus-1.3.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/lib/owlapi/owlapi-bin.jar =================================================================== (Binary files differ) Deleted: trunk/lib/owlapi/owlapiV3-bin.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-core.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-datatypes.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-el.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-explanation.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-modularity.jar =================================================================== (Binary files differ) Deleted: trunk/lib/pellet/pellet-owlapi.jar =================================================================== (Binary files differ) Added: trunk/lib/pellet/pellet-owlapiv3.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/pellet-owlapiv3.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/lib/pellet/pellet-query.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/pellet-query.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/lib/pellet/pellet-rules.jar =================================================================== (Binary files differ) Modified: trunk/lib/protege/org.protege.editor.core.application.jar =================================================================== (Binary files differ) Modified: trunk/lib/protege/org.protege.editor.owl.jar =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/Info.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Info.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/Info.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -3,6 +3,6 @@ package org.dllearner; public class Info { - public static final String build = "2010-03-13"; + public static final String build = "2010-03-15"; } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/algorithms/gp/ADC.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/gp/ADC.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/algorithms/gp/ADC.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -5,9 +5,9 @@ import org.dllearner.core.owl.Description; import org.dllearner.core.owl.DescriptionVisitor; import org.dllearner.core.owl.KBElementVisitor; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDescriptionVisitor; -import org.semanticweb.owl.model.OWLObjectVisitor; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpressionVisitor; +import org.semanticweb.owlapi.model.OWLObjectVisitor; /** * ADC stand for "automatically defined concept". It is used for @@ -73,7 +73,7 @@ /* (non-Javadoc) * @see org.semanticweb.owl.model.OWLDescription#accept(org.semanticweb.owl.model.OWLDescriptionVisitor) */ - public void accept(OWLDescriptionVisitor arg0) { + public void accept(OWLClassExpressionVisitor arg0) { // TODO Auto-generated method stub } Modified: trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -28,7 +28,7 @@ import org.dllearner.utilities.owl.OWLAPIRenderers; import org.json.JSONException; import org.json.JSONObject; -import org.semanticweb.owl.model.OWLDescription; +import org.semanticweb.owlapi.model.OWLClassExpression; /** * An evaluated description is a description and its score (with some @@ -123,8 +123,8 @@ JSONObject object = new JSONObject(); try { object.put("descriptionManchesterSyntax", description.toManchesterSyntaxString(null, null)); - OWLDescription d = OWLAPIDescriptionConvertVisitor.getOWLDescription(description); - object.put("descriptionOWLXML", OWLAPIRenderers.toOWLXMLSyntax(d)); + OWLClassExpression c = OWLAPIDescriptionConvertVisitor.getOWLClassExpression(description); + object.put("descriptionOWLXML", OWLAPIRenderers.toOWLXMLSyntax(c)); object.put("descriptionKBSyntax", description.toKBSyntaxString()); object.put("scoreValue", score.getAccuracy()); return object.toString(3); Modified: trunk/src/dl-learner/org/dllearner/core/owl/KB.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/KB.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/core/owl/KB.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -1,7 +1,6 @@ package org.dllearner.core.owl; import java.io.File; -import java.net.URI; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -9,13 +8,14 @@ import java.util.TreeSet; import org.dllearner.utilities.owl.OWLAPIAxiomConvertVisitor; -import org.semanticweb.owl.apibinding.OWLManager; -import org.semanticweb.owl.model.OWLOntology; -import org.semanticweb.owl.model.OWLOntologyCreationException; -import org.semanticweb.owl.model.OWLOntologyManager; -import org.semanticweb.owl.model.OWLOntologyStorageException; -import org.semanticweb.owl.model.UnknownOWLOntologyException; -import org.semanticweb.owl.util.SimpleURIMapper; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.model.OWLOntologyStorageException; +import org.semanticweb.owlapi.model.UnknownOWLOntologyException; +import org.semanticweb.owlapi.util.SimpleIRIMapper; public class KB implements KBElement { @@ -290,13 +290,13 @@ public void export(File file, org.dllearner.core.OntologyFormat format){ OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - URI ontologyURI = URI.create("http://example.com"); - URI physicalURI = file.toURI(); - SimpleURIMapper mapper = new SimpleURIMapper(ontologyURI, physicalURI); - manager.addURIMapper(mapper); + IRI ontologyIRI = IRI.create("http://example.com"); + IRI physicalIRI = IRI.create(file.toURI()); + SimpleIRIMapper mapper = new SimpleIRIMapper(ontologyIRI, physicalIRI); + manager.addIRIMapper(mapper); OWLOntology ontology; try { - ontology = manager.createOntology(ontologyURI); + ontology = manager.createOntology(ontologyIRI); // OWLAPIReasoner.fillOWLAPIOntology(manager,ontology,kb); OWLAPIAxiomConvertVisitor.fillOWLOntology(manager, ontology, this); manager.saveOntology(ontology); Modified: trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/Carcinogenesis.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -22,7 +22,6 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; -import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -33,18 +32,18 @@ import java.util.Set; import java.util.TreeSet; +import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.BooleanDatatypePropertyAssertion; +import org.dllearner.core.owl.ClassAssertionAxiom; +import org.dllearner.core.owl.DatatypeProperty; +import org.dllearner.core.owl.DatatypePropertyAssertion; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.DifferentIndividualsAxiom; import org.dllearner.core.owl.DisjointClassesAxiom; -import org.dllearner.core.owl.NamedClass; -import org.dllearner.core.owl.Axiom; -import org.dllearner.core.owl.ClassAssertionAxiom; -import org.dllearner.core.owl.DatatypeProperty; -import org.dllearner.core.owl.DatatypePropertyAssertion; import org.dllearner.core.owl.DoubleDatatypePropertyAssertion; import org.dllearner.core.owl.Individual; import org.dllearner.core.owl.KB; +import org.dllearner.core.owl.NamedClass; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.ObjectPropertyAssertion; import org.dllearner.core.owl.SubClassAxiom; @@ -57,6 +56,7 @@ import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.utilities.Files; import org.dllearner.utilities.Helper; +import org.semanticweb.owlapi.model.IRI; /** * This class maps the carcinogenesis Prolog files to an OWL file. In a first @@ -79,7 +79,7 @@ */ public class Carcinogenesis { - private static URI ontologyURI = URI.create("http://dl-learner.org/carcinogenesis"); + private static IRI ontologyIRI = IRI.create("http://dl-learner.org/carcinogenesis"); // directory of Prolog files private static final String prologDirectory = "examples/carcinogenesis/prolog/"; @@ -252,7 +252,7 @@ // writing generated knowledge base System.out.print("Writing OWL file ... "); startTime = System.nanoTime(); - OWLAPIReasoner.exportKBToOWL(owlFile, kb, ontologyURI); + OWLAPIReasoner.exportKBToOWL(owlFile, kb, ontologyIRI); duration = System.nanoTime() - startTime; time = Helper.prettyPrintNanoSeconds(duration, false, false); System.out.println("OK (" + time + ")."); @@ -554,23 +554,23 @@ } private static Individual getIndividual(String name) { - return new Individual(ontologyURI + "#" + name); + return new Individual(ontologyIRI + "#" + name); } private static ObjectProperty getRole(String name) { - return new ObjectProperty(ontologyURI + "#" + name); + return new ObjectProperty(ontologyIRI + "#" + name); } private static DatatypeProperty getDatatypeProperty(String name) { - return new DatatypeProperty(ontologyURI + "#" + name); + return new DatatypeProperty(ontologyIRI + "#" + name); } private static NamedClass getAtomicConcept(String name) { - return new NamedClass(ontologyURI + "#" + name); + return new NamedClass(ontologyIRI + "#" + name); } private static String getURI(String name) { - return ontologyURI + "#" + name; + return ontologyIRI + "#" + name; } // returns URI including quotationsmark (need for KBparser) Modified: trunk/src/dl-learner/org/dllearner/examples/Corpus.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/Corpus.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/Corpus.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -4,21 +4,21 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import org.dllearner.examples.corpus.Sentence; -import org.semanticweb.owl.apibinding.OWLManager; -import org.semanticweb.owl.model.AddAxiom; -import org.semanticweb.owl.model.OWLAxiom; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLOntology; -import org.semanticweb.owl.model.OWLOntologyChangeException; -import org.semanticweb.owl.model.OWLOntologyCreationException; -import org.semanticweb.owl.model.OWLOntologyManager; -import org.semanticweb.owl.util.SimpleURIMapper; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.AddAxiom; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyChangeException; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.util.SimpleIRIMapper; public class Corpus { @@ -85,11 +85,11 @@ public static void init(){ try{ br = new BufferedReader(new FileReader(file)); - URI ontologyURI = URI.create(namespace); + IRI ontologyURI = IRI.create(namespace); //URI physicalURI = new File("cache/"+System.currentTimeMillis()+".owl").toURI(); - URI physicalURI = new File("cache/tiger.owl").toURI(); - SimpleURIMapper mapper = new SimpleURIMapper(ontologyURI, physicalURI); - manager.addURIMapper(mapper); + IRI physicalURI = IRI.create(new File("cache/tiger.owl").toURI()); + SimpleIRIMapper mapper = new SimpleIRIMapper(ontologyURI, physicalURI); + manager.addIRIMapper(mapper); try{ currentOntology = manager.createOntology(ontologyURI); }catch(OWLOntologyCreationException e){ @@ -109,7 +109,6 @@ try{ manager.applyChange(addAxiom); }catch (OWLOntologyChangeException e) { - //TODO e.printStackTrace(); } } Modified: trunk/src/dl-learner/org/dllearner/examples/KRK.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/KRK.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/KRK.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -7,7 +7,6 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; -import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -32,6 +31,7 @@ import org.dllearner.core.owl.TransitiveObjectPropertyAxiom; import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.utilities.owl.OntologyCloser; +import org.semanticweb.owlapi.model.IRI; /* * Structure @@ -75,7 +75,7 @@ static String owlfilename = "complete_nodraw.owl"; - static URI ontologyURI = URI.create("http://dl-learner.org/krk"); + static IRI ontologyIRI = IRI.create("http://dl-learner.org/krk"); // static SortedSet<String> fileSet = new TreeSet<String>(); static SortedSet<String> allInstances = new TreeSet<String>(); static SortedSet<String> classSet = new TreeSet<String>(); @@ -682,7 +682,7 @@ File owlfile = new File(workingDir+"/" + filename); // System.out.println(kb.toString("http://www.test.de/test", new // HashMap<String, String>())); - OWLAPIReasoner.exportKBToOWL(owlfile, kb, ontologyURI); + OWLAPIReasoner.exportKBToOWL(owlfile, kb, ontologyIRI); } @@ -691,7 +691,7 @@ System.out.println("Writing kb"); try{ FileWriter fw = new FileWriter(workingDir+"/" + filename,false); - fw.write(kb.toKBSyntaxString(ontologyURI.toString(), null)); + fw.write(kb.toKBSyntaxString(ontologyIRI.toString(), null)); fw.flush(); }catch (Exception e) {e.printStackTrace();} System.out.println("done writing kb"); @@ -700,25 +700,25 @@ } protected static Individual getIndividual(String name) { - return new Individual(ontologyURI + "#" + name); + return new Individual(ontologyIRI + "#" + name); } protected static ObjectProperty getRole(String name) { - return new ObjectProperty(ontologyURI + "#" + name); + return new ObjectProperty(ontologyIRI + "#" + name); } @SuppressWarnings("unused") protected static DatatypeProperty getDatatypeProperty(String name) { - return new DatatypeProperty(ontologyURI + "#" + name); + return new DatatypeProperty(ontologyIRI + "#" + name); } protected static NamedClass getAtomicConcept(String name) { - return new NamedClass(ontologyURI + "#" + name); + return new NamedClass(ontologyIRI + "#" + name); } @SuppressWarnings("unused") protected static String getURI(String name) { - return ontologyURI + "#" + name; + return ontologyIRI + "#" + name; } @SuppressWarnings("unused") Modified: trunk/src/dl-learner/org/dllearner/examples/KRKModular.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/KRKModular.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/KRKModular.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -6,7 +6,6 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; -import java.net.URI; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; @@ -36,6 +35,7 @@ import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.utilities.statistics.SimpleClock; +import org.semanticweb.owlapi.model.IRI; /* * Structure @@ -74,7 +74,7 @@ static String allData = workingDir+"krkopt_no_draw.data"; //static String allData = workingDir+"krkopt_original_dataset.data"; - static URI ontologyURI = KRKOntologyTBox.ontologyURI; + static IRI ontologyURI = IRI.create(KRKOntologyTBox.ontologyURI); // static SortedSet<String> fileSet = new TreeSet<String>(); //static SortedSet<String> allInstances = new TreeSet<String>(); Modified: trunk/src/dl-learner/org/dllearner/examples/MonogenicDiseases.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/MonogenicDiseases.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/MonogenicDiseases.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -20,7 +20,6 @@ package org.dllearner.examples; import java.io.File; -import java.net.URI; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; @@ -45,6 +44,7 @@ import org.dllearner.utilities.Files; import org.dllearner.utilities.Helper; import org.ini4j.IniFile; +import org.semanticweb.owlapi.model.IRI; /** * Converts SM2PH database to an OWL ontology. To run the script, please @@ -55,7 +55,7 @@ */ public class MonogenicDiseases { - private static URI ontologyURI = URI.create("http://dl-learner.org/mutation"); + private static IRI ontologyURI = IRI.create("http://dl-learner.org/mutation"); private static File owlFile = new File("examples/mutation/mutation.owl"); private static File confFile = new File("examples/mutation/mutation.conf"); Modified: trunk/src/dl-learner/org/dllearner/examples/corpus/Sentence.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/corpus/Sentence.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/examples/corpus/Sentence.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -1,16 +1,17 @@ package org.dllearner.examples.corpus; -import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import org.dllearner.examples.Corpus; import org.dllearner.utilities.URLencodeUTF8; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDescription; -import org.semanticweb.owl.model.OWLIndividual; -import org.semanticweb.owl.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLIndividual; +import org.semanticweb.owlapi.model.OWLNamedIndividual; +import org.semanticweb.owlapi.model.OWLObjectProperty; public class Sentence { int id ; @@ -34,22 +35,22 @@ super(); this.id = id; this.sentence = sentence; - this.sentenceURI = Corpus.factory.getOWLIndividual(URI.create(Corpus.namespace+"#"+"satz"+id)); + this.sentenceURI = Corpus.factory.getOWLNamedIndividual(IRI.create(Corpus.namespace+"#"+"satz"+id)); this.urisInOrder = new ArrayList<String>(); this.wordsInOrder = new ArrayList<String>(); - element = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#Element")); - structElement = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#StructureElement")); - wordElement = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#WordElement")); - sentenceClass = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#Sentence")); - tagClass = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#Tag")); - morphClass = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#Morph")); - edgeClass = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#Edge")); + element = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#Element")); + structElement = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#StructureElement")); + wordElement = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#WordElement")); + sentenceClass = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#Sentence")); + tagClass = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#Tag")); + morphClass = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#Morph")); + edgeClass = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#Edge")); - hasElement = Corpus.factory.getOWLObjectProperty(URI.create(Corpus.namespace+"#hasElement")); + hasElement = Corpus.factory.getOWLObjectProperty(IRI.create(Corpus.namespace+"#hasElement")); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(this.sentenceURI,sentenceClass )); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(sentenceClass, this.sentenceURI)); } public void processSentence(){ @@ -65,7 +66,7 @@ public void processLine(String line, int pos){ String elementURL = Corpus.namespace+"#"; - OWLIndividual lineElement; + OWLNamedIndividual lineElement; StringTokenizer st = new StringTokenizer(line); //%String %% word lemma tag morph edge parent secedge comment @@ -78,20 +79,22 @@ //word if(word.startsWith("#")){ elementURL+="s_"+id+"_"+word.substring(1); - lineElement = Corpus.factory.getOWLIndividual(URI.create(elementURL)); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(lineElement, structElement)); + lineElement = Corpus.factory.getOWLNamedIndividual(IRI.create(elementURL)); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(structElement, lineElement)); }else{ elementURL+="s_"+id+"_"+pos+"_"+URLencodeUTF8.encode(word); wordsInOrder.add(word); urisInOrder.add(elementURL); - lineElement = Corpus.factory.getOWLIndividual(URI.create(elementURL)); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(lineElement, wordElement)); - Corpus.addAxiom(Corpus.factory.getOWLEntityAnnotationAxiom(lineElement, Corpus.factory.getCommentAnnotation(line))); - Corpus.addAxiom(Corpus.factory.getOWLEntityAnnotationAxiom(lineElement, Corpus.factory.getOWLLabelAnnotation(word))); + lineElement = Corpus.factory.getOWLNamedIndividual(IRI.create(elementURL)); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(wordElement, lineElement)); + Corpus.addAxiom(Corpus.factory.getOWLAnnotationAssertionAxiom(Corpus.factory.getRDFSComment(), + lineElement.getIRI(), Corpus.factory.getOWLStringLiteral(line))); + Corpus.addAxiom(Corpus.factory.getOWLAnnotationAssertionAxiom(Corpus.factory.getRDFSLabel(), + lineElement.getIRI(), Corpus.factory.getOWLStringLiteral(word))); } - Corpus.addAxiom(Corpus.factory.getOWLObjectPropertyAssertionAxiom(sentenceURI, hasElement, lineElement)); + Corpus.addAxiom(Corpus.factory.getOWLObjectPropertyAssertionAxiom(hasElement, sentenceURI, lineElement)); //tag tag = (tag.equals("$("))?"SentenceBoundary":tag; @@ -103,20 +106,20 @@ void makeClasses(OWLIndividual lineElement, String tag, String morph, String edge){ if(!tag.equals("--")){ - OWLDescription d = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#"+tag)); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(lineElement,d )); - Corpus.addAxiom(Corpus.factory.getOWLSubClassAxiom(d, tagClass)); + OWLClassExpression d = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#"+tag)); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(d, lineElement)); + Corpus.addAxiom(Corpus.factory.getOWLSubClassOfAxiom(d, tagClass)); } if(!morph.equals("m_--")){ - OWLDescription d = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#"+morph)); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(lineElement,d )); - Corpus.addAxiom(Corpus.factory.getOWLSubClassAxiom(d, morphClass)); + OWLClassExpression d = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#"+morph)); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(d, lineElement)); + Corpus.addAxiom(Corpus.factory.getOWLSubClassOfAxiom(d, morphClass)); } if(!edge.equals("--")){ - OWLDescription d = Corpus.factory.getOWLClass(URI.create(Corpus.namespace+"#"+edge)); - Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(lineElement,d )); - Corpus.addAxiom(Corpus.factory.getOWLSubClassAxiom(d, edgeClass)); + OWLClassExpression d = Corpus.factory.getOWLClass(IRI.create(Corpus.namespace+"#"+edge)); + Corpus.addAxiom(Corpus.factory.getOWLClassAssertionAxiom(d, lineElement)); + Corpus.addAxiom(Corpus.factory.getOWLSubClassOfAxiom(d, edgeClass)); } } } Modified: trunk/src/dl-learner/org/dllearner/kb/OWLAPIOntology.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/OWLAPIOntology.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/kb/OWLAPIOntology.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -11,11 +11,12 @@ import org.dllearner.core.options.ConfigEntry; import org.dllearner.core.options.InvalidConfigOptionValueException; import org.dllearner.core.owl.KB; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDataProperty; -import org.semanticweb.owl.model.OWLIndividual; -import org.semanticweb.owl.model.OWLObjectProperty; -import org.semanticweb.owl.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLDataProperty; +import org.semanticweb.owlapi.model.OWLIndividual; +import org.semanticweb.owlapi.model.OWLNamedIndividual; +import org.semanticweb.owlapi.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.OWLOntology; public class OWLAPIOntology extends KnowledgeSource { @@ -30,7 +31,7 @@ private Set<OWLClass> classes; private Set<OWLObjectProperty> prop; private Set<OWLDataProperty> dataProp; - private Set<OWLIndividual> individuals; + private Set<OWLNamedIndividual> individuals; public OWLAPIOntology() { this(null); @@ -39,10 +40,10 @@ public OWLAPIOntology(OWLOntology onto) { this.ontology = onto; - classes = ontology.getReferencedClasses(); - prop = ontology.getReferencedObjectProperties(); - dataProp = ontology.getReferencedDataProperties(); - individuals = ontology.getReferencedIndividuals(); + classes = ontology.getClassesInSignature(); + prop = ontology.getObjectPropertiesInSignature(); + dataProp = ontology.getDataPropertiesInSignature(); + individuals = ontology.getIndividualsInSignature(); this.configurator = new OWLAPIOntologyConfigurator(this); } @@ -91,17 +92,17 @@ Iterator<OWLOntology> it = ontologies.iterator(); while(it.hasNext()) { OWLOntology ont = it.next(); - if(ont.getReferencedClasses() != null) { - classes.addAll(ont.getReferencedClasses()); + if(ont.getClassesInSignature() != null) { + classes.addAll(ont.getClassesInSignature()); } - if(ont.getReferencedObjectProperties() != null) { - prop.addAll(ont.getReferencedObjectProperties()); + if(ont.getObjectPropertiesInSignature() != null) { + prop.addAll(ont.getObjectPropertiesInSignature()); } - if(ont.getReferencedDataProperties() != null) { - dataProp.addAll(ont.getReferencedDataProperties()); + if(ont.getDataPropertiesInSignature() != null) { + dataProp.addAll(ont.getDataPropertiesInSignature()); } - if(ont.getReferencedIndividuals() != null) { - individuals.addAll(ont.getReferencedIndividuals()); + if(ont.getIndividualsInSignature() != null) { + individuals.addAll(ont.getIndividualsInSignature()); } } } @@ -122,7 +123,7 @@ return dataProp; } - public Set<OWLIndividual> getOWLIndividuals() { + public Set<OWLNamedIndividual> getOWLIndividuals() { return individuals; } } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -1,6 +1,5 @@ package org.dllearner.kb.extraction; -import java.net.URI; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -16,9 +15,10 @@ import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.datastructures.StringTuple; import org.dllearner.utilities.owl.OWLVocabulary; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLDescription; -import org.semanticweb.owl.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLObjectProperty; public class BlankNode extends Node { private static Logger logger = Logger @@ -107,8 +107,8 @@ } @Override - public URI getURI(){ - return URI.create("http://www.empty.org/empty#empty"); + public IRI getIRI(){ + return IRI.create("http://www.empty.org/empty#empty"); } @Override @@ -121,9 +121,9 @@ return inboundEdge; } - public OWLDescription getAnonymousClass(OWLAPIOntologyCollector owlAPIOntologyCollector){ + public OWLClassExpression getAnonymousClass(OWLAPIOntologyCollector owlAPIOntologyCollector){ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); - OWLDescription ret = factory.getOWLClass(URI.create("http://dummy.org/dummy")); + OWLClassExpression ret = factory.getOWLClass(IRI.create("http://dummy.org/dummy")); //System.out.println(inboundEdge); @@ -132,7 +132,7 @@ (inboundEdge.equals(OWLVocabulary.OWL_complementOf))|| (inboundEdge.equals(OWLVocabulary.OWL_unionOf)) ){ - Set<OWLDescription> target = new HashSet<OWLDescription>(); + Set<OWLClassExpression> target = new HashSet<OWLClassExpression>(); List<BlankNode> tmp = new ArrayList<BlankNode>(); tmp.add(this); while(!tmp.isEmpty()){ @@ -142,7 +142,7 @@ if(next.otherNodes.contains(new StringTuple(OWLVocabulary.RDF_REST, OWLVocabulary.RDF_NIL))){ for(StringTuple t : next.otherNodes){ if(t.a.equals(OWLVocabulary.RDF_FIRST)){ - target.add(factory.getOWLClass(URI.create(t.b))); + target.add(factory.getOWLClass(IRI.create(t.b))); //System.out.println("added "+t.b); } } @@ -153,7 +153,7 @@ try{ firstOtherNodes = next.otherNodes.first(); if(firstOtherNodes.a.equals(OWLVocabulary.RDF_FIRST)){ - target.add(factory.getOWLClass(URI.create(firstOtherNodes.b))); + target.add(factory.getOWLClass(IRI.create(firstOtherNodes.b))); tmp.add(next.blankNodes.get(0)); //System.out.println("bnode added"); }else{ @@ -181,7 +181,7 @@ tail("more than one complement"+target); }else{ - return factory.getOWLObjectComplementOf(new ArrayList<OWLDescription>(target).remove(0)); + return factory.getOWLObjectComplementOf(new ArrayList<OWLClassExpression>(target).remove(0)); } }else{ printAll(); @@ -226,11 +226,11 @@ } - private OWLDescription getRestriction(OWLAPIOntologyCollector owlAPIOntologyCollector){ + private OWLClassExpression getRestriction(OWLAPIOntologyCollector owlAPIOntologyCollector){ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); OWLObjectProperty property = null; - OWLDescription concept = null; - OWLDescription dummy = factory.getOWLClass(URI.create("http://dummy.org/dummy")); + OWLClassExpression concept = null; + OWLClassExpression dummy = factory.getOWLClass(IRI.create("http://dummy.org/dummy")); int total = otherNodes.size()+blankNodes.size()+datatypeProperties.size(); if(total >=4 ){ @@ -240,7 +240,7 @@ // get Objectproperty for(StringTuple n : otherNodes) { if(n.a.equals(OWLVocabulary.OWL_ON_PROPERTY)){ - property = factory.getOWLObjectProperty(URI.create(n.b)); + property = factory.getOWLObjectProperty(IRI.create(n.b)); } } @@ -249,11 +249,11 @@ DatatypePropertyNode d = datatypeProperties.get(0); String p = d.getURIString(); if( p.equals(OWLVocabulary.OWL_cardinality)){ - return factory.getOWLObjectExactCardinalityRestriction(property, d.getBPart().getLiteral().getInt()); + return factory.getOWLObjectExactCardinality(d.getBPart().getLiteral().getInt(), property); }else if(p.equals(OWLVocabulary.OWL_maxCardinality)){ - return factory.getOWLObjectMaxCardinalityRestriction(property, d.getBPart().getLiteral().getInt()); + return factory.getOWLObjectMaxCardinality(d.getBPart().getLiteral().getInt(), property); }else if(p.equals(OWLVocabulary.OWL_minCardinality)){ - return factory.getOWLObjectMinCardinalityRestriction(property, d.getBPart().getLiteral().getInt()); + return factory.getOWLObjectMinCardinality(d.getBPart().getLiteral().getInt(), property); }else { tail(p+d+" in "+this); } @@ -270,7 +270,7 @@ (p.equals(OWLVocabulary.OWL_SOME_VALUES_FROM)) || (p.equals(OWLVocabulary.OWL_HAS_VALUE)) ){ - concept = factory.getOWLClass(URI.create(o)); + concept = factory.getOWLClass(IRI.create(o)); } } } @@ -278,9 +278,9 @@ for(StringTuple n : otherNodes) { String p = n.a; if(p.equals(OWLVocabulary.OWL_ALL_VALUES_FROM)){ - return factory.getOWLObjectAllRestriction(property, concept); + return factory.getOWLObjectAllValuesFrom(property, concept); }else if(p.equals(OWLVocabulary.OWL_SOME_VALUES_FROM)){ - return factory.getOWLObjectSomeRestriction(property, concept); + return factory.getOWLObjectSomeValuesFrom(property, concept); }else if(p.equals(OWLVocabulary.OWL_HAS_VALUE)){ logger.warn("OWL_hasValue not implemented yet"); return dummy; Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -30,11 +30,11 @@ import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLCommentAnnotation; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLDescription; -import org.semanticweb.owl.model.OWLLabelAnnotation; +import org.semanticweb.owlapi.model.OWLAnnotation; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLDataFactory; /** * Is a node in the graph, that is a class. @@ -149,11 +149,11 @@ try{ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); - OWLClass me =factory.getOWLClass(getURI()); + OWLClass me =factory.getOWLClass(getIRI()); for (ObjectPropertyNode one : classProperties) { - OWLClass c = factory.getOWLClass(one.getBPart().getURI()); + OWLClass c = factory.getOWLClass(one.getBPart().getIRI()); if(OWLVocabulary.isStringSubClassVocab(one.getURIString())){ - owlAPIOntologyCollector.addAxiom(factory.getOWLSubClassAxiom(me, c)); + owlAPIOntologyCollector.addAxiom(factory.getOWLSubClassOfAxiom(me, c)); }else if(one.getURIString().equals(OWLVocabulary.OWL_DISJOINT_WITH)){ owlAPIOntologyCollector.addAxiom(factory.getOWLDisjointClassesAxiom(me, c)); }else if(one.getURIString().equals(OWLVocabulary.OWL_EQUIVALENT_CLASS)){ @@ -171,12 +171,14 @@ //FIXME add languages // watch for tail if(one.getURIString().equals(OWLVocabulary.RDFS_COMMENT)){ - OWLCommentAnnotation comment = factory.getCommentAnnotation(one.getBPart().getLiteral().getString()); - owlAPIOntologyCollector.addAxiom(factory.getOWLEntityAnnotationAxiom(me, comment)); + OWLAnnotation annoComment = factory.getOWLAnnotation(factory.getRDFSComment(), factory.getOWLStringLiteral(one.getBPart().getLiteral().getString())); + OWLAxiom ax = factory.getOWLAnnotationAssertionAxiom(me.getIRI(), annoComment); + owlAPIOntologyCollector.addAxiom(ax); }else if(one.getURIString().equals(OWLVocabulary.RDFS_LABEL)) { - OWLLabelAnnotation label = factory.getOWLLabelAnnotation(one.getBPart().getLiteral().getString()); - owlAPIOntologyCollector.addAxiom(factory.getOWLEntityAnnotationAxiom(me, label)); + OWLAnnotation annoLabel = factory.getOWLAnnotation(factory.getRDFSLabel(), factory.getOWLStringLiteral(one.getBPart().getLiteral().getString())); + OWLAxiom ax = factory.getOWLAnnotationAssertionAxiom(me.getIRI(), annoLabel); + owlAPIOntologyCollector.addAxiom(ax); }else { tail(true, "in ontology conversion: no other datatypes, but annotation is allowed for classes."+" data property is: "+one.getURIString()+" connected with: "+one.getBPart().getNTripleForm()); @@ -184,10 +186,10 @@ } for (BlankNode bn : blankNodes) { - OWLDescription target = bn.getAnonymousClass(owlAPIOntologyCollector); + OWLClassExpression target = bn.getAnonymousClass(owlAPIOntologyCollector); if(OWLVocabulary.isStringSubClassVocab(bn.getInBoundEdge())){ - owlAPIOntologyCollector.addAxiom(factory.getOWLSubClassAxiom(me, target)); + owlAPIOntologyCollector.addAxiom(factory.getOWLSubClassOfAxiom(me, target)); }else if(bn.getInBoundEdge().equals(OWLVocabulary.OWL_DISJOINT_WITH)){ owlAPIOntologyCollector.addAxiom(factory.getOWLDisjointClassesAxiom(me, target)); }else if(bn.getInBoundEdge().equals(OWLVocabulary.OWL_EQUIVALENT_CLASS)){ Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -19,7 +19,6 @@ */ package org.dllearner.kb.extraction; -import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; @@ -30,12 +29,13 @@ import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; -import org.semanticweb.owl.model.OWLAxiom; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLDataProperty; -import org.semanticweb.owl.model.OWLDataRange; -import org.semanticweb.owl.model.OWLDescription; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLDataProperty; +import org.semanticweb.owlapi.model.OWLDataRange; /** * Property node, has connection to a and b part @@ -122,28 +122,28 @@ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); - OWLDataProperty me =factory.getOWLDataProperty(getURI()); + OWLDataProperty me =factory.getOWLDataProperty(getIRI()); for (RDFNodeTuple one : propertyInformation) { if(one.aPartContains(OWLVocabulary.RDFS_range)){ //System.out.println(me + one.b.toString()); - OWLDataRange o = factory.getOWLDataType(URI.create(one.b.toString())); + OWLDataRange o = factory.getOWLDatatype(IRI.create(one.b.toString())); OWLAxiom ax = factory.getOWLDataPropertyRangeAxiom(me, o); owlAPIOntologyCollector.addAxiom(ax); //XXX implement //OWLClass c = factory.getOWLClass(URI.create(one.b.toString())); //owlAPIOntologyCollector.addAxiom(factory.getOWLDataPropertyRangeAxiom(propery, owlDataRange)(me, c)); }else if(one.aPartContains(OWLVocabulary.RDFS_domain)){ - OWLClass c = factory.getOWLClass(URI.create(one.b.toString())); + OWLClass c = factory.getOWLClass(IRI.create(one.b.toString())); owlAPIOntologyCollector.addAxiom(factory.getOWLDataPropertyDomainAxiom(me, c)); } } for (BlankNode bn : blankNodes) { - OWLDescription target = bn.getAnonymousClass(owlAPIOntologyCollector); + OWLClassExpression target = bn.getAnonymousClass(owlAPIOntologyCollector); if(bn.getInBoundEdge().equals(OWLVocabulary.RDFS_range)){ //XXX implement Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2010-04-22 17:09:08 UTC (rev 2143) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2010-05-04 20:36:49 UTC (rev 2144) @@ -30,13 +30,14 @@ import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; -import org.semanticweb.owl.model.OWLAxiom; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLDataProperty; -import org.semanticweb.owl.model.OWLIndividual; -import org.semanticweb.owl.model.OWLLabelAnnotation; -import org.semanticweb.owl.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.OWLAnnotation; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLDataProperty; +import org.semanticweb.owlapi.model.OWLIndividual; +import org.semanticweb.owlapi.model.OWLNamedIndividual; +import org.semanticweb.owlapi.model.OWLObjectProperty; import com.hp.hpl.jena.rdf.model.Literal; @@ -185,12 +186,12 @@ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); - OWLIndividual me = factory.getOWLIndividual(getURI()); + OWLNamedIndividual me = factory.getOWLNamedIndividual(getIRI()); for (ClassNode one : classes) { //create Axiom - OWLClass c = factory.getOWLClass(one.getURI()); - OWLAxiom ax = factory.getOWLClassAssertionAxiom(me, c); + OWLClass c = factory.getOWLClass(one.getIRI()); + OWLAxiom ax = factory.getOWLClassAssertionAxiom(c, me); //collect owlAPIOntologyCollector.addAxiom(ax); //handover @@ -199,15 +200,15 @@ for (ObjectPropertyNode one : objectProperties) { OWLAxiom ax = null; if(one.getURIString().equals(OWLVocabulary.OWL_DIFFERENT_FROM)){ - OWLIndividual o = factory.getOWLIndividual(one.getBPart().getURI()); + OWLIndividual o = factory.getOWLNamedIndividual(one.getBPart().getIRI()); ax = factory.getOWLDifferentIndividualsAxiom(new OWLIndividual[]{me,o}); }else{ //create axiom - OWLIndividual o = factory.getOWLIndividual(one.getBPart().getURI()); - OWLObjectProperty p = factory.getOWLObjectProperty(one.getURI()); - ax = factory.getOWLObjectPropertyAssertionAxiom(me, p, o); + OWLIndividual o = factory.getOWLNamedIndividual(one.getBPart().getIRI()); + OWLObjectProperty p = factory.getOWLObjectProperty(one.getIRI()); + ax = factory.getOWLObjectPropertyAssertionAxiom(p, me, o); } //collect owlAPIOntologyCollector.addAxiom(ax); @@ -218,7 +219,7 @@ } for (DatatypePropertyNode one : datatypeProperties) { - OWLDataProperty p = factory.getOWLDataProperty(one.getURI()); + OWLDataProperty p = factory.getOWLDataProperty(one.getIRI()); Literal ln = one.getBPart().getLiteral(); if(one.getURIString().equals(OWLVocabulary.RDFS_COMMENT)){ @@ -226,28 +227,29 @@ //OWLCommentAnnotation comment = factory.getOWL(one.b.toString()); //owlAPIOntologyCollector.addAxiom(factory.getOWLEntityAnnotationAxiom(me, label)); }else if(one.getURIString().equals(OWLVocabulary.RDFS_LABEL)){ - OWLLabelAnnotation label = factory.getOWLLabelAnnotation(ln.getString()); - owlAPIOntologyCollector.addAxio... [truncated message content] |
From: <lor...@us...> - 2010-05-16 15:27:27
|
Revision: 2146 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2146&view=rev Author: lorenz_b Date: 2010-05-16 15:27:19 +0000 (Sun, 16 May 2010) Log Message: ----------- 2 bugfixes for evaluation plugin. Added latest Pellet libs 2.1.1. Updated list and output for Tones and Protege repository ontologies. Modified Paths: -------------- trunk/lib/pellet/pellet-core.jar trunk/lib/pellet/pellet-datatypes.jar trunk/lib/pellet/pellet-el.jar trunk/lib/pellet/pellet-explanation.jar trunk/lib/pellet/pellet-modularity.jar trunk/lib/pellet/pellet-owlapiv3.jar trunk/lib/pellet/pellet-query.jar trunk/lib/pellet/pellet-rules.jar trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_ontologies.txt trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/GraphicalCoveragePanel.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/META-INF/MANIFEST.MF Added Paths: ----------- trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_output.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_output.txt Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies_output.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_errors.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_list.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_ontologies_output.txt trunk/src/dl-learner/org/dllearner/scripts/evaluation/tones_tractable.txt Modified: trunk/lib/pellet/pellet-core.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-datatypes.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-el.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-explanation.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-modularity.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-owlapiv3.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-query.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-rules.jar =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-05-14 16:02:25 UTC (rev 2145) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-05-16 15:27:19 UTC (rev 2146) @@ -20,13 +20,21 @@ package org.dllearner.scripts.evaluation; import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; import java.net.MalformedURLException; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; @@ -40,8 +48,15 @@ import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor; +import org.semanticweb.owlapi.reasoner.FreshEntityPolicy; +import org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy; +import org.semanticweb.owlapi.reasoner.OWLReasoner; +import org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration; +import org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor; +import org.semanticweb.owlapi.reasoner.SimpleConfiguration; +import org.semanticweb.owlapi.reasoner.TimeOutException; -import com.clarkparsia.pellet.owlapiv3.PelletReasoner; import com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory; /** @@ -59,6 +74,8 @@ private static boolean displayInstances = true; // set to Integer.MAX_VALUE for displaying all instances private static int maxInstances = 10; + + private static long reasonerTaskTimeoutInMinutes = 10; public static void main(String[] args) throws ComponentInitException, MalformedURLException { Map<String, Integer> ontologyRelClassCountMap = new HashMap<String, Integer>(); @@ -67,9 +84,12 @@ File file = new File(args[0]); OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - PelletReasoner reasoner; + OWLReasoner reasoner; + ReasonerProgressMonitor progressMonitor = new ConsoleProgressMonitor(); + FreshEntityPolicy freshEntityPolicy = FreshEntityPolicy.ALLOW; + IndividualNodeSetPolicy individualNodeSetPolicy = IndividualNodeSetPolicy.BY_SAME_AS; + OWLReasonerConfiguration conf = new SimpleConfiguration(progressMonitor, freshEntityPolicy, reasonerTaskTimeoutInMinutes * 60000, individualNodeSetPolicy); OWLOntology ontology; - Set<OWLOntology> ontologies = new HashSet<OWLOntology>(); StringBuffer sb = new StringBuffer(); StringBuffer sb2 = new StringBuffer(); String url = null; @@ -79,11 +99,15 @@ int count = 1; while ((url = in.readLine()) != null) { try { + if(url.startsWith("#")){ + continue; + } + url = url.replace("%26", "&"); + url = url.replace("%3D", "="); System.out.println(count++ + ":" + url); + manager = null; + manager = OWLManager.createOWLOntologyManager(); ontology = manager.loadOntology(IRI.create(url)); - ontologies.add(ontology); - ontologies.addAll(manager.getImportsClosure(ontology)); - reasoner = new PelletReasonerFactory().createReasoner(ontology); sb.append(url + "\n"); sb.append("#logical axioms: " + ontology.getLogicalAxiomCount() + "\n"); sb2.append(ontology.getLogicalAxiomCount() + "\t"); @@ -96,55 +120,63 @@ sb.append("#individuals: " + ontology.getIndividualsInSignature(true).size() + "\n"); sb2.append(url + "\t"); - if (reasoner.isConsistent()) { - long startTime = System.currentTimeMillis(); - reasoner.prepareReasoner(); - sb.append("classification time in ms: " + (System.currentTimeMillis() - startTime) + "\n"); - int unsatCount = reasoner.getUnsatisfiableClasses().getEntitiesMinusBottom().size(); - sb.append("#unsatisfiable classes: " + unsatCount + "\n"); - if(unsatCount > 0){ - incohaerentOntologies.put(url, Integer.valueOf(unsatCount)); - } - - int classCount = 0; - - StringBuffer tmp = new StringBuffer(); - if (ontology.getIndividualsInSignature(true).size() > 0) { - for (OWLClass cl : ontology.getClassesInSignature(true)) { - Set<OWLNamedIndividual> inds = reasoner.getInstances(cl, false).getFlattened(); - if (inds.size() >= minInstanceCount) { - classCount++; - tmp.append(" " + cl.getIRI() + "\n"); - if(displayInstances) { - int indCount = 0; - for(OWLIndividual ind : inds) { - tmp.append(" " + ind.toString() + "\n"); - indCount++; - if(indCount >= maxInstances) { - tmp.append(" ... " + inds.size() + " more\n"); - break; + if(ontology.getIndividualsInSignature(true).size() > 0){ + //Pellet + reasoner = PelletReasonerFactory.getInstance().createReasoner(ontology, conf); + //HermiT +// reasoner = new Reasoner(ontology); + if (reasoner.isConsistent()) { + long startTime = System.currentTimeMillis(); + reasoner.prepareReasoner(); + sb.append("classification time in ms: " + (System.currentTimeMillis() - startTime) + "\n"); + int unsatCount = reasoner.getUnsatisfiableClasses().getEntitiesMinusBottom().size(); + sb.append("#unsatisfiable classes: " + unsatCount + "\n"); + if(unsatCount > 0){ + incohaerentOntologies.put(url, Integer.valueOf(unsatCount)); + } + + int classCount = 0; + + StringBuffer tmp = new StringBuffer(); + if (ontology.getIndividualsInSignature(true).size() > 0) { + for (OWLClass cl : ontology.getClassesInSignature(true)) { + if(!cl.isOWLThing()){ + Set<OWLNamedIndividual> inds = reasoner.getInstances(cl, false).getFlattened(); + if (inds.size() >= minInstanceCount) { + classCount++; + tmp.append(" " + cl.getIRI() + "\n"); + if(displayInstances) { + int indCount = 0; + for(OWLIndividual ind : inds) { + tmp.append(" " + ind.toString() + "\n"); + indCount++; + if(indCount >= maxInstances) { + tmp.append(" ... " + (inds.size()-maxInstances+1) + " more\n"); + break; + } + } } - } + } } } } + + sb.append("#classes with min. " + minInstanceCount + " individuals: " + classCount + "\n"); + if(displayClasses) { + sb.append(tmp); + } + ontologyRelClassCountMap.put(url, classCount); + } else { + inconsistentOntologies.add(url); + sb.append("Ontology is inconsistent. \n"); } - - sb.append("#classes with min. " + minInstanceCount + " individuals: " + classCount + "\n"); - if(displayClasses) { - sb.append(tmp); - } - ontologyRelClassCountMap.put(url, classCount); - } else { - inconsistentOntologies.add(url); - sb.append("Ontology is inconsistent. \n"); + reasoner.dispose(); } sb.append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n"); sb2.append("\n"); - reasoner.dispose(); + manager.removeOntology(ontology); - ontologies.clear(); System.out.println(inconsistentOntologies.size() + " inconsistent ontologies:"); int cnt = 1; for(String uri : inconsistentOntologies){ @@ -158,28 +190,72 @@ } System.out.println(); } catch (OWLOntologyCreationException e) { - // TODO Auto-generated catch block + sb.append(url + "\n"); + sb.append("ERROR: Could not load ontology."); e.printStackTrace(); + } catch (TimeOutException e){ + sb.append(url + "\n"); + sb.append("TIMEOUT: Some reasoning tasks are too complex."); + e.printStackTrace(); } } } catch (IOException e) { e.printStackTrace(); } - - System.out.println(sb.toString()); - System.out.println(sb2.toString()); - for (Entry<String, Integer> ent : ontologyRelClassCountMap.entrySet()) { - System.out.println(ent.getValue() + "\t - \t" + ent.getKey()); +// +// System.out.println(sb.toString()); +// System.out.println(sb2.toString()); +// for (Entry<String, Integer> ent : ontologyRelClassCountMap.entrySet()) { +// System.out.println(ent.getValue() + "\t - \t" + ent.getKey()); +// } +// System.out.println("Inconsistent ontologies:"); +// for(String uri : inconsistentOntologies){ +// System.out.println(uri); +// } +// System.out.println("Incohaerent ontologies(#unsatisfiable classes):"); +// for (Entry<String, Integer> ent : incohaerentOntologies.entrySet()) { +// System.out.println(ent.getKey() + "(" + ent.getValue() + ")"); +// } + BufferedWriter out; + try { + out = new BufferedWriter(new FileWriter("protege_output.txt")); + out.write(sb.toString()); + out.write(sb2.toString()); + out.write("\n"); + ontologyRelClassCountMap = sortByValue(ontologyRelClassCountMap); + for (Entry<String, Integer> ent : ontologyRelClassCountMap.entrySet()) { + out.write(ent.getValue() + "\t - \t" + ent.getKey() + "\n"); + } + out.write("Inconsistent ontologies:\n"); + for(String uri : inconsistentOntologies){ + out.write(uri + "\n"); + } + out.write("Incohaerent ontologies(#unsatisfiable classes):\n"); + for (Entry<String, Integer> ent : incohaerentOntologies.entrySet()) { + out.write(ent.getKey() + "(" + ent.getValue() + ")\n"); + } + out.close(); + } catch (IOException e) { + e.printStackTrace(); } - System.out.println("Inconsistent ontologies:"); - for(String uri : inconsistentOntologies){ - System.out.println(uri); + + } + + static Map sortByValue(Map map) { + List list = new LinkedList(map.entrySet()); + Collections.sort(list, new Comparator() { + public int compare(Object o1, Object o2) { + return ((Comparable) ((Map.Entry) (o1)).getValue()).compareTo(((Map.Entry) (o2)).getValue()); + } + }); + Map result = new LinkedHashMap(); + for (Iterator it = list.iterator(); it.hasNext();) { + Map.Entry entry = (Map.Entry) it.next(); + result.put(entry.getKey(), entry.getValue()); } - System.out.println("Incohaerent ontologies(#unsatisfiable classes):"); - for (Entry<String, Integer> ent : incohaerentOntologies.entrySet()) { - System.out.println(ent.getKey() + "(" + ent.getValue() + ")"); - } + return result; } + } Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies.txt =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies.txt 2010-05-14 16:02:25 UTC (rev 2145) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies.txt 2010-05-16 15:27:19 UTC (rev 2146) @@ -25,7 +25,7 @@ http://www.tssg.org/public/ontologies/omg/mof/2004/MOF.owl http://www.tssg.org/public/ontologies/omg/qvt/2005/QVT.owl http://www.tssg.org/public/ontologies/omg/odm/2006/odm_2006_04_03_kludge.owl -http://www.tssg.org/public/ontologies/omg/uml/2004/UML2-Super-MDL-041007.owl +#http://www.tssg.org/public/ontologies/omg/uml/2004/UML2-Super-MDL-041007.owl http://protege.cim3.net/file/pub/ontologies/people.pets/people+pets.owl http://swap.uib.es/ontologies/performance.owl http://philosurfical.open.ac.uk/ontology/philosurfical.owl @@ -41,4 +41,5 @@ http://protege.cim3.net/file/pub/ontologies/travel/travel.owl http://lsi.ugr.es/joseluisgs/videojuegos.owl http://protege.cim3.net/file/pub/ontologies/wine/wine.owl +http://abulaish.com/Wood_Ontology/woodontology.xml http://drtc.isibang.ac.in/%7Ebisu/ontology/instOntology.owl \ No newline at end of file Deleted: trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies_output.txt =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies_output.txt 2010-05-14 16:02:25 UTC (rev 2145) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_ontologies_output.txt 2010-05-16 15:27:19 UTC (rev 2146) @@ -1,356 +0,0 @@ -http://www.biopax.org/release/biopax-level2.owl -#logical axioms: 338 -#classes: 40 -#object properties: 35 -#data properties: 39 -#individuals: 0 -classification time in ms: 144 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.ifomis.org/bfo/owl -#logical axioms: 95 -#classes: 39 -#object properties: 2 -#data properties: 2 -#individuals: 0 -classification time in ms: 198 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.acl.icnet.uk/~mw/MDM0.73.owl -#logical axioms: 878 -#classes: 196 -#object properties: 24 -#data properties: 5 -#individuals: 113 -classification time in ms: 478 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 31 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl -#logical axioms: 469 -#classes: 54 -#object properties: 16 -#data properties: 3 -#individuals: 1 -classification time in ms: 527 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://transontology.org/bhakti_gaudiya/bhakti.owl -#logical axioms: 52 -#classes: 47 -#object properties: 4 -#data properties: 11 -#individuals: 0 -classification time in ms: 272 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/camera/camera.owl -#logical axioms: 48 -#classes: 12 -#object properties: 9 -#data properties: 10 -#individuals: 2 -classification time in ms: 9 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.bltk.ru/OWL/camera2.owl -#logical axioms: 346 -#classes: 37 -#object properties: 14 -#data properties: 55 -#individuals: 67 -Ontology is inconsistent. -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://transontology.org/consciousness/consciousness1.owl -#logical axioms: 119 -#classes: 29 -#object properties: 14 -#data properties: 2 -#individuals: 14 -classification time in ms: 76 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 1 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://on.cs.unibas.ch/owl/1.0/Context.owl -#logical axioms: 54 -#classes: 9 -#object properties: 16 -#data properties: 12 -#individuals: 5 -classification time in ms: 12 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.ecs.soton.ac.uk/%7Eaoj04r/resist.owl -#logical axioms: 240 -#classes: 348 -#object properties: 136 -#data properties: 41 -#individuals: 76 -classification time in ms: 1580 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 15 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.csm.ornl.gov/%7E7lp/esg-owl/ESG1.1.owl -#logical axioms: 398 -#classes: 36 -#object properties: 30 -#data properties: 37 -#individuals: 44 -classification time in ms: 199 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 4 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.fadyart.com/ontologies/data/Finance.owl -#logical axioms: 16014 -#classes: 322 -#object properties: 249 -#data properties: 76 -#individuals: 2466 -classification time in ms: 352 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 111 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/generations/generations.owl -#logical axioms: 38 -#classes: 18 -#object properties: 6 -#data properties: 2 -#individuals: 7 -classification time in ms: 53 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 1 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://i2geo.net/ontologies/current/GeoSkills.owl -#logical axioms: 16781 -#classes: 595 -#object properties: 25 -#data properties: 23 -#individuals: 2572 -classification time in ms: 18544 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 167 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/ka/ka.owl -#logical axioms: 216 -#classes: 96 -#object properties: 62 -#data properties: 34 -#individuals: 0 -classification time in ms: 125 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/koala/koala.owl -#logical axioms: 42 -#classes: 20 -#object properties: 6 -#data properties: 3 -#individuals: 6 -classification time in ms: 31 -#unsatisfiable classes: 3 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://lifeeventontology.googlepages.com/leo.owl -#logical axioms: 356 -#classes: 32 -#object properties: 28 -#data properties: 16 -#individuals: 62 -classification time in ms: 33 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 7 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://mged.sourceforge.net/ontologies/MGEDOntology.owl -#logical axioms: 1387 -#classes: 235 -#object properties: 88 -#data properties: 50 -#individuals: 712 -classification time in ms: 142437 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 80 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.tssg.org/public/ontologies/omg/mof/2004/MOF.owl -#logical axioms: 0 -#classes: 65 -#object properties: 145 -#data properties: 8 -#individuals: 35 -classification time in ms: 93 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.tssg.org/public/ontologies/omg/qvt/2005/QVT.owl -#logical axioms: 0 -#classes: 149 -#object properties: 230 -#data properties: 8 -#individuals: 45 -classification time in ms: 361 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.tssg.org/public/ontologies/omg/odm/2006/odm_2006_04_03_kludge.owl -#logical axioms: 0 -#classes: 123 -#object properties: 135 -#data properties: 29 -#individuals: 42 -classification time in ms: 258 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 2 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/people.pets/people+pets.owl -#logical axioms: 105 -#classes: 59 -#object properties: 16 -#data properties: 3 -#individuals: 21 -classification time in ms: 143 -#unsatisfiable classes: 1 -#classes with min. 5 individuals: 4 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://swap.uib.es/ontologies/performance.owl -#logical axioms: 80 -#classes: 2412 -#object properties: 242 -#data properties: 44 -#individuals: 193 -classification time in ms: 12456 -#unsatisfiable classes: 2 -#classes with min. 5 individuals: 57 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://philosurfical.open.ac.uk/ontology/philosurfical.owl -#logical axioms: 1465 -#classes: 377 -#object properties: 315 -#data properties: 2 -#individuals: 0 -classification time in ms: 252 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/shuttle/shuttle-crew-ont.owl -#logical axioms: 95 -#classes: 46 -#object properties: 53 -#data properties: 32 -#individuals: 55 -classification time in ms: 82 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 2 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.loria.fr/%7Ecoulet/ontology/snpontology/version1.3/snpontology_full.owl -#logical axioms: 279 -#classes: 113 -#object properties: 64 -#data properties: 14 -#individuals: 4 -classification time in ms: 38372 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.uv.es/%7Eagentes/SVECore.owl -#logical axioms: 134 -#classes: 20 -#object properties: 13 -#data properties: 25 -#individuals: 0 -classification time in ms: 34 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/tambis/tambis-full.owl -#logical axioms: 596 -#classes: 394 -#object properties: 101 -#data properties: 3 -#individuals: 0 -classification time in ms: 1425 -#unsatisfiable classes: 144 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://www.bltk.ru/OWL/tourism.owl -#logical axioms: 417 -#classes: 76 -#object properties: 28 -#data properties: 29 -#individuals: 57 -Ontology is inconsistent. -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/travel/travel.owl -#logical axioms: 93 -#classes: 34 -#object properties: 8 -#data properties: 6 -#individuals: 14 -classification time in ms: 55 -#unsatisfiable classes: 1 -#classes with min. 5 individuals: 1 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://lsi.ugr.es/joseluisgs/videojuegos.owl -#logical axioms: 517 -#classes: 114 -#object properties: 14 -#data properties: 2 -#individuals: 0 -classification time in ms: 48140 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 0 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -http://protege.cim3.net/file/pub/ontologies/wine/wine.owl -#logical axioms: 657 -#classes: 137 -#object properties: 18 -#data properties: 3 -#individuals: 206 -classification time in ms: 12675 -#unsatisfiable classes: 0 -#classes with min. 5 individuals: 41 -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -1 - http://protege.cim3.net/file/pub/ontologies/generations/generations.owl -4 - http://www.csm.ornl.gov/%7E7lp/esg-owl/ESG1.1.owl -0 - http://www.tssg.org/public/ontologies/omg/mof/2004/MOF.owl -2 - http://protege.cim3.net/file/pub/ontologies/shuttle/shuttle-crew-ont.owl -167 - http://i2geo.net/ontologies/current/GeoSkills.owl -0 - http://lsi.ugr.es/joseluisgs/videojuegos.owl -2 - http://www.tssg.org/public/ontologies/omg/odm/2006/odm_2006_04_03_kludge.owl -31 - http://www.acl.icnet.uk/~mw/MDM0.73.owl -7 - http://lifeeventontology.googlepages.com/leo.owl -111 - http://www.fadyart.com/ontologies/data/Finance.owl -0 - http://philosurfical.open.ac.uk/ontology/philosurfical.owl -0 - http://www.tssg.org/public/ontologies/omg/qvt/2005/QVT.owl -1 - http://protege.cim3.net/file/pub/ontologies/travel/travel.owl -1 - http://transontology.org/consciousness/consciousness1.owl -0 - http://on.cs.unibas.ch/owl/1.0/Context.owl -15 - http://www.ecs.soton.ac.uk/%7Eaoj04r/resist.owl -0 - http://www.loria.fr/%7Ecoulet/ontology/snpontology/version1.3/snpontology_full.owl -0 - http://www.biopax.org/release/biopax-level2.owl -57 - http://swap.uib.es/ontologies/performance.owl -0 - http://protege.cim3.net/file/pub/ontologies/tambis/tambis-full.owl -0 - http://protege.cim3.net/file/pub/ontologies/ka/ka.owl -0 - http://www.uv.es/%7Eagentes/SVECore.owl -41 - http://protege.cim3.net/file/pub/ontologies/wine/wine.owl -0 - http://protege.cim3.net/file/pub/ontologies/camera/camera.owl -0 - http://transontology.org/bhakti_gaudiya/bhakti.owl -0 - http://www.ifomis.org/bfo/owl -0 - http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl -4 - http://protege.cim3.net/file/pub/ontologies/people.pets/people+pets.owl -80 - http://mged.sourceforge.net/ontologies/MGEDOntology.owl -0 - http://protege.cim3.net/file/pub/ontologies/koala/koala.owl -Inconsistent ontologies: -http://www.bltk.ru/OWL/tourism.owl -http://www.bltk.ru/OWL/camera2.owl -Incohaerent ontologies(#unsatisfiable classes): -http://protege.cim3.net/file/pub/ontologies/people.pets/people+pets.owl(1) -http://protege.cim3.net/file/pub/ontologies/koala/koala.owl(3) -http://protege.cim3.net/file/pub/ontologies/travel/travel.owl(1) -http://swap.uib.es/ontologies/performance.owl(2) -http://protege.cim3.net/file/pub/ontologies/tambis/tambis-full.owl(144) \ No newline at end of file Added: trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_output.txt =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_output.txt (rev 0) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/protege_output.txt 2010-05-16 15:27:19 UTC (rev 2146) @@ -0,0 +1,2454 @@ +http://www.biopax.org/release/biopax-level2.owl +#logical axioms: 343 +#classes: 42 +#object properties: 33 +#data properties: 37 +#individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.ifomis.org/bfo/owl +#logical axioms: 95 +#classes: 39 +#object properties: 0 +#data properties: 0 +#individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.acl.icnet.uk/~mw/MDM0.73.owl +#logical axioms: 878 +#classes: 196 +#object properties: 22 +#data properties: 3 +#individuals: 112 +classification time in ms: 406 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 31 + http://acl/BMV#Tamoxifen + <http://acl/BMV#TamFgt5Yr> + <http://acl/BMV#Tam30mg> + <http://acl/BMV#TamD2Yr> + <http://acl/BMV#TamE5Yr> + <http://acl/BMV#TamA20mg> + <http://acl/BMV#TamC40mg> + http://acl/BMV#EarlyBreastCancer + <http://acl/BMV#ProtoERPosLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNNegStage1BrCa> + <http://acl/BMV#ProtoERNegLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNPosStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage2BrCa> + http://acl/BMV#Outcomes + <http://acl/BMV#DecreasedBrCaDFS0.8> + <http://acl/BMV#IncreasedRiskGastricCa3.0> + <http://acl/BMV#IncreasedRiskGastricCa3.2> + <http://acl/BMV#DecreasedBrCaDFS0.5> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#NoChangeRiskEndometrialAbnormality1> + <http://acl/BMV#IncreasedLumbarBMD1.012> + <http://acl/BMV#DecreasedRiskBrCa0.55> + <http://acl/BMV#DecreasedRiskBrCa0.6> + <http://acl/BMV#IncreasedOS1.2> + ... 50 more + http://acl/BMV#BiologicalLevels + <http://acl/BMV#PlasmaPlatelet> + <http://acl/BMV#PlasmaLDL> + <http://acl/BMV#LumbarBMDLevel> + <http://acl/BMV#PlasmaCholesterolInst> + <http://acl/BMV#RadialBMDLevel> + <http://acl/BMV#PlasmaFibrinogen> + http://acl/BMV#MedicalIntervention + <http://acl/BMV#TamFgt5Yr> + <http://acl/BMV#ProtoPFTChemoTam> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoPAFTChemoTam> + <http://acl/BMV#TamC40mg> + <http://acl/BMV#ProtoMFTChemoTam> + <http://acl/BMV#ProtoClonidine> + <http://acl/BMV#ProtoLateCMFTChemTam> + <http://acl/BMV#Tam30mg> + <http://acl/BMV#TamD2Yr> + ... 5 more + http://acl/BMV#ChangeRiskEndometrialAbnormality + <http://acl/BMV#IncreasedRiskEndometrialCancer6.4> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.0> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.53> + <http://acl/BMV#IncreasedRiskEndometrialCancer4.1> + <http://acl/BMV#NoChangeRiskEndometrialAbnormality1> + <http://acl/BMV#IncreasedRiskEndometrialCancer7.5> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.3> + http://acl/BMV#Abstract + <http://acl/BMV#ProtoEndoAbnormality> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoLNNeg> + <http://acl/BMV#IncreasedLumbarBMD1.012> + <http://acl/BMV#DecreasedRiskBrCa0.55> + <http://acl/BMV#PlasmaLDL> + <http://acl/BMV#DecreasedRiskBrCa0.6> + <http://acl/BMV#IncreasedOS1.2> + <http://acl/BMV#IncreasedOS1.1> + <http://acl/BMV#IncreasedRiskPersistentSideEffects2.3> + ... 102 more + http://acl/BMV#HormoneRARegimeTypes + <http://acl/BMV#TamFgt5Yr> + <http://acl/BMV#Tam30mg> + <http://acl/BMV#TamD2Yr> + <http://acl/BMV#TamE5Yr> + <http://acl/BMV#TamA20mg> + <http://acl/BMV#TamC40mg> + http://acl/BMV#IncreasedBrCaDFS + <http://acl/BMV#IncreasedBrCaDFS1.1> + <http://acl/BMV#IncreasedBrCaDFS1.2> + <http://acl/BMV#IncreasedBrCaDFS1.3> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#IncreasedBrCaDFS1.05> + <http://acl/BMV#IncreasedBrCaDFS1.x> + <http://acl/BMV#IncreasedBrCaDFS1.5> + <http://acl/BMV#IncreasedBrCaDFS1.21> + <http://acl/BMV#IncreasedBrCaDFS1.7> + http://acl/BMV#IncreasedRiskEndometrialCancer + <http://acl/BMV#IncreasedRiskEndometrialCancer6.4> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.0> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.53> + <http://acl/BMV#IncreasedRiskEndometrialCancer4.1> + <http://acl/BMV#IncreasedRiskEndometrialCancer7.5> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.3> + http://acl/BMV#ChangeLumbarBMD + <http://acl/BMV#IncreasedLumbarBMD1.006> + <http://acl/BMV#DecreasedLumbarBMD0.986> + <http://acl/BMV#DecreasedLumbarBMD0.993> + <http://acl/BMV#IncreasedLumbarBMD1.008> + <http://acl/BMV#IncreasedLumbarBMD1.012> + http://acl/BMV#CancerTypes + <http://acl/BMV#ProtoERPosLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage1BrCa> + <http://acl/BMV#ProtoGastricCa> + <http://acl/BMV#ProtoColorectalCa> + <http://acl/BMV#ProtoERPosLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNNegStage1BrCa> + <http://acl/BMV#ProtoEndoCa> + <http://acl/BMV#ProtoERNegLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNPosStage2BrCa> + ... 2 more + http://acl/BMV#TherapeuticType + <http://acl/BMV#TamFgt5Yr> + <http://acl/BMV#ProtoPFTChemoTam> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoPAFTChemoTam> + <http://acl/BMV#TamC40mg> + <http://acl/BMV#ProtoMFTChemoTam> + <http://acl/BMV#ProtoClonidine> + <http://acl/BMV#ProtoLateCMFTChemTam> + <http://acl/BMV#Tam30mg> + <http://acl/BMV#TamD2Yr> + ... 5 more + http://acl/BMV#ChangeBrCaDFS + <http://acl/BMV#DecreasedBrCaDFS0.8> + <http://acl/BMV#IncreasedBrCaDFS1.1> + <http://acl/BMV#IncreasedBrCaDFS1.2> + <http://acl/BMV#DecreasedBrCaDFS0.5> + <http://acl/BMV#IncreasedBrCaDFS1.3> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#IncreasedBrCaDFS1.05> + <http://acl/BMV#NoChangeBrCaDFS1> + <http://acl/BMV#IncreasedBrCaDFS1.x> + <http://acl/BMV#IncreasedBrCaDFS1.5> + ... 3 more + http://acl/BMV#AbsoluteRisk + <http://acl/BMV#RiskOvarianCyst0.06> + <http://acl/BMV#RiskCataracts0.14> + <http://acl/BMV#RiskEndometrialCa0.005> + <http://acl/BMV#RiskRetinopathy0.12> + <http://acl/BMV#RiskOvarianCyst0.11> + <http://acl/BMV#RiskEndometrialAbnormality3.9> + http://acl/BMV#BiologicalLevelBasedOutcomes + <http://acl/BMV#DecreasedLDL0.88> + <http://acl/BMV#IncreasedLumbarBMD1.006> + <http://acl/BMV#DecreasedPlasmaFibrinogenLevel0.85> + <http://acl/BMV#DecreasedLumbarBMD0.986> + <http://acl/BMV#NoChangeRadialBMD1.0> + <http://acl/BMV#DecreasedRadialBMD_NOS> + <http://acl/BMV#DecreasedLumbarBMD0.993> + <http://acl/BMV#DecreasedCholesterol0.88> + <http://acl/BMV#IncreasedLumbarBMD1.008> + <http://acl/BMV#DecreasedPlasmaPlateletCount0.92> + ... 2 more + http://acl/BMV#Risk + <http://acl/BMV#IncreasedRiskGastricCa3.0> + <http://acl/BMV#DecreasedBrCaDFS0.8> + <http://acl/BMV#DecreasedRiskHotFlushes0.8> + <http://acl/BMV#IncreasedRiskGastricCa3.2> + <http://acl/BMV#DecreasedBrCaDFS0.5> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#DecreasedRiskFatalMI0.37> + <http://acl/BMV#RiskOvarianCyst0.11> + <http://acl/BMV#NoChangeRiskEndometrialAbnormality1> + <http://acl/BMV#IncreasedRiskCataracts1.14> + ... 33 more + http://acl/BMV#ChangeRiskEndometrialCancer + <http://acl/BMV#IncreasedRiskEndometrialCancer6.4> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.0> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.53> + <http://acl/BMV#IncreasedRiskEndometrialCancer4.1> + <http://acl/BMV#IncreasedRiskEndometrialCancer7.5> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.3> + http://acl/BMV#DiseaseTypes + <http://acl/BMV#ProtoEndoAbnormality> + <http://acl/BMV#ProtoVenousThrombosis> + <http://acl/BMV#ProtoERPosLNNegStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage2BrCa> + <http://acl/BMV#ProtoFatalMI> + <http://acl/BMV#ProtoEndoCa> + <http://acl/BMV#ProtoNonFatalMI> + <http://acl/BMV#ProtoERNegLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNPosStage1BrCa> + ... 10 more + http://acl/BMV#ChemoTamRegimeTypes + <http://acl/BMV#ProtoPFTChemoTam> + <http://acl/BMV#ProtoLateCMFTChemTam> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoPAFTChemoTam> + <http://acl/BMV#ProtoACT> + <http://acl/BMV#ProtoMFTChemoTam> + http://acl/BMV#ChangeBMD + <http://acl/BMV#IncreasedLumbarBMD1.006> + <http://acl/BMV#DecreasedLumbarBMD0.986> + <http://acl/BMV#NoChangeRadialBMD1.0> + <http://acl/BMV#DecreasedRadialBMD_NOS> + <http://acl/BMV#DecreasedLumbarBMD0.993> + <http://acl/BMV#IncreasedLumbarBMD1.008> + <http://acl/BMV#IncreasedLumbarBMD1.012> + http://acl/BMV#ChangesInRisk + <http://acl/BMV#IncreasedRiskGastricCa3.0> + <http://acl/BMV#DecreasedRiskHotFlushes0.8> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.4> + <http://acl/BMV#IncreasedRiskGastricCa3.2> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.0> + <http://acl/BMV#DecreasedRiskCardiacDisease0.68> + <http://acl/BMV#DecreasedRiskFatalMI0.37> + <http://acl/BMV#IncreasedRiskSideEffects23> + <http://acl/BMV#IncreasedRiskCataracts1.14> + <http://acl/BMV#NoChangeRiskEndometrialAbnormality1> + ... 12 more + http://acl/BMV#BreastAdenoCa + <http://acl/BMV#ProtoERPosLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNNegStage1BrCa> + <http://acl/BMV#ProtoERNegLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNPosStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage2BrCa> + http://acl/BMV#DeltaRisk + <http://acl/BMV#IncreasedRiskGastricCa3.0> + <http://acl/BMV#DecreasedBrCaDFS0.8> + <http://acl/BMV#DecreasedRiskHotFlushes0.8> + <http://acl/BMV#IncreasedRiskGastricCa3.2> + <http://acl/BMV#DecreasedBrCaDFS0.5> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#DecreasedRiskFatalMI0.37> + <http://acl/BMV#NoChangeRiskEndometrialAbnormality1> + <http://acl/BMV#IncreasedRiskCataracts1.14> + <http://acl/BMV#DecreasedRiskBrCa0.55> + ... 27 more + http://acl/BMV#References + <http://acl/BMV#PlasmaCholesterolInst> + <http://acl/BMV#ProtoERPos> + <http://acl/BMV#ProtoLNNeg> + <http://acl/BMV#RadialBMDLevel> + <http://acl/BMV#ProtoLNPos> + <http://acl/BMV#ProtoPRNeg> + <http://acl/BMV#ProtoStage4> + <http://acl/BMV#ProtoPRPos> + <http://acl/BMV#ProtoPostmenopausal> + <http://acl/BMV#PlasmaFibrinogen> + ... 9 more + http://acl/BMV#IncreasedRiskEndometrialAbnormality + <http://acl/BMV#IncreasedRiskEndometrialCancer6.4> + <http://acl/BMV#IncreasedRiskEndometrialCancer6.0> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.53> + <http://acl/BMV#IncreasedRiskEndometrialCancer4.1> + <http://acl/BMV#IncreasedRiskEndometrialCancer7.5> + <http://acl/BMV#IncreasedRiskEndometrialCancer2.3> + http://acl/BMV#BreastCancer + <http://acl/BMV#ProtoERPosLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage1BrCa> + <http://acl/BMV#ProtoERPosLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNNegStage1BrCa> + <http://acl/BMV#ProtoERNegLNNegStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage1BrCa> + <http://acl/BMV#ProtoERPosLNPosStage2BrCa> + <http://acl/BMV#ProtoERNegLNPosStage2BrCa> + http://acl/BMV#ChangesInSurvival + <http://acl/BMV#DecreasedBrCaDFS0.8> + <http://acl/BMV#IncreasedBrCaDFS1.1> + <http://acl/BMV#IncreasedBrCaDFS1.2> + <http://acl/BMV#DecreasedBrCaDFS0.5> + <http://acl/BMV#IncreasedBrCaDFS1.3> + <http://acl/BMV#IncreasedBrCaDFSREF> + <http://acl/BMV#IncreasedBrCaDFS1.05> + <http://acl/BMV#IncreasedCardiacDSS1.52> + <http://acl/BMV#IncreasedBrCaDFS1.x> + <http://acl/BMV#IncreasedBrCaDFS1.5> + ... 6 more + http://acl/BMV#ChangeOverallSurvival + <http://acl/BMV#IncreasedOS1.03> + <http://acl/BMV#IncreasedOS1.2> + <http://acl/BMV#IncreasedOS1.1> + <http://acl/BMV#ProtoNoChangeOS> + <http://acl/BMV#IncreasedOS1.02> + http://acl/BMV#MedicalThings + <http://acl/BMV#ProtoEndoAbnormality> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoLNNeg> + <http://acl/BMV#IncreasedLumbarBMD1.012> + <http://acl/BMV#DecreasedRiskBrCa0.55> + <http://acl/BMV#PlasmaLDL> + <http://acl/BMV#DecreasedRiskBrCa0.6> + <http://acl/BMV#IncreasedOS1.2> + <http://acl/BMV#IncreasedOS1.1> + <http://acl/BMV#IncreasedRiskPersistentSideEffects2.3> + ... 102 more + http://acl/BMV#AdjuvantTreatment + <http://acl/BMV#TamFgt5Yr> + <http://acl/BMV#ProtoPFTChemoTam> + <http://acl/BMV#ProtoEarlyCMFTChemoTam> + <http://acl/BMV#ProtoPAFTChemoTam> + <http://acl/BMV#TamC40mg> + <http://acl/BMV#ProtoMFTChemoTam> + <http://acl/BMV#ProtoLateCMFTChemTam> + <http://acl/BMV#Tam30mg> + <http://acl/BMV#TamD2Yr> + <http://acl/BMV#TamE5Yr> + ... 4 more +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl +#logical axioms: 469 +#classes: 55 +#object properties: 14 +#data properties: 1 +#individuals: 1 +classification time in ms: 203 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://transontology.org/bhakti_gaudiya/bhakti.owl +#logical axioms: 52 +#classes: 47 +#object properties: 2 +#data properties: 9 +#individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://protege.cim3.net/file/pub/ontologies/camera/camera.owl +#logical axioms: 48 +#classes: 13 +#object properties: 7 +#data properties: 8 +#individuals: 2 +classification time in ms: 15 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.bltk.ru/OWL/camera2.owl +#logical axioms: 351 +#classes: 38 +#object properties: 12 +#data properties: 53 +#individuals: 57 +Ontology is inconsistent. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.owl-ontologies.com/Cardiology.owl +ERROR: Could not load ontology.http://transontology.org/consciousness/consciousness1.owl +#logical axioms: 119 +#classes: 30 +#object properties: 12 +#data properties: 0 +#individuals: 14 +classification time in ms: 47 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 1 + http://www.owl-ontologies.com/unnamed.owl#PersonalityOfGodhead + <http://www.owl-ontologies.com/unnamed.owl#Krsna> + <http://www.owl-ontologies.com/unnamed.owl#LordAniruddha> + <http://www.owl-ontologies.com/unnamed.owl#Narayana> + <http://www.owl-ontologies.com/unnamed.owl#Balarama> + <http://www.owl-ontologies.com/unnamed.owl#KaranadakasayiVisnuOfOurBrahmanda> + <http://www.owl-ontologies.com/unnamed.owl#LordBaladeva> + <http://www.owl-ontologies.com/unnamed.owl#LordSankarsana> + <http://www.owl-ontologies.com/unnamed.owl#KsirodakasayiVisnuOfOurBrahmanda> + <http://www.owl-ontologies.com/unnamed.owl#GarbhodakasayiVisnuOfOurBrahmanda> + <http://www.owl-ontologies.com/unnamed.owl#LordPradyumna> + ... 1 more +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://on.cs.unibas.ch/owl/1.0/Context.owl +#logical axioms: 54 +#classes: 9 +#object properties: 16 +#data properties: 7 +#individuals: 4 +classification time in ms: 47 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.nada.kth.se/%7Emehrana/Delegation.owl +#logical axioms: 63 +#classes: 19 +#object properties: 20 +#data properties: 4 +#individuals: 0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.ecs.soton.ac.uk/%7Eaoj04r/resist.owl +#logical axioms: 239 +#classes: 349 +#object properties: 134 +#data properties: 38 +#individuals: 75 +classification time in ms: 2453 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 15 + http://www.aktors.org/ontology/support#Intangible-Thing + <http://www.aktors.org/ontology/support#twentynine-day-duration> + <http://www.aktors.org/ontology/support#twentyeight-day-duration> + <http://www.aktors.org/ontology/portal#Permanent-Contract> + <http://www.aktors.org/ontology/portal#Learning-Research-Area> + <http://www.aktors.org/ontology/portal#Lady> + <http://www.aktors.org/ontology/support#twelve-month-duration> + <http://www.aktors.org/ontology/support#time-measure-day> + <http://www.aktors.org/ontology/portal#Miss> + <http://www.aktors.org/ontology/portal#Language-Engineering> + <http://www.aktors.org/ontology/portal#Adaptive-Hypermedia> + ... 65 more + http://www.aktors.org/ontology/support#Unit-Of-Measure + <http://www.aktors.org/ontology/support#time-measure-day> + <http://www.aktors.org/ontology/support#time-measure-hour> + <http://www.aktors.org/ontology/support#time-measure-second> + <http://www.aktors.org/ontology/support#time-measure-month> + <http://www.aktors.org/ontology/support#time-measure-minute> + <http://www.aktors.org/ontology/support#time-measure-year> + http://www.aktors.org/ontology/portal#Academic-Degree + <http://www.aktors.org/ontology/portal#BSc> + <http://www.aktors.org/ontology/portal#PhD> + <http://www.aktors.org/ontology/portal#MA> + <http://www.aktors.org/ontology/portal#DEng> + <http://www.aktors.org/ontology/portal#BA> + <http://www.aktors.org/ontology/portal#MSc> + http://www.aktors.org/ontology/portal#Award + <http://www.aktors.org/ontology/portal#BSc> + <http://www.aktors.org/ontology/portal#PhD> + <http://www.aktors.org/ontology/portal#MA> + <http://www.aktors.org/ontology/portal#DEng> + <http://www.aktors.org/ontology/portal#BA> + <http://www.aktors.org/ontology/portal#MSc> + http://www.aktors.org/ontology/portal#Degree + <http://www.aktors.org/ontology/portal#BSc> + <http://www.aktors.org/ontology/portal#PhD> + <http://www.aktors.org/ontology/portal#MA> + <http://www.aktors.org/ontology/portal#DEng> + <http://www.aktors.org/ontology/portal#BA> + <http://www.aktors.org/ontology/portal#MSc> + http://www.aktors.org/ontology/support#Time-Measure + <http://www.aktors.org/ontology/support#time-measure-day> + <http://www.aktors.org/ontology/support#time-measure-hour> + <http://www.aktors.org/ontology/support#time-measure-second> + <http://www.aktors.org/ontology/support#time-measure-month> + <http://www.aktors.org/ontology/support#time-measure-minute> + <http://www.aktors.org/ontology/support#time-measure-year> + http://www.aktors.org/ontology/portal#Appellation + <http://www.aktors.org/ontology/portal#Mrs> + <http://www.aktors.org/ontology/portal#Miss> + <http://www.aktors.org/ontology/portal#Dr> + <http://www.aktors.org/ontology/portal#Sir> + <http://www.aktors.org/ontology/portal#Mr> + <http://www.aktors.org/ontology/portal#Ms> + <http://www.aktors.org/ontology/portal#Lady> + <http://www.aktors.org/ontology/portal#Prof> + http://www.aktors.org/ontology/portal#Organization-Size + <http://www.aktors.org/ontology/portal#very-large-size> + <http://www.aktors.org/ontology/portal#micro-size> + <http://www.aktors.org/ontology/portal#small-size> + <http://www.aktors.org/ontology/portal#large-size> + <http://www.aktors.org/ontology/portal#medium-size> + http://www.aktors.org/ontology/support#Thing + <http://www.aktors.org/ontology/support#twentynine-day-duration> + <http://www.aktors.org/ontology/support#twentyeight-day-duration> + <http://www.aktors.org/ontology/portal#Permanent-Contract> + <http://www.aktors.org/ontology/portal#Learning-Research-Area> + <http://www.aktors.org/ontology/portal#Lady> + <http://www.aktors.org/ontology/support#twelve-month-duration> + <http://www.aktors.org/ontology/support#time-measure-day> + <http://www.aktors.org/ontology/portal#Miss> + <http://www.aktors.org/ontology/portal#Language-Engineering> + <http://www.aktors.org/ontology/portal#Email-Medium> + ... 66 more + http://www.aktors.org/ontology/support#Quantity + <http://www.aktors.org/ontology/support#twentynine-day-duration> + <http://www.aktors.org/ontology/support#seven-day-duration> + <http://www.aktors.org/ontology/support#twentyeight-day-duration> + <http://www.aktors.org/ontology/support#twentyfour-hour-duration> + <http://www.aktors.org/ontology/support#thirty-day-duration> + <http://www.aktors.org/ontology/support#thirtyone-day-duration> + <http://www.aktors.org/ontology/support#twelve-month-duration> + http://www.aktors.org/ontology/portal#Research-Area + <http://www.aktors.org/ontology/portal#Knowledge-Retrieval> + <http://www.aktors.org/ontology/portal#Knowledge-Lifecycle> + <http://www.aktors.org/ontology/portal#Knowledge-Acquisition> + <http://www.aktors.org/ontology/portal#Software-Visualization> + <http://www.aktors.org/ontology/portal#Learning-Research-Area> + <http://www.aktors.org/ontology/portal#Hypermedia> + <http://www.aktors.org/ontology/portal#Semantic-Web-Area> + <http://www.aktors.org/ontology/portal#Knowledge-Modelling> + <http://www.aktors.org/ontology/portal#Language-Engineering> + <http://www.aktors.org/ontology/portal#Adaptive-Hypermedia> + ... 22 more + http://www.aktors.org/ontology/support#Physical-Quantity + <http://www.aktors.org/ontology/support#twentynine-day-duration> + <http://www.aktors.org/ontology/support#seven-day-duration> + <http://www.aktors.org/ontology/support#twentyeight-day-duration> + <http://www.aktors.org/ontology/support#twentyfour-hour-duration> + <http://www.aktors.org/ontology/support#thirty-day-duration> + <http://www.aktors.org/ontology/support#thirtyone-day-duration> + <http://www.aktors.org/ontology/support#twelve-month-duration> + http://www.aktors.org/ontology/portal#Software-Status + <http://www.aktors.org/ontology/portal#Experimental-Version> + <http://www.aktors.org/ontology/portal#Beta-Version> + <http://www.aktors.org/ontology/portal#Released-Version> + <http://www.aktors.org/ontology/portal#Alpha-Version> + <http://www.aktors.org/ontology/portal#Broken-Version> + http://www.aktors.org/ontology/support#Duration + <http://www.aktors.org/ontology/support#twentynine-day-duration> + <http://www.aktors.org/ontology/support#seven-day-duration> + <http://www.aktors.org/ontology/support#twentyeight-day-duration> + <http://www.aktors.org/ontology/support#twentyfour-hour-duration> + <http://www.aktors.org/ontology/support#thirty-day-duration> + <http://www.aktors.org/ontology/support#thirtyone-day-duration> + <http://www.aktors.org/ontology/support#twelve-month-duration> + http://www.aktors.org/ontology/portal#Generic-Area-Of-Interest + <http://www.aktors.org/ontology/portal#Knowledge-Retrieval> + <http://www.aktors.org/ontology/portal#Knowledge-Lifecycle> + <http://www.aktors.org/ontology/portal#Knowledge-Acquisition> + <http://www.aktors.org/ontology/portal#Software-Visualization> + <http://www.aktors.org/ontology/portal#Learning-Research-Area> + <http://www.aktors.org/ontology/portal#Hypermedia> + <http://www.aktors.org/ontology/portal#Semantic-Web-Area> + <http://www.aktors.org/ontology/portal#Knowledge-Modelling> + <http://www.aktors.org/ontology/portal#Language-Engineering> + <http://www.aktors.org/ontology/portal#Adaptive-Hypermedia> + ... 22 more +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://education.state.mn.us/datadictionary/owl/Education.owl +ERROR: Could not load ontology.http://www.csm.ornl.gov/%7E7lp/esg-owl/ESG1.1.owl +#logical axioms: 398 +#classes: 37 +#object properties: 28 +#data properties: 35 +#individuals: 44 +classification time in ms: 63 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 4 + http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#DateTimeEncoding + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY-MM-DDThh_mm_ssTZD> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY-MM-DD> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY-MM-DDThh_mmTZD> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY-MM-DDThh_mm_ss.sTZD> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#YYYY-MM> + http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#SimulationStatus + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#stopped> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#running> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#restarted> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#completed> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#pending> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#failed> + http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#Calendar + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#xunits> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#none> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#all_leap> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#zunits> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#_365_days> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#_366_days> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#gregorian> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#_360_days> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#name> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#yunits> + ... 6 more + http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#SpaceCoverage + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#southLimit> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#xunits> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#downLimit> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#name> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#eastLimit> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#yunits> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#zunits> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#westLimit> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#resolution> + <http://www.csm.ornl.gov/~7lp/onto-library/esg1.1#northLimit> + ... 2 more +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://protege.cim3.net/file/pub/ontologies/family.swrl.owl/family.swrl.owl +#logical axioms: 182 +#classes: 29 +#object properties: 21 +#data properties: 12 +#individuals: 42 +classification time in ms: 75438 +#unsatisfiable classes: 0 +#classes with min. 5 individuals: 14 + http://a.com/ontology#Nephew + <http://a.com/ontology#M10> + <http://a.com/ontology#M09> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#M03> + http://a.com/ontology#Woman + <http://a.com/ontology#F10> + <http://a.com/ontology#F08> + <http://a.com/ontology#F09> + <http://a.com/ontology#F04> + <http://a.com/ontology#F05> + <http://a.com/ontology#F06> + <http://a.com/ontology#F07> + <http://a.com/ontology#F01> + <http://a.com/ontology#F02> + <http://a.com/ontology#F03> + ... 1 more + http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Entity + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Minutes> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Hours> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Years> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Days> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Seconds> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Milliseconds> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Months> + http://a.com/ontology#Father + <http://a.com/ontology#M06> + <http://a.com/ontology#M07> + <http://a.com/ontology#M08> + <http://a.com/ontology#M01> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> + http://a.com/ontology#Child + <http://a.com/ontology#M10> + <http://a.com/ontology#M09> + <http://a.com/ontology#F09> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#F05> + <http://a.com/ontology#F06> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#F02> + ... 3 more + http://a.com/ontology#Mother + <http://a.com/ontology#F10> + <http://a.com/ontology#F08> + <http://a.com/ontology#F04> + <http://a.com/ontology#F06> + <http://a.com/ontology#F07> + <http://a.com/ontology#F01> + <http://a.com/ontology#F03> + http://a.com/ontology#Daugther + <http://a.com/ontology#F09> + <http://a.com/ontology#F05> + <http://a.com/ontology#F06> + <http://a.com/ontology#F02> + <http://a.com/ontology#F03> + http://a.com/ontology#Sibling + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#F05> + <http://a.com/ontology#F06> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#F03> + http://a.com/ontology#Person + <http://a.com/ontology#M10> + <http://a.com/ontology#F10> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#M07> + <http://a.com/ontology#M08> + <http://a.com/ontology#M01> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> + ... 11 more + http://a.com/ontology#Man + <http://a.com/ontology#M10> + <http://a.com/ontology#M09> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#M07> + <http://a.com/ontology#M08> + <http://a.com/ontology#M01> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> + ... 1 more + http://a.com/ontology#Relative + <http://a.com/ontology#M10> + <http://a.com/ontology#F10> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#M07> + <http://a.com/ontology#M08> + <http://a.com/ontology#M01> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> + ... 11 more + http://a.com/ontology#Parent + <http://a.com/ontology#F10> + <http://a.com/ontology#M06> + <http://a.com/ontology#M07> + <http://a.com/ontology#M08> + <http://a.com/ontology#M01> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> + <http://a.com/ontology#F08> + <http://a.com/ontology#F04> + ... 5 more + http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Granularity + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Minutes> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Hours> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Years> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Days> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Seconds> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Milliseconds> + <http://swrl.stanford.edu/ontologies/built-ins/3.3/temporal.owl#Months> + http://a.com/ontology#Son + <http://a.com/ontology#M10> + <http://a.com/ontology#M09> + <http://a.com/ontology#M05> + <http://a.com/ontology#M06> + <http://a.com/ontology#M02> + <http://a.com/ontology#M03> + <http://a.com/ontology#M04> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +http://www.fadyart.com/ontologies/data/Finance.owl +#logical axioms: 16014 +#classes: 323 +#object properties: 247 +#data properties: 74 +#individuals: 2466 +Ontology is inconsistent. +++++++++++++++++++++++++++++... [truncated message content] |
From: <lor...@us...> - 2010-06-13 14:06:31
|
Revision: 2162 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2162&view=rev Author: lorenz_b Date: 2010-06-13 14:06:21 +0000 (Sun, 13 Jun 2010) Log Message: ----------- Started refactoring Protege plugin to be able to use the internal reasoners of Protege instead of a separate Pellet reasoner, included in the plugin libraries - actually we can use the internal reasoner, but something goes wrong when a new reasoner is selected in Protege. Modified Paths: -------------- trunk/build.xml trunk/doc/configOptions.txt trunk/src/dl-learner/org/dllearner/components.ini trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java trunk/src/dl-learner/org/dllearner/reasoning/ReasonerType.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java trunk/src/dl-learner/org/dllearner/tools/evaluationplugin/EvaluationPlugin.java trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerView.java trunk/src/dl-learner/org/dllearner/tools/protege/GraphicalCoveragePanelHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/HyperLinkHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/META-INF/MANIFEST.MF trunk/src/dl-learner/org/dllearner/tools/protege/META-INF/plugin.xml trunk/src/dl-learner/org/dllearner/tools/protege/ProtegePlugin.java trunk/src/dl-learner/org/dllearner/tools/protege/ReadingOntologyThread.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/core/configurators/ProtegeReasonerConfigurator.java trunk/src/dl-learner/org/dllearner/reasoning/ProtegeReasoner.java trunk/src/dl-learner/org/dllearner/tools/protege/Manager.java trunk/src/dl-learner/org/dllearner/tools/protege/StatusBar.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/protege/StatusBar2.java Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2010-06-06 18:30:16 UTC (rev 2161) +++ trunk/build.xml 2010-06-13 14:06:21 UTC (rev 2162) @@ -355,25 +355,17 @@ <mkdir dir="${release}" /> <mkdir dir="${temp}/META-INF" /> <mkdir dir="${temp}/lib" /> - <mkdir dir="${temp}/lib/pellet" /> <mkdir dir="${temp}/lib/jena" /> <mkdir dir="${temp}/lib/ore-tool" /> - <mkdir dir="${temp}/lib/owlapi" /> <copy toDir="${temp}/META-INF" > <fileset dir="${source}/META-INF" includes="MANIFEST.MF," /> </copy> - <copy toDir="${temp}/lib/owlapi" > - <fileset dir="${lib_dir}/owlapi" includes="owlapiV3-bin.jar" /> - </copy> <copy toDir="${temp}/lib/ore-tool" > - <fileset dir="${lib_dir}/ore-tool" includes="BrowserLauncher2-all-1_3.jar, swingx-1.6.jar" /> + <fileset dir="${lib_dir}/ore-tool" includes="swingx-1.6.jar" /> </copy> <copy toDir="${temp}/lib" > <fileset dir="${lib_dir}" includes="junit-4.4.jar,jamon-2.7.jar" /> </copy> - <copy toDir="${temp}/lib/pellet" > - <fileset dir="${lib_dir}/pellet" includes="**/*.jar" /> - </copy> <copy toDir="${temp}/lib/jena" > <fileset dir="${lib_dir}/jena" includes="commons-logging-1.1.1.jar,json.jar" /> </copy> Modified: trunk/doc/configOptions.txt =================================================================== --- trunk/doc/configOptions.txt 2010-06-06 18:30:16 UTC (rev 2161) +++ trunk/doc/configOptions.txt 2010-06-13 14:06:21 UTC (rev 2162) @@ -30,6 +30,12 @@ default value: true conf file usage: sparql.useCache = true; +option name: useCacheDatabase +description: If true, H2 database is used, otherwise one file per query is written. +allowed values: boolean +default value: false +conf file usage: sparql.useCacheDatabase = false; + option name: instances description: relevant instances e.g. positive and negative examples in a learning problem allowed values: Set<String> @@ -215,8 +221,8 @@ conf file usage: owlAPIReasoner.reasonerType = pellet; -component: unnamed component (org.dllearner.reasoning.PelletReasoner) -===================================================================== +component: Pellet reasoner (org.dllearner.reasoning.PelletReasoner) +=================================================================== conf file usage: reasoner = null; @@ -227,6 +233,18 @@ conf file usage: null.defaultNegation = true; +component: Protege internal reasoner (org.dllearner.reasoning.ProtegeReasoner) +============================================================================== + +conf file usage: reasoner = null; + +option name: defaultNegation +description: Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class. +allowed values: boolean +default value: true +conf file usage: null.defaultNegation = true; + + ********************* * Learning Problems * ********************* @@ -254,7 +272,25 @@ default value: true conf file usage: classLearning.useApproximations = true; +option name: approxAccuracy +description: accuracy of the approximation (only for expert use) +allowed values: double +default value: 0.05 +conf file usage: classLearning.approxAccuracy = 0.05; +option name: accuracyMethod +description: Specifies, which method/function to use for computing accuracy. +allowed values: String [fmeasure, generalised_fmeasure, jaccard, pred_acc, standard] +default value: standard +conf file usage: classLearning.accuracyMethod = standard; + +option name: checkConsistency +description: Specify whether to check consistency for solution candidates. This is convenient for user interfaces, but can be performance intensive. +allowed values: boolean +default value: true +conf file usage: classLearning.checkConsistency = true; + + component: pos neg learning problem (org.dllearner.learningproblems.PosNegLPStandard) ===================================================================================== @@ -290,7 +326,25 @@ default value: twoChecks conf file usage: posNegLPStandard.useMultiInstanceChecks = twoChecks; +option name: useApproximations +description: whether to use stochastic approximations for computing accuracy +allowed values: boolean +default value: false +conf file usage: posNegLPStandard.useApproximations = false; +option name: approxAccuracy +description: accuracy of the approximation (only for expert use) +allowed values: double +default value: 0.05 +conf file usage: posNegLPStandard.approxAccuracy = 0.05; + +option name: accuracyMethod +description: Specifies, which method/function to use for computing accuracy. +allowed values: String [fmeasure, predacc] +default value: predacc +conf file usage: posNegLPStandard.accuracyMethod = predacc; + + component: three valued definition learning problem (org.dllearner.learningproblems.PosNegLPStrict) =================================================================================================== @@ -420,6 +474,12 @@ default value: false conf file usage: celoe.useHasValueConstructor = false; +option name: useDataHasValueConstructor +description: specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties +allowed values: boolean +default value: false +conf file usage: celoe.useDataHasValueConstructor = false; + option name: valueFrequencyThreshold description: specifies how often an object must occur as value in order to be considered for hasValue restrictions allowed values: int @@ -480,13 +540,43 @@ default value: 10 conf file usage: celoe.maxNrOfResults = 10; +option name: singleSuggestionMode +description: Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples. +allowed values: boolean +default value: false +conf file usage: celoe.singleSuggestionMode = false; +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: celoe.instanceBasedDisjoints = true; + +option name: filterDescriptionsFollowingFromKB +description: If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions. +allowed values: boolean +default value: false +conf file usage: celoe.filterDescriptionsFollowingFromKB = false; + +option name: reuseExistingDescription +description: If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base. +allowed values: boolean +default value: false +conf file usage: celoe.reuseExistingDescription = false; + + component: standard EL learning algorithm (org.dllearner.algorithms.el.ELLearningAlgorithm) =========================================================================================== conf file usage: algorithm = el; +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: el.instanceBasedDisjoints = true; + component: disjunctive EL learning algorithm (org.dllearner.algorithms.el.ELLearningAlgorithmDisjunctive) ========================================================================================================= @@ -504,7 +594,13 @@ default value: not set conf file usage: disjunctiveEL.startClass = ; +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: disjunctiveEL.instanceBasedDisjoints = true; + component: genetic programming learning algorithm (org.dllearner.algorithms.gp.GP) ================================================================================== @@ -613,6 +709,120 @@ conf file usage: gp.maxConceptLength = 75; +component: ISLE (org.dllearner.algorithms.isle.ISLE) +==================================================== + +conf file usage: algorithm = null; + +option name: useAllConstructor +description: specifies whether the universal concept constructor is used in the learning algorithm +allowed values: boolean +default value: true +conf file usage: null.useAllConstructor = true; + +option name: useExistsConstructor +description: specifies whether the existential concept constructor is used in the learning algorithm +allowed values: boolean +default value: true +conf file usage: null.useExistsConstructor = true; + +option name: useHasValueConstructor +description: specifies whether the hasValue constructor is used in the learning algorithm +allowed values: boolean +default value: false +conf file usage: null.useHasValueConstructor = false; + +option name: useDataHasValueConstructor +description: specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties +allowed values: boolean +default value: false +conf file usage: null.useDataHasValueConstructor = false; + +option name: valueFrequencyThreshold +description: specifies how often an object must occur as value in order to be considered for hasValue restrictions +allowed values: int +default value: 3 +conf file usage: null.valueFrequencyThreshold = 3; + +option name: useCardinalityRestrictions +description: specifies whether CardinalityRestrictions is used in the learning algorithm +allowed values: boolean +default value: true +conf file usage: null.useCardinalityRestrictions = true; + +option name: cardinalityLimit +description: Gives the maximum number used in cardinality restrictions. +allowed values: int +default value: 5 +conf file usage: null.cardinalityLimit = 5; + +option name: useNegation +description: specifies whether negation is used in the learning algorothm +allowed values: boolean +default value: false +conf file usage: null.useNegation = false; + +option name: useBooleanDatatypes +description: specifies whether boolean datatypes are used in the learning algorothm +allowed values: boolean +default value: true +conf file usage: null.useBooleanDatatypes = true; + +option name: useDoubleDatatypes +description: specifies whether boolean datatypes are used in the learning algorothm +allowed values: boolean +default value: true +conf file usage: null.useDoubleDatatypes = true; + +option name: maxExecutionTimeInSeconds +description: algorithm will stop after specified seconds +allowed values: int +default value: 10 +conf file usage: null.maxExecutionTimeInSeconds = 10; + +option name: noisePercentage +description: the (approximated) percentage of noise within the examples +allowed values: double min 0.0 max 100.0 +default value: 0.0 +conf file usage: null.noisePercentage = 0.0; + +option name: maxDepth +description: maximum depth of description +allowed values: int +default value: 7 +conf file usage: null.maxDepth = 7; + +option name: maxNrOfResults +description: Sets the maximum number of results one is interested in. (Setting this to a lower value may increase performance as the learning algorithm has to store/evaluate/beautify less descriptions). +allowed values: int min 1 max 100 +default value: 10 +conf file usage: null.maxNrOfResults = 10; + +option name: singleSuggestionMode +description: Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples. +allowed values: boolean +default value: false +conf file usage: null.singleSuggestionMode = false; + +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: null.instanceBasedDisjoints = true; + +option name: filterDescriptionsFollowingFromKB +description: If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions. +allowed values: boolean +default value: false +conf file usage: null.filterDescriptionsFollowingFromKB = false; + +option name: reuseExistingDescription +description: If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base. +allowed values: boolean +default value: false +conf file usage: null.reuseExistingDescription = false; + + component: refinement operator based learning algorithm (org.dllearner.algorithms.refinement.ROLearner) ======================================================================================================= @@ -768,7 +978,13 @@ default value: DEBUG conf file usage: refinement.logLevel = DEBUG; +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: refinement.instanceBasedDisjoints = true; + component: refinement operator based learning algorithm II (org.dllearner.algorithms.refinement2.ROLComponent2) =============================================================================================================== @@ -852,18 +1068,6 @@ default value: not set conf file usage: refexamples.ignoredConcepts = ; -option name: allowedRoles -description: roles the algorithm is allowed to use -allowed values: Set<String> -default value: not set -conf file usage: refexamples.allowedRoles = ; - -option name: ignoredRoles -description: roles the algorithm must ignore -allowed values: Set<String> -default value: not set -conf file usage: refexamples.ignoredRoles = ; - option name: useAllConstructor description: specifies whether the universal concept constructor is used in the learning algorithm allowed values: boolean @@ -882,6 +1086,12 @@ default value: false conf file usage: refexamples.useHasValueConstructor = false; +option name: useDataHasValueConstructor +description: specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties +allowed values: boolean +default value: false +conf file usage: refexamples.useDataHasValueConstructor = false; + option name: valueFrequencyThreshold description: specifies how often an object must occur as value in order to be considered for hasValue restrictions allowed values: int @@ -1008,4 +1218,10 @@ default value: 0.02 conf file usage: refexamples.expansionPenaltyFactor = 0.02; +option name: instanceBasedDisjoints +description: Specifies whether to use real disjointness checks or instance based ones (no common instances) in the refinement operator. +allowed values: boolean +default value: true +conf file usage: refexamples.instanceBasedDisjoints = true; + Modified: trunk/src/dl-learner/org/dllearner/components.ini =================================================================== --- trunk/src/dl-learner/org/dllearner/components.ini 2010-06-06 18:30:16 UTC (rev 2161) +++ trunk/src/dl-learner/org/dllearner/components.ini 2010-06-13 14:06:21 UTC (rev 2162) @@ -10,6 +10,7 @@ org.dllearner.reasoning.DIGReasoner org.dllearner.reasoning.FastRetrievalReasoner org.dllearner.reasoning.FastInstanceChecker +org.dllearner.reasoning.ProtegeReasoner org.dllearner.reasoning.PelletReasoner # learning problems org.dllearner.learningproblems.PosNegLPStandard Modified: trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java 2010-06-06 18:30:16 UTC (rev 2161) +++ trunk/src/dl-learner/org/dllearner/core/configurators/ComponentFactory.java 2010-06-13 14:06:21 UTC (rev 2162) @@ -48,6 +48,7 @@ import org.dllearner.reasoning.FastRetrievalReasoner; import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.reasoning.PelletReasoner; +import org.dllearner.reasoning.ProtegeReasoner; /** * automatically generated, do not edit manually. @@ -129,6 +130,14 @@ } /** +* @param knowledgeSource see KnowledgeSource +* @return a component ready for initialization ProtegeReasoner +**/ +public static ProtegeReasoner getProtegeReasoner(Set<KnowledgeSource> knowledgeSource) { +return ProtegeReasonerConfigurator.getProtegeReasoner(knowledgeSource); +} + +/** * @param classToDescribe class of which a description should be learned * @param reasoningService see ReasoningService * @return a component ready for initialization ClassLearningProblem Added: trunk/src/dl-learner/org/dllearner/core/configurators/ProtegeReasonerConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/ProtegeReasonerConfigurator.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/core/configurators/ProtegeReasonerConfigurator.java 2010-06-13 14:06:21 UTC (rev 2162) @@ -0,0 +1,84 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package org.dllearner.core.configurators; + +import java.util.Set; +import org.dllearner.core.ComponentManager; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.reasoning.ProtegeReasoner; + +/** +* automatically generated, do not edit manually. +* run org.dllearner.scripts.ConfigJavaGenerator to update +**/ +public class ProtegeReasonerConfigurator implements Configurator { + +private boolean reinitNecessary = false; +@SuppressWarnings("unused") + +private ProtegeReasoner protegeReasoner; + +/** +* @param protegeReasoner see ProtegeReasoner +**/ +public ProtegeReasonerConfigurator(ProtegeReasoner protegeReasoner){ +this.protegeReasoner = protegeReasoner; +} + +/** +* @param knowledgeSource see knowledgeSource +* @return ProtegeReasoner +**/ +public static ProtegeReasoner getProtegeReasoner(Set<KnowledgeSource> knowledgeSource) { +ProtegeReasoner component = ComponentManager.getInstance().reasoner(ProtegeReasoner.class, knowledgeSource); +return component; +} + +/** +* defaultNegation Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.. +* mandatory: false| reinit necessary: true +* default value: true +* @return boolean +**/ +public boolean getDefaultNegation() { +return (Boolean) ComponentManager.getInstance().getConfigOptionValue(protegeReasoner, "defaultNegation") ; +} + +/** +* @param defaultNegation Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.. +* mandatory: false| reinit necessary: true +* default value: true +**/ +public void setDefaultNegation(boolean defaultNegation) { +ComponentManager.getInstance().applyConfigEntry(protegeReasoner, "defaultNegation", defaultNegation); +reinitNecessary = true; +} + +/** +* true, if this component needs reinitializsation. +* @return boolean +**/ +public boolean isReinitNecessary(){ +return reinitNecessary; +} + + +} Modified: trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-06-06 18:30:16 UTC (rev 2161) +++ trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-06-13 14:06:21 UTC (rev 2162) @@ -1281,7 +1281,6 @@ NodeSet<OWLClass> set = reasoner.getObjectPropertyRanges(prop, true); if (set.isEmpty()) return new Thing(); -// OWLClass oc = set.iterator().next().getRepresentativeElement(); return getDescriptionFromReturnedDomain(set); } Added: trunk/src/dl-learner/org/dllearner/reasoning/ProtegeReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/ProtegeReasoner.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/reasoning/ProtegeReasoner.java 2010-06-13 14:06:21 UTC (rev 2162) @@ -0,0 +1,1449 @@ +package org.dllearner.reasoning; + +import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.Map.Entry; + +import org.dllearner.core.ComponentInitException; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.ReasoningMethodUnsupportedException; +import org.dllearner.core.configurators.ProtegeReasonerConfigurator; +import org.dllearner.core.options.BooleanConfigOption; +import org.dllearner.core.options.ConfigOption; +import org.dllearner.core.owl.Axiom; +import org.dllearner.core.owl.BooleanValueRestriction; +import org.dllearner.core.owl.Constant; +import org.dllearner.core.owl.DataRange; +import org.dllearner.core.owl.Datatype; +import org.dllearner.core.owl.DatatypeProperty; +import org.dllearner.core.owl.DatatypeSomeRestriction; +import org.dllearner.core.owl.Description; +import org.dllearner.core.owl.DoubleMaxValue; +import org.dllearner.core.owl.DoubleMinValue; +import org.dllearner.core.owl.Entity; +import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.Intersection; +import org.dllearner.core.owl.KB; +import org.dllearner.core.owl.NamedClass; +import org.dllearner.core.owl.Negation; +import org.dllearner.core.owl.Nothing; +import org.dllearner.core.owl.ObjectAllRestriction; +import org.dllearner.core.owl.ObjectCardinalityRestriction; +import org.dllearner.core.owl.ObjectMaxCardinalityRestriction; +import org.dllearner.core.owl.ObjectMinCardinalityRestriction; +import org.dllearner.core.owl.ObjectProperty; +import org.dllearner.core.owl.ObjectPropertyExpression; +import org.dllearner.core.owl.ObjectSomeRestriction; +import org.dllearner.core.owl.ObjectValueRestriction; +import org.dllearner.core.owl.Thing; +import org.dllearner.core.owl.TypedConstant; +import org.dllearner.core.owl.Union; +import org.dllearner.core.owl.UntypedConstant; +import org.dllearner.kb.OWLAPIOntology; +import org.dllearner.kb.OWLFile; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.utilities.Helper; +import org.dllearner.utilities.owl.ConceptComparator; +import org.dllearner.utilities.owl.ConceptTransformation; +import org.dllearner.utilities.owl.DLLearnerDescriptionConvertVisitor; +import org.dllearner.utilities.owl.OWLAPIAxiomConvertVisitor; +import org.dllearner.utilities.owl.OWLAPIConverter; +import org.dllearner.utilities.owl.OWLAPIDescriptionConvertVisitor; +import org.dllearner.utilities.owl.RoleComparator; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.AddAxiom; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLAnnotation; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLDataProperty; +import org.semanticweb.owlapi.model.OWLDataRange; +import org.semanticweb.owlapi.model.OWLEntity; +import org.semanticweb.owlapi.model.OWLLiteral; +import org.semanticweb.owlapi.model.OWLNamedIndividual; +import org.semanticweb.owlapi.model.OWLNamedObject; +import org.semanticweb.owlapi.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.OWLObjectPropertyExpression; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyChangeException; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyFormat; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.model.OWLOntologyStorageException; +import org.semanticweb.owlapi.model.OWLTypedLiteral; +import org.semanticweb.owlapi.model.RemoveAxiom; +import org.semanticweb.owlapi.model.UnknownOWLOntologyException; +import org.semanticweb.owlapi.reasoner.Node; +import org.semanticweb.owlapi.reasoner.NodeSet; +import org.semanticweb.owlapi.reasoner.OWLReasoner; +import org.semanticweb.owlapi.util.SimpleIRIMapper; +import org.semanticweb.owlapi.vocab.PrefixOWLOntologyFormat; + +import uk.ac.manchester.cs.owl.owlapi.OWLStringLiteralImpl; + +public class ProtegeReasoner extends ReasonerComponent { + + private OWLOntologyManager manager; + private OWLOntology ontology; + private OWLDataFactory factory; + private OWLReasoner reasoner; + + private ProtegeReasonerConfigurator configurator; + + private Set<OWLOntology> loadedOntologies; + + private ConceptComparator conceptComparator = new ConceptComparator(); + private RoleComparator roleComparator = new RoleComparator(); + + Set<NamedClass> atomicConcepts = new TreeSet<NamedClass>(conceptComparator); + Set<ObjectProperty> atomicRoles = new TreeSet<ObjectProperty>(roleComparator); + SortedSet<DatatypeProperty> datatypeProperties = new TreeSet<DatatypeProperty>(); + SortedSet<DatatypeProperty> booleanDatatypeProperties = new TreeSet<DatatypeProperty>(); + SortedSet<DatatypeProperty> doubleDatatypeProperties = new TreeSet<DatatypeProperty>(); + SortedSet<DatatypeProperty> intDatatypeProperties = new TreeSet<DatatypeProperty>(); + SortedSet<DatatypeProperty> stringDatatypeProperties = new TreeSet<DatatypeProperty>(); + TreeSet<Individual> individuals = new TreeSet<Individual>(); + + + //CWA + // we use sorted sets (map indices) here, because they have only log(n) + // complexity for checking whether an element is contained in them + // instances of classes + private Map<NamedClass, TreeSet<Individual>> classInstancesPos = new TreeMap<NamedClass, TreeSet<Individual>>(); + private Map<NamedClass, TreeSet<Individual>> classInstancesNeg = new TreeMap<NamedClass, TreeSet<Individual>>(); + // object property mappings + private Map<ObjectProperty, Map<Individual, SortedSet<Individual>>> opPos = new TreeMap<ObjectProperty, Map<Individual, SortedSet<Individual>>>(); + // datatype property mappings + // we have one mapping for true and false for efficiency reasons + private Map<DatatypeProperty, TreeSet<Individual>> bdPos = new TreeMap<DatatypeProperty, TreeSet<Individual>>(); + private Map<DatatypeProperty, TreeSet<Individual>> bdNeg = new TreeMap<DatatypeProperty, TreeSet<Individual>>(); + // for int and double we assume that a property can have several values, + // althoug this should be rare, + // e.g. hasValue(object,2) and hasValue(object,3) + private Map<DatatypeProperty, Map<Individual, SortedSet<Double>>> dd = new TreeMap<DatatypeProperty, Map<Individual, SortedSet<Double>>>(); + private Map<DatatypeProperty, Map<Individual, SortedSet<Integer>>> id = new TreeMap<DatatypeProperty, Map<Individual, SortedSet<Integer>>>(); + + + // namespaces + private Map<String, String> prefixes = new TreeMap<String,String>(); + private String baseURI; + + // references to OWL API ontologies + private List<OWLOntology> owlAPIOntologies = new LinkedList<OWLOntology>(); + + public ProtegeReasoner(Set<KnowledgeSource> sources) { + super(sources); + this.configurator = new ProtegeReasonerConfigurator(this); + } + + public ProtegeReasoner(Set<KnowledgeSource> sources, OWLReasoner reasoner) { + this(sources); + this.reasoner = reasoner; + } + + + public boolean isConsistent(){ + return reasoner.isConsistent(); + } + + @Override + public ReasonerType getReasonerType() { + return ReasonerType.PROTEGE; + } + + @Override + public void releaseKB() { + reasoner.dispose(); + } + + @Override + public ProtegeReasonerConfigurator getConfigurator() { + return configurator; + } + + /** + * @return The options of this component. + */ + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + + options.add(new BooleanConfigOption("defaultNegation", "Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.", true, false, true)); + + return options; + } + + public OWLOntologyManager getOWLOntologyManager(){ + return manager; + } + + public void setOWLReasoner(OWLReasoner owlReasoner){ + this.reasoner = owlReasoner; + } + + @Override + public void init() throws ComponentInitException { + // reset variables (otherwise subsequent initialisation with + // different knowledge sources will merge both) + atomicConcepts = new TreeSet<NamedClass>(conceptComparator); + atomicRoles = new TreeSet<ObjectProperty>(roleComparator); + datatypeProperties = new TreeSet<DatatypeProperty>(); + booleanDatatypeProperties = new TreeSet<DatatypeProperty>(); + doubleDatatypeProperties = new TreeSet<DatatypeProperty>(); + intDatatypeProperties = new TreeSet<DatatypeProperty>(); + individuals = new TreeSet<Individual>(); + + // create OWL API ontology manager + manager = OWLManager.createOWLOntologyManager(); + factory = manager.getOWLDataFactory(); + + + ////////////////////////////////////////// + // + // + // + Comparator<OWLNamedObject> namedObjectComparator = new Comparator<OWLNamedObject>() { + public int compare(OWLNamedObject o1, OWLNamedObject o2) { + return o1.getIRI().compareTo(o2.getIRI()); + } + }; + Set<OWLClass> classes = new TreeSet<OWLClass>(namedObjectComparator); + Set<OWLObjectProperty> owlObjectProperties = new TreeSet<OWLObjectProperty>( + namedObjectComparator); + Set<OWLDataProperty> owlDatatypeProperties = new TreeSet<OWLDataProperty>( + namedObjectComparator); + Set<OWLNamedIndividual> owlIndividuals = new TreeSet<OWLNamedIndividual>( + namedObjectComparator); + loadedOntologies = new HashSet<OWLOntology>(); + Set<OWLOntology> allImports = new HashSet<OWLOntology>(); + prefixes = new TreeMap<String, String>(); + + for (KnowledgeSource source : sources) { + + if (source instanceof OWLFile + || source instanceof SparqlKnowledgeSource + || source instanceof OWLAPIOntology) { + URL url = null; + if (source instanceof OWLFile) { + url = ((OWLFile) source).getURL(); + } + +// try { + + if (source instanceof OWLAPIOntology) { + ontology = ((OWLAPIOntology) source).getOWLOntolgy(); + } else if (source instanceof SparqlKnowledgeSource) { + ontology = ((SparqlKnowledgeSource) source).getOWLAPIOntology(); + manager = ontology.getOWLOntologyManager(); + } else { + try { + ontology = manager.loadOntologyFromOntologyDocument(IRI.create(url + .toURI())); + } catch (OWLOntologyCreationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + owlAPIOntologies.add(ontology); + classes.addAll(ontology.getClassesInSignature(true)); + owlObjectProperties.addAll(ontology.getObjectPropertiesInSignature(true)); + owlDatatypeProperties.addAll(ontology.getDataPropertiesInSignature(true)); + owlIndividuals.addAll(ontology.getIndividualsInSignature(true)); + + // if several knowledge sources are included, then we can + // only + // guarantee that the base URI is from one of those sources + // (there + // can't be more than one); but we will take care that all + // prefixes are + // correctly imported + OWLOntologyFormat format = manager.getOntologyFormat(ontology); + if (format instanceof PrefixOWLOntologyFormat) { + prefixes.putAll(((PrefixOWLOntologyFormat) format).getPrefixName2PrefixMap()); + baseURI = ((PrefixOWLOntologyFormat) format).getDefaultPrefix(); + prefixes.remove(""); + } + + // read in primitives + for(OWLClass owlClass : classes) + atomicConcepts.add(new NamedClass(owlClass.toStringID())); + for(OWLObjectProperty owlProperty : owlObjectProperties) + atomicRoles.add(new ObjectProperty(owlProperty.toStringID())); + for(OWLDataProperty owlProperty : owlDatatypeProperties) { + DatatypeProperty dtp = new DatatypeProperty(owlProperty.toStringID()); + Set<OWLDataRange> ranges = owlProperty.getRanges(allImports); + for(OWLDataRange range : ranges){ + if(range.isDatatype()) { + if(range.asOWLDatatype().isBoolean()) + booleanDatatypeProperties.add(dtp); + else if(range.asOWLDatatype().isDouble()) + doubleDatatypeProperties.add(dtp); + else if(range.asOWLDatatype().isInteger()) + intDatatypeProperties.add(dtp); + else if(range.asOWLDatatype().isString()) + stringDatatypeProperties.add(dtp); + } + } + datatypeProperties.add(dtp); + } + for(OWLNamedIndividual owlIndividual : owlIndividuals) { + individuals.add(new Individual(owlIndividual.toStringID())); + } + +// } catch (OWLOntologyCreationException e) { +// e.printStackTrace(); +// } catch (URISyntaxException e) { +// e.printStackTrace(); +// } + // all other sources are converted to KB and then to an + // OWL API ontology + } else { + KB kb = source.toKB(); + // System.out.println(kb.toString(null,null)); + + IRI ontologyIRI = IRI.create("http://example.com"); + ontology = null; + try { + ontology = manager.createOntology(ontologyIRI); + } catch (OWLOntologyCreationException e) { + e.printStackTrace(); + } + OWLAPIAxiomConvertVisitor + .fillOWLOntology(manager, ontology, kb); + owlAPIOntologies.add(ontology); + allImports.add(ontology); + atomicConcepts.addAll(kb.findAllAtomicConcepts()); + atomicRoles.addAll(kb.findAllAtomicRoles()); + individuals.addAll(kb.findAllIndividuals()); + // TODO: add method to find datatypes + } + } + dematerialise(); + } + + private void dematerialise(){ + long dematStartTime = System.currentTimeMillis(); + logger.debug("dematerialising concepts"); + + for (NamedClass atomicConcept : atomicConcepts) { + + SortedSet<Individual> pos = getIndividualsWithPellet(atomicConcept); + classInstancesPos.put(atomicConcept, (TreeSet<Individual>) pos); + if (configurator.getDefaultNegation()) { + classInstancesNeg.put(atomicConcept, (TreeSet<Individual>) Helper.difference(individuals, pos)); + } else { + Negation negatedAtomicConcept = new Negation(atomicConcept); + classInstancesNeg.put(atomicConcept, (TreeSet<Individual>) getIndividuals(negatedAtomicConcept)); + } + + } + + logger.debug("dematerialising object properties"); + + for (ObjectProperty atomicRole : atomicRoles) { + opPos.put(atomicRole, getPropertyMembers(atomicRole)); + } + + logger.debug("dematerialising datatype properties"); + + for (DatatypeProperty dp : booleanDatatypeProperties) { + bdPos.put(dp, (TreeSet<Individual>) getTrueDatatypeMembers(dp)); + bdNeg.put(dp, (TreeSet<Individual>) getFalseDatatypeMembers(dp)); + } + + for (DatatypeProperty dp : intDatatypeProperties) { + id.put(dp, getIntDatatypeMembers(dp)); + } + + for (DatatypeProperty dp : doubleDatatypeProperties) { + dd.put(dp, getDoubleDatatypeMembers(dp)); + } + + long dematDuration = System.currentTimeMillis() - dematStartTime; + logger.debug("TBox dematerialised in " + dematDuration + " ms"); + } + + + @Override + public String getBaseURI() { + return baseURI; + } + + @Override + public SortedSet<Individual> getIndividuals() { + return individuals; + } + + @Override + public Set<NamedClass> getNamedClasses() { + return Collections.unmodifiableSet(atomicConcepts); + } + + @Override + public Set<ObjectProperty> getObjectProperties() { + return Collections.unmodifiableSet(atomicRoles); + } + + @Override + public Map<String, String> getPrefixes() { + return prefixes; + } + + public Set<Description> getComplementClasses(Description desc){ + OWLClassExpression owlDesc = OWLAPIDescriptionConvertVisitor.getOWLClassExpression(desc); + Set<Description> complements = new HashSet<Description>(); + for(OWLClass comp : reasoner.getDisjointClasses(owlDesc, false).getFlattened()){ + complements.add(OWLAPIConverter.convertClass(comp)); + } + return complements; + + } + + @Override + public SortedSet<DatatypeProperty> getDatatypePropertiesImpl() { + return datatypeProperties; + } + + @Override + public boolean isSuperClassOfImpl(Description superConcept, Description subConcept) { + return reasoner.isEntailed(factory.getOWLSubClassOfAxiom(OWLAPIDescriptionConvertVisitor.getOWLClassExpression(subConcept), + OWLAPIDescriptionConvertVisitor.getOWLClassExpression(superConcept))); + } + + @Override + protected boolean isEquivalentClassImpl(Description class1, Description class2) { + return reasoner.isEntailed(factory.getOWLEquivalentClassesAxiom(OWLAPIDescriptionConvertVisitor.getOWLClassExpression(class1), + OWLAPIDescriptionConvertVisitor.getOWLClassExpression(class2))); + } + + @Override + protected TreeSet<Description> getSuperClassesImpl(Description concept) { + NodeSet<OWLClass> classes = null; + + classes = reasoner.getSuperClasses(OWLAPIDescriptionConvertVisitor.getOWLClassExpression(concept), true); + + return getFirstClasses(classes); + } + + @Override + protected TreeSet<Description> getSubClassesImpl(Description concept) { + NodeSet<OWLClass> classes = null; + + classes = reasoner.getSubClasses(OWLAPIDescriptionConvertVisitor.getOWLClassExpression(concept), true); + + return getFirstClasses(classes); + } + + @Override + protected TreeSet<ObjectProperty> getSuperPropertiesImpl(ObjectProperty role) { + NodeSet<OWLObjectProperty> properties = null; + + properties = reasoner.getSuperObjectProperties(OWLAPIConverter.getOWLAPIObjectProperty(role), true); + + return getFirstObjectProperties(properties); + } + + @Override + protected TreeSet<ObjectProperty> getSubPropertiesImpl(ObjectProperty role) { + NodeSet<OWLObjectProperty> properties = null; + + properties = reasoner.getSubObjectProperties(OWLAPIConverter.getOWLAPIObjectProperty(role), true); + + return getFirstObjectProperties(properties); + } + + @Override + protected TreeSet<DatatypeProperty> getSuperPropertiesImpl(DatatypeProperty role) { + NodeSet<OWLDataProperty> properties = null; + + properties = reasoner.getSuperDataProperties(OWLAPIConverter.getOWLAPIDataProperty(role), true); + + return getFirstDatatypeProperties(properties); + } + + @Override + protected TreeSet<DatatypeProperty> getSubPropertiesImpl(DatatypeProperty role) { + NodeSet<OWLDataProperty> properties = null; + + properties = reasoner.getSubDataProperties(OWLAPIConverter.getOWLAPIDataProperty(role), true); + + return getFirstDatatypeProperties(properties); + } + + @Override + public boolean hasTypeImpl(Description description, Individual individual) throws ReasoningMethodUnsupportedException { +// OWLClassExpression d = OWLAPIDescriptionConvertVisitor.getOWLClassExpression(concept); +// OWLIndividual i = factory.getOWLIndividual(URI.create(individual.getName())); +// try { +// return reasoner.hasType(i,d,false); +// } catch (OWLReasonerException e) { +// e.printStackTrace(); +// throw new Error("Instance check error in OWL API."); +// } + if (description instanceof NamedClass) { + return classInstancesPos.get((NamedClass) description).contains(individual); + } else if (description instanceof Negation) { + Description child = description.getChild(0); + if (child instanceof NamedClass) { + return classInstancesNeg.get((NamedClass) child).contains(individual); + } else { + // default negation + if(configurator.getDefaultNegation()) { + return !hasTypeImpl(child, individual); + } else { + logger.debug("Converting description to negation normal form in fast instance check (should be avoided if possible)."); + Description nnf = ConceptTransformation.transformToNegationNormalForm(child); + return hasTypeImpl(nnf, individual); + } +// throw new ReasoningMethodUnsupportedException("Instance check for description " +// + description +// + " unsupported. Description needs to be in negation normal form."); + } + } else if (description instanceof Thing) { + return true; + } else if (description instanceof Nothing) { + return false; + } else if (description instanceof Union) { + // if the individual is instance of any of the subdescription of + // the union, we return true + List<Description> children = description.getChildren(); + for (Description child : children) { + if (hasTypeImpl(child, individual)) { + return true; + } + } + return false; + } else if (description instanceof Intersection) { + // if the individual is instance of all of the subdescription of + // the union, we return true + List<Description> children = description.getChildren(); + for (Description child : children) { + if (!hasTypeImpl(child, individual)) { + return false; + } + } + return true; + } else if (description instanceof ObjectSomeRestriction) { + ObjectPropertyExpression ope = ((ObjectSomeRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + + if (mapping == null) { + logger.warn("Instance check of a description with an undefinied property (" + op + + ")."); + return false; + } + SortedSet<Individual> roleFillers = opPos.get(op).get(individual); + if (roleFillers == null) { + return false; + } + for (Individual roleFiller : roleFillers) { + if (hasTypeImpl(child, roleFiller)) { + return true; + } + } + return false; + } else if (description instanceof ObjectAllRestriction) { + ObjectPropertyExpression ope = ((ObjectAllRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + + if (mapping == null) { + logger.warn("Instance check of a description with an undefinied property (" + op + + ")."); + return true; + } + SortedSet<Individual> roleFillers = opPos.get(op).get(individual); + if (roleFillers == null) { + return true; + } + for (Individual roleFiller : roleFillers) { + if (!hasTypeImpl(child, roleFiller)) { + return false; + } + } + return true; + } else if (description instanceof ObjectMinCardinalityRestriction) { + ObjectPropertyExpression ope = ((ObjectCardinalityRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + + if (mapping == null) { + logger.warn("Instance check of a description with an undefinied property (" + op + + ")."); + return true; + } + + int number = ((ObjectCardinalityRestriction) description).getNumber(); + int nrOfFillers = 0; + +// SortedSet<Individual> roleFillers = opPos.get(op).get(individual); + SortedSet<Individual> roleFillers = mapping.get(individual); +// System.out.println(roleFillers); + + // special case: there are always at least zero fillers + if (number == 0) { + return true; + } + // return false if there are none or not enough role fillers + if (roleFillers == null || roleFillers.size() < number) { + return false; + } + + int index = 0; + for (Individual roleFiller : roleFillers) { + index++; + if (hasTypeImpl(child, roleFiller)) { + nrOfFillers++; + if (nrOfFillers == number) { + return true; + } + // early abort: e.g. >= 10 hasStructure.Methyl; + // if there are 11 fillers and 2 are not Methyl, the result + // is false + } else { + if (roleFillers.size() - index < number) { + return false; + } + } + } + return false; + } else if (description instanceof ObjectMaxCardinalityRestriction) { + ObjectPropertyExpression ope = ((ObjectCardinalityRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + + if (mapping == null) { + logger.warn("Instance check of a description with an undefinied property (" + op + + ")."); + return true; + } + + int number = ((ObjectCardinalityRestriction) description).getNumber(); + int nrOfFillers = 0; + + SortedSet<Individual> roleFillers = opPos.get(op).get(individual); + // return true if there are none or not enough role fillers + if (roleFillers == null || roleFillers.size() < number) { + return true; + } + + int index = 0; + for (Individual roleFiller : roleFillers) { + index++; + if (hasTypeImpl(child, roleFiller)) { + nrOfFillers++; + if (nrOfFillers > number) { + return false; + } + // early abort: e.g. <= 5 hasStructure.Methyl; + // if there are 6 fillers and 2 are not Methyl, the result + // is true + } else { + if (roleFillers.size() - index <= number) { + return true; + } + } + } + return true; + } else if (description instanceof ObjectValueRestriction) { + Individual i = ((ObjectValueRestriction)description).getIndividual(); + ObjectProperty op = (ObjectProperty) ((ObjectValueRestriction)description).getRestrictedPropertyExpression(); + + Set<Individual> inds = opPos.get(op).get(individual); + return inds == null ? false : inds.contains(i); + } else if (description instanceof BooleanValueRestriction) { + DatatypeProperty dp = ((BooleanValueRestriction) description) + .getRestrictedPropertyExpression(); + boolean value = ((BooleanValueRestriction) description).getBooleanValue(); + + if (value) { + // check whether the individual is in the set of individuals + // mapped + // to true by this datatype property + return bdPos.get(dp).contains(individual); + } else { + return bdNeg.get(dp).contains(individual); + } + } else if (description instanceof DatatypeSomeRestriction) { + DatatypeSomeRestriction dsr = (DatatypeSomeRestriction) description; + DatatypeProperty dp = (DatatypeProperty) dsr.getRestrictedPropertyExpression(); + DataRange dr = dsr.getDataRange(); + SortedSet<Double> values = dd.get(dp).get(individual); + + // if there is no filler for this individual and property we + // need to return false + if (values == null) { + return false; + } + + if (dr instanceof DoubleMaxValue) { + return (values.first() <= ((DoubleMaxValue) dr).getValue()); + } else if (dr instanceof DoubleMinValue) { + return (values.last() >= ((DoubleMinValue) dr).getValue()); + } + } + + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported."); + + } + + private SortedSet<Individual> getIndividualsWithPellet(Description concept){ + + OWLClassExpression d = OWLAPIDescriptionConvertVisitor.getOWLClassExpression(concept); + Set<OWLNamedIndividual> individuals = reasoner.getInstances(d, false).getFlattened(); + SortedSet<Individual> inds = new TreeSet<Individual>(); + for(OWLNamedIndividual ind : individuals) + inds.add(new Individual(ind.toStringID())); + return inds; + } + + @Override + public SortedSet<Individual> getIndividualsImpl(Description concept) throws ReasoningMethodUnsupportedException{ +// +// OWLClassExpression d = OWLAPIDescriptionConvertVisitor.getOWLClassExpression(concept); +// Set<OWLIndividual> individuals = null; +// +// individuals = reasoner.getIndividuals(d, false); +// +// SortedSet<Individual> inds = new TreeSet<Individual>(); +// for(OWLIndividual ind : individuals) +// inds.add(new Individual(ind.getURI().toString())); +// return inds; + return getIndividualsImplFast(concept); + } + + public SortedSet<Individual> getIndividualsImplStandard(Description concept) + throws ReasoningMethodUnsupportedException { + if (concept instanceof NamedClass) { + return classInstancesPos.get((NamedClass) concept); + } else if (concept instanceof Negation && concept.getChild(0) instanceof NamedClass) { + return classInstancesNeg.get((NamedClass) concept.getChild(0)); + } + + // return rs.retrieval(concept); + SortedSet<Individual> inds = new TreeSet<Individual>(); + for (Individual i : individuals) { + if (hasType(concept, i)) { + inds.add(i); + } + } + return inds; +} + +@SuppressWarnings("unchecked") +public SortedSet<Individual> getIndividualsImplFast(Description description) + throws ReasoningMethodUnsupportedException { + // policy: returned sets are clones, i.e. can be modified + // (of course we only have to clone the leafs of a class description tree) + if (description instanceof NamedClass) { + return (TreeSet<Individual>) classInstancesPos.get((NamedClass) description).clone(); + } else if (description instanceof Negation) { + if(description.getChild(0) instanceof NamedClass) { + return (TreeSet<Individual>) classInstancesNeg.get((NamedClass) description.getChild(0)).clone(); + } + // implement retrieval as default negation + return Helper.difference((TreeSet<Individual>) individuals.clone(), getIndividualsImpl(description.getChild(0))); + } else if (description instanceof Thing) { + return (TreeSet<Individual>) individuals.clone(); + } else if (description instanceof Nothing) { + return new TreeSet<Individual>(); + } else if (description instanceof Union) { + // copy instances of first element and then subtract all others + SortedSet<Individual> ret = getIndividualsImpl(description.getChild(0)); + int childNr = 0; + for(Description child : description.getChildren()) { + if(childNr != 0) { + ret.addAll(getIndividualsImpl(child)); + } + childNr++; + } + return ret; + } else if (description instanceof Intersection) { + // copy instances of first element and then subtract all others + SortedSet<Individual> ret = getIndividualsImpl(description.getChild(0)); + int childNr = 0; + for(Description child : description.getChildren()) { + if(childNr != 0) { + ret.retainAll(getIndividualsImpl(child)); + } + childNr++; + } + return ret; + } else if (description instanceof ObjectSomeRestriction) { + SortedSet<Individual> targetSet = getIndividualsImpl(description.getChild(0)); + SortedSet<Individual> returnSet = new TreeSet<Individual>(); + + ObjectPropertyExpression ope = ((ObjectSomeRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Retrieval for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + + // each individual is connected to a set of individuals via the property; + // we loop through the complete mapping + for(Entry<Individual, SortedSet<Individual>> entry : mapping.entrySet()) { + SortedSet<Individual> inds = entry.getValue(); + for(Individual ind : inds) { + if(targetSet.contains(ind)) { + returnSet.add(entry.getKey()); + // once we found an individual, we do not need to check the others + continue; + } + } + } + return returnSet; + } else if (description instanceof ObjectAllRestriction) { + // \forall restrictions are difficult to handle; assume we want to check + // \forall hasChild.male with domain(hasChild)=Person; then for all non-persons + // this is satisfied trivially (all of their non-existing children are male) +// if(!configurator.getForallRetrievalSemantics().equals("standard")) { +// throw new Error("Only forallExists semantics currently implemented."); +// } + + // problem: we need to make sure that \neg \exists r.\top \equiv \forall r.\bot + // can still be reached in an algorithm (\forall r.\bot \equiv \bot under forallExists + // semantics) + + SortedSet<Individual> targetSet = getIndividualsImpl(description.getChild(0)); + + ObjectPropertyExpression ope = ((ObjectAllRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); +// SortedSet<Individual> returnSet = new TreeSet<Individual>(mapping.keySet()); + SortedSet<Individual> returnSet = (SortedSet<Individual>) individuals.clone(); + + // each individual is connected to a set of individuals via the property; + // we loop through the complete mapping + for(Entry<Individual, SortedSet<Individual>> entry : mapping.entrySet()) { + SortedSet<Individual> inds = entry.getValue(); + for(Individual ind : inds) { + if(!targetSet.contains(ind)) { + returnSet.remove(entry.getKey()); + continue; + } + } + } + return returnSet; + } else if (description instanceof ObjectMinCardinalityRestriction) { + ObjectPropertyExpression ope = ((ObjectCardinalityRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + SortedSet<Individual> targetSet = getIndividualsImpl(child); + SortedSet<Individual> returnSet = new TreeSet<Individual>(); + + int number = ((ObjectCardinalityRestriction) description).getNumber(); + + for(Entry<Individual, SortedSet<Individual>> entry : mapping.entrySet()) { + int nrOfFillers = 0; + int index = 0; + SortedSet<Individual> inds = entry.getValue(); + + // we do not need to run tests if there are not sufficiently many fillers + if(inds.size() < number) { + continue; + } + + for(Individual ind : inds) { + // stop inner loop when nr of fillers is reached + if(nrOfFillers >= number) { + returnSet.add(entry.getKey()); + break; + } + // early abort when too many instance checks failed + if (inds.size() - index < number) { + break; + } + if(targetSet.contains(ind)) { + nrOfFillers++; + } + index++; + } + } + + return returnSet; + } else if (description instanceof ObjectMaxCardinalityRestriction) { + ObjectPropertyExpression ope = ((ObjectCardinalityRestriction) description).getRole(); + if (!(ope instanceof ObjectProperty)) { + throw new ReasoningMethodUnsupportedException("Instance check for description " + + description + " unsupported. Inverse object properties not supported."); + } + ObjectProperty op = (ObjectProperty) ope; + Description child = description.getChild(0); + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + SortedSet<Individual> targetSet = getIndividualsImpl(child); + // initially all individuals are in the return set and we then remove those + // with too many fillers + SortedSet<Individual> returnSet = (SortedSet<Individual>) individuals.clone(); + + int number = ((ObjectCardinalityRestriction) description).getNumber(); + + for(Entry<Individual, SortedSet<Individual>> entry : mapping.entrySet()) { + int nrOfFillers = 0; + int index = 0; + SortedSet<Individual> inds = entry.getValue(); + + // we do not need to run tests if there are not sufficiently many fillers + if(number < inds.size()) { + returnSet.add(entry.getKey()); + continue; + } + + for(Individual ind : inds) { + // stop inner loop when nr of fillers is reached + if(nrOfFillers >= number) { + break; + } + // early abort when too many instance are true already + if (inds.size() - index < number) { + returnSet.add(entry.getKey()); + break; + } + if(targetSet.contains(ind)) { + nrOfFillers++; + } + index++; + } + } + + return returnSet; + } else if (description instanceof ObjectValueRestriction) { + Individual i = ((ObjectValueRestriction)description).getIndividual(); + ObjectProperty op = (ObjectProperty) ((ObjectValueRestriction)description).getRestrictedPropertyExpression(); + + Map<Individual, SortedSet<Individual>> mapping = opPos.get(op); + SortedSet<Individual... [truncated message content] |
From: <ku...@us...> - 2010-06-27 17:29:34
|
Revision: 2180 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2180&view=rev Author: kurzum Date: 2010-06-27 17:29:28 +0000 (Sun, 27 Jun 2010) Log Message: ----------- fixes in scripts fixed precision and recall formula in Examples Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/analyse/CountInstances.java trunk/src/dl-learner/org/dllearner/utilities/analyse/ScriptDoAll.java trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java Property Changed: ---------------- trunk/ trunk/examples/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin tigerResults dbpedia_3.4.owl dbpedia_3.4.owl.count dbpedia_3.4.owl.expanded.count dbpedia_3.4.owl.purged.ser dbpedia_3.4.owl.sub.ser dbpedia_3.4.owl.super.ser dbpedia_3.4.owl.tar.gz skoscategories_en.nt skoscategories_en.nt.count skoscategories_en.nt.expanded.count skoscategories_en.nt.purged.ser skoscategories_en.nt.sub.ser skoscategories_en.nt.super.ser skoscategories_en.nt.tar.gz yagoclasses_links.nt yagoclasses_links.nt.count yagoclasses_links.nt.expanded.count yagoclasses_links.nt.purged.ser yagoclasses_links.nt.sub.ser yagoclasses_links.nt.super.ser yagoclasses_links.nt.tar.gz target + .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files errorDescription bin tigerResults dbpedia_3.4.owl dbpedia_3.4.owl.count dbpedia_3.4.owl.expanded.count dbpedia_3.4.owl.purged.ser dbpedia_3.4.owl.sub.ser dbpedia_3.4.owl.super.ser dbpedia_3.4.owl.tar.gz skoscategories_en.nt skoscategories_en.nt.count skoscategories_en.nt.expanded.count skoscategories_en.nt.purged.ser skoscategories_en.nt.sub.ser skoscategories_en.nt.super.ser skoscategories_en.nt.tar.gz yagoclasses_links.nt yagoclasses_links.nt.count yagoclasses_links.nt.expanded.count yagoclasses_links.nt.purged.ser yagoclasses_links.nt.sub.ser yagoclasses_links.nt.super.ser yagoclasses_links.nt.tar.gz target dbpedia_3.4.owl (2) yagoclasses_links.nt (2) new.tar.gz dbpedia_3.5.1.owl dbpedia_3.5.1.owl.bz2 dbpedia_3.5.1.owl.count dbpedia_3.5.1.owl.expanded.count dbpedia_3.5.1.owl.purged.ser dbpedia_3.5.1.owl.sub.ser dbpedia_3.5.1.owl.super.ser Property changes on: trunk/examples ___________________________________________________________________ Modified: svn:ignore - nlp nodeExtractionBug.conf + nlp nodeExtractionBug.conf openanalytix Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-06-25 11:24:31 UTC (rev 2179) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-06-27 17:29:28 UTC (rev 2180) @@ -136,6 +136,11 @@ } + /** + * finalizes the patterns with a point + * @param toBePointed + * @return + */ private static String pointalize(String toBePointed){ if(toBePointed==null){ return ""; @@ -294,15 +299,38 @@ return getSparqlQuery(rewritten, resultLimit, false, false); } + + + public static void testHasValue() throws Exception{ +// String ttt = "(\"http://dbpedia.org/ontology/Plant\" AND (\"http://dbpedia.org/ontology/kingdom\" hasValue \"http://dbpedia.org/resource/Plantae\" OR EXISTS \"http://dbpedia.org/ontology/family\".\"http://dbpedia.org/ontology/FloweringPlant\"))"; + String ttt = "(\"http://dbpedia.org/ontology/Plant\" AND ((\"http://dbpedia.org/ontology/kingdom\" HASVALUE \"http://dbpedia.org/resource/Plantae\") OR EXISTS \"http://dbpedia.org/ontology/family\".\"http://dbpedia.org/ontology/FloweringPlant\"))"; + SparqlQueryDescriptionConvertVisitor testVisitor = new SparqlQueryDescriptionConvertVisitor(); + String q = testVisitor.getSparqlQuery(ttt); + System.out.println(q); + Description description = KBParser.parseConcept(ttt); + System.out.println(description.toString()); + System.out.println(description.toKBSyntaxString()); + System.out.println(description.toKBSyntaxString(null,null)); + if (true) { + System.exit(0); + } + + } /** * Used for testing the Sparql Query converter. * * @param args */ - public static void main(String[] args) { + public static void main(String[] args) throws Exception{ + + try { + + testHasValue(); + + SparqlQueryConverter.test(); - try { + SortedSet<String> s = new TreeSet<String>(); HashMap<String, String> result = new HashMap<String, String>(); HashMap<String, String> subclassMap = new HashMap<String, String>(); Modified: trunk/src/dl-learner/org/dllearner/utilities/analyse/CountInstances.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/analyse/CountInstances.java 2010-06-25 11:24:31 UTC (rev 2179) +++ trunk/src/dl-learner/org/dllearner/utilities/analyse/CountInstances.java 2010-06-27 17:29:28 UTC (rev 2180) @@ -1,5 +1,6 @@ package org.dllearner.utilities.analyse; +import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -15,7 +16,18 @@ public class CountInstances { - SPARQLTasks t = new SPARQLTasks(Cache.getDefaultCache(), SparqlEndpoint.getEndpointLOCALDBpedia()); + SPARQLTasks t; + + public CountInstances( String url , List<String> defaultGraphs){ + try{ + t = new SPARQLTasks(Cache.getDefaultCache(), + new SparqlEndpoint(new URL(url), defaultGraphs, new ArrayList<String>())); + }catch (Exception e) { + e.printStackTrace(); + } + + } + public class Count implements Comparable<Count>{ public Count(String uri, int count) { super(); Modified: trunk/src/dl-learner/org/dllearner/utilities/analyse/ScriptDoAll.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/analyse/ScriptDoAll.java 2010-06-25 11:24:31 UTC (rev 2179) +++ trunk/src/dl-learner/org/dllearner/utilities/analyse/ScriptDoAll.java 2010-06-27 17:29:28 UTC (rev 2180) @@ -2,6 +2,7 @@ import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,23 +25,25 @@ public static String dbns = "http://dbpedia.org/ontology/"; public static String yagons = "http://dbpedia.org/class/yago/"; + static CountInstances c = new CountInstances("http://db0.aksw.org:8893/sparql", Arrays.asList(new String[]{"http://dbpedia.org/ontology"})); + public static void main(String[] args) { @SuppressWarnings("unused") - String dbpediaFile = "dbpedia_3.4.owl"; + String dbpediaFile = "dbpedia_3.5.1.owl"; @SuppressWarnings("unused") String yagoFile = "yagoclasses_links.nt"; @SuppressWarnings("unused") String categoryFile = "skoscategories_en.nt"; doIt(dbpediaFile, "RDF/XML", subclassof, rdftype, dbns,false); - doIt(yagoFile, "N-TRIPLES", subclassof, rdftype, yagons,false); +// doIt(yagoFile, "N-TRIPLES", subclassof, rdftype, yagons,false); // doIt(categoryFile, "N-TRIPLES", broader, subject, catns, true); } public static void doIt(String file, String format, String relation, String type, String nsFilter, boolean noExpand){ - CountInstances c = new CountInstances(); + Map<String, SortedSet<String>> dbdown = new Hierarchy().getHierarchyDown(file, format, relation, noExpand); Files.writeObjectToFile(dbdown, new File(file+".sub.ser")); Map<String, SortedSet<String>> dbup = new Hierarchy().getHierarchyUp(file, format, relation, noExpand); @@ -96,7 +99,7 @@ if(expanded == null){ //just add this one, i.e. no subclasses - ret.add(new CountInstances().new Count(key, now)); + ret.add(c.new Count(key, now)); }else{ Integer add = null; for(String rel:expanded){ @@ -104,7 +107,7 @@ now += add; } } - ret.add(new CountInstances().new Count(key, now)); + ret.add(c.new Count(key, now)); } } Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-06-25 11:24:31 UTC (rev 2179) +++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-06-27 17:29:28 UTC (rev 2180) @@ -71,13 +71,18 @@ /** * calculates precision based on the test set + * CAVE: incorrect * @param retrieved * @return */ public double precision(SortedSet<String> retrieved){ if(retrieved.size()==0){return 0.0d;} - int posAsPos = Helper.intersection(retrieved, getPosTest()).size(); - return ((double)posAsPos)/((double)retrieved.size()); + SortedSet<String> retrievedClean = new TreeSet<String>(retrieved); + retrievedClean.removeAll(posTrain); + retrievedClean.removeAll(negTrain); + + int posAsPos = Helper.intersection(retrievedClean, getPosTest()).size(); + return ((double)posAsPos)/((double)retrievedClean.size()); } /** @@ -87,8 +92,12 @@ */ public double recall( SortedSet<String> retrieved){ if(sizeTotalOfPositives()==0){return 0.0d;} - int posAsPos = Helper.intersection(retrieved, getPosTest()).size(); - return ((double)posAsPos)/((double)sizeTotalOfPositives()); + SortedSet<String> retrievedClean = new TreeSet<String>(retrieved); + retrievedClean.removeAll(posTrain); + retrievedClean.removeAll(negTrain); + + int posAsPos = Helper.intersection(retrievedClean, getPosTest()).size(); + return ((double)posAsPos)/((double)posTest.size()); } private void _remove(String toBeRemoved ){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-07-13 16:58:31
|
Revision: 2195 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2195&view=rev Author: jenslehmann Date: 2010-07-13 16:58:22 +0000 (Tue, 13 Jul 2010) Log Message: ----------- evaluation mode for testing parameter combinations Modified Paths: -------------- trunk/examples/mutagenesis/train1.conf trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyEngineering.java Modified: trunk/examples/mutagenesis/train1.conf =================================================================== --- trunk/examples/mutagenesis/train1.conf 2010-07-09 20:00:32 UTC (rev 2194) +++ trunk/examples/mutagenesis/train1.conf 2010-07-13 16:58:22 UTC (rev 2195) @@ -1,8 +1,8 @@ import("mutagenesis.owl"); reasoner = fastInstanceChecker; -algorithm = refexamples; -refexamples.noisePercentage = 31; +algorithm = celoe; +refexamples.noisePercentage = 11; refexamples.startClass = "http://dl-learner.org/mutagenesis#Compound"; refexamples.writeSearchTree = false; refexamples.searchTreeFile = "log/mutagenesis/searchTree.log"; Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyEngineering.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyEngineering.java 2010-07-09 20:00:32 UTC (rev 2194) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyEngineering.java 2010-07-13 16:58:22 UTC (rev 2195) @@ -79,9 +79,12 @@ // for performance measurements and development private static boolean autoMode = true; - private static boolean useFastInstanceChecker = true; - private static boolean useApproximations = true; + // if set to true, this overrides the two options below and tests all four combinations => doesn't seem to work + private static boolean testFCIApprox = false; + private static boolean useFastInstanceChecker = false; + private static boolean useApproximations = false; private static boolean computeApproxDiff = true; + private static boolean useFMeasure = false; @SuppressWarnings("unchecked") public static void main(String[] args) throws ComponentInitException, @@ -93,9 +96,9 @@ if (args.length == 0) { System.out.println("You need to give an OWL file as argument."); System.exit(0); - } - + } + ComponentManager cm = ComponentManager.getInstance(); // load OWL in reasoner @@ -115,7 +118,28 @@ } reasoner.init(); System.out.println("Loaded ontology " + args[0] + "."); - + + if(testFCIApprox) { + useFastInstanceChecker = false; + useApproximations = false; + run(reasoner); + useFastInstanceChecker = false; + useApproximations = true; + run(reasoner); + useFastInstanceChecker = true; + useApproximations = false; + run(reasoner); + useFastInstanceChecker = true; + useApproximations = true; + run(reasoner); + } else { + run(reasoner); + } + } + + public static void run(ReasonerComponent reasoner) throws ComponentInitException, IOException, LearningProblemUnsupportedException { + ComponentManager cm = ComponentManager.getInstance(); + String baseURI = reasoner.getBaseURI(); Map<String, String> prefixes = reasoner.getPrefixes(); @@ -191,6 +215,9 @@ lp.getConfigurator().setType("superClass"); } lp.getConfigurator().setUseApproximations(useApproximations); + if(useFMeasure) { + lp.getConfigurator().setAccuracyMethod("fmeasure"); + } lp.init(); CELOE celoe = cm.learningAlgorithm(CELOE.class, lp, reasoner); @@ -380,7 +407,7 @@ System.out .println("knowledge engineering process finished successfully - summary shown below"); System.out.println(); - System.out.println("ontology: " + args[0]); +// System.out.println("ontology: " + args[0]); System.out.println("settings: " + minAccuracy + " min accuracy, " + minInstanceCount + " min instances, " + algorithmRuntimeInSeconds + "s algorithm runtime"); System.out.println("user input protocol: " + userInputProtocol); System.out.println("classes in ontology: " + classes.size()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-08-02 10:25:30
|
Revision: 2223 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2223&view=rev Author: jenslehmann Date: 2010-08-02 10:25:24 +0000 (Mon, 02 Aug 2010) Log Message: ----------- resolved 2 failed unit tests Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/test/junit/AllTestsRunner.java trunk/src/dl-learner/org/dllearner/test/junit/ELDownTests.java Added Paths: ----------- trunk/resources/test/ trunk/resources/test/MDM0.73.owl Removed Paths: ------------- trunk/examples/bugs/ Added: trunk/resources/test/MDM0.73.owl =================================================================== --- trunk/resources/test/MDM0.73.owl (rev 0) +++ trunk/resources/test/MDM0.73.owl 2010-08-02 10:25:24 UTC (rev 2223) @@ -0,0 +1,3227 @@ +<?xml version="1.0"?> + + +<!DOCTYPE rdf:RDF [ + <!ENTITY BMV "http://acl/BMV#" > + <!ENTITY owl "http://www.w3.org/2002/07/owl#" > + <!ENTITY swrl "http://www.w3.org/2003/11/swrl#" > + <!ENTITY swrlb "http://www.w3.org/2003/11/swrlb#" > + <!ENTITY owl11 "http://www.w3.org/2006/12/owl11#" > + <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > + <!ENTITY owl11xml "http://www.w3.org/2006/12/owl11-xml#" > + <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > + <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > +]> + + +<rdf:RDF xmlns="http://acl/BMV#" + xml:base="http://acl/BMV" + xmlns:BMV="http://acl/BMV#" + xmlns:owl11="http://www.w3.org/2006/12/owl11#" + xmlns:owl11xml="http://www.w3.org/2006/12/owl11-xml#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns:swrl="http://www.w3.org/2003/11/swrl#" + xmlns:swrlb="http://www.w3.org/2003/11/swrlb#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:owl="http://www.w3.org/2002/07/owl#"> + <owl:Ontology rdf:about=""/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + <rdf:Description rdf:about="http://www.w3.org/2006/12/owl11#disjointObjectProperties"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/> + </rdf:Description> + + <!-- http://acl/BMV#Disease_Attributes --> + + <owl:ObjectProperty rdf:about="#Disease_Attributes"> + <rdfs:domain rdf:resource="#DiseaseTypes"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasDeltaLevel --> + + <owl:ObjectProperty rdf:about="#hasDeltaLevel"> + <rdfs:range rdf:resource="#BiologicalLevelBasedOutcomes"/> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasDeltaRisk --> + + <owl:ObjectProperty rdf:about="#hasDeltaRisk"> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasDisease --> + + <owl:ObjectProperty rdf:about="#hasDisease"> + <rdfs:range rdf:resource="#DiseaseTypes"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasGrade --> + + <owl:ObjectProperty rdf:about="#hasGrade"> + <rdfs:subPropertyOf rdf:resource="#Disease_Attributes"/> + <rdfs:range rdf:resource="#Pathological_Grade"/> + <rdfs:domain rdf:resource="#DiseaseTypes"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasHRStatus --> + + <owl:ObjectProperty rdf:about="#hasHRStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:domain rdf:resource="#BreastAdenoCa"/> + <rdfs:range rdf:resource="#HRStatus"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasLNStatus --> + + <owl:ObjectProperty rdf:about="#hasLNStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:domain rdf:resource="#DiseaseTypes"/> + <rdfs:range rdf:resource="#LNStatus"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasMenopausalStatus --> + + <owl:ObjectProperty rdf:about="#hasMenopausalStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasNegIntent --> + + <owl:ObjectProperty rdf:about="#hasNegIntent"> + <rdfs:range rdf:resource="#TherapeuticType"/> + <owl11:disjointObjectProperties rdf:resource="#hasPosIntent"/> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasOutcome --> + + <owl:ObjectProperty rdf:about="#hasOutcome"> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasPathologicalType --> + + <owl:ObjectProperty rdf:about="#hasPathologicalType"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#Disease_Attributes"/> + <rdfs:domain rdf:resource="#DiseaseTypes"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasPosIntent --> + + <owl:ObjectProperty rdf:about="#hasPosIntent"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:range rdf:resource="#TherapeuticType"/> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasPrognosis --> + + <owl:ObjectProperty rdf:about="#hasPrognosis"/> + + + + <!-- http://acl/BMV#hasRisk --> + + <owl:ObjectProperty rdf:about="#hasRisk"> + <rdfs:domain rdf:resource="#Adults"/> + <rdfs:range rdf:resource="#Risk"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasStage --> + + <owl:ObjectProperty rdf:about="#hasStage"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#Disease_Attributes"/> + <rdfs:domain rdf:resource="#DiseaseTypes"/> + <rdfs:range rdf:resource="#DiseaseStage"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasSymptoms --> + + <owl:ObjectProperty rdf:about="#hasSymptoms"> + <rdfs:range rdf:resource="#PersistentSideEffects"/> + <rdfs:domain rdf:resource="#Adults"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasTreatment --> + + <owl:ObjectProperty rdf:about="#hasTreatment"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:domain rdf:resource="#Adults"/> + <rdfs:range rdf:resource="#TherapeuticType"/> + <owl11:disjointObjectProperties rdf:resource="#notHasTreatment"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#hasTreatmentComponent --> + + <owl:ObjectProperty rdf:about="#hasTreatmentComponent"> + <rdfs:domain rdf:resource="#TherapeuticType"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#notHasPrognosis --> + + <owl:ObjectProperty rdf:about="#notHasPrognosis"> + <owl11:disjointObjectProperties rdf:resource="#hasPrognosis"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#notHasTreatment --> + + <owl:ObjectProperty rdf:about="#notHasTreatment"> + <rdfs:domain rdf:resource="#Adults"/> + <rdfs:range rdf:resource="#TherapeuticType"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#refersDisease --> + + <owl:ObjectProperty rdf:about="#refersDisease"> + <rdfs:range> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#SymptomTypes"/> + <rdf:Description rdf:about="#DiseaseTypes"/> + </owl:unionOf> + </owl:Class> + </rdfs:range> + <rdfs:domain rdf:resource="#Outcomes"/> + </owl:ObjectProperty> + + + + <!-- http://acl/BMV#refersSubstance --> + + <owl:ObjectProperty rdf:about="#refersSubstance"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Data properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://acl/BMV#hasAge --> + + <owl:DatatypeProperty rdf:about="#hasAge"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:range rdf:resource="&xsd;int"/> + </owl:DatatypeProperty> + + + + <!-- http://acl/BMV#hasDuration --> + + <owl:DatatypeProperty rdf:about="#hasDuration"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:domain rdf:resource="#TherapeuticType"/> + <rdfs:range rdf:resource="&xsd;int"/> + </owl:DatatypeProperty> + + + + <!-- http://acl/BMV#hasValue --> + + <owl:DatatypeProperty rdf:about="#hasValue"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:range rdf:resource="&xsd;decimal"/> + </owl:DatatypeProperty> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Classes + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://acl/BMV#ACTChemoTam --> + + <owl:Class rdf:about="#ACTChemoTam"> + <rdfs:subClassOf rdf:resource="#ChemoTamRegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#AbsoluteRisk --> + + <owl:Class rdf:about="#AbsoluteRisk"> + <rdfs:subClassOf rdf:resource="#Risk"/> + <owl:disjointWith rdf:resource="#ChangesInSurvival"/> + </owl:Class> + + + + <!-- http://acl/BMV#Abstract --> + + <owl:Class rdf:about="#Abstract"> + <rdfs:subClassOf rdf:resource="#MedicalThings"/> + </owl:Class> + + + + <!-- http://acl/BMV#AdjuvantTreatment --> + + <owl:Class rdf:about="#AdjuvantTreatment"> + <rdfs:subClassOf rdf:resource="#TherapeuticType"/> + </owl:Class> + + + + <!-- http://acl/BMV#Adults --> + + <owl:Class rdf:about="#Adults"> + <owl:disjointWith rdf:resource="#MedicalThings"/> + </owl:Class> + + + + <!-- http://acl/BMV#Aged50Plus --> + + <owl:Class rdf:about="#Aged50Plus"> + <rdfs:subClassOf rdf:resource="#Women"/> + <owl:disjointWith rdf:resource="#AgedUnder50"/> + </owl:Class> + + + + <!-- http://acl/BMV#AgedUnder50 --> + + <owl:Class rdf:about="#AgedUnder50"> + <rdfs:subClassOf rdf:resource="#Women"/> + </owl:Class> + + + + <!-- http://acl/BMV#Amenorrheic --> + + <owl:Class rdf:about="#Amenorrheic"> + <rdfs:subClassOf rdf:resource="#Women"/> + </owl:Class> + + + + <!-- http://acl/BMV#AnastrazoleRegimeTypes --> + + <owl:Class rdf:about="#AnastrazoleRegimeTypes"> + <rdfs:subClassOf rdf:resource="#HormoneRARegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#AnthracyclineChemoTxRegimeTypes --> + + <owl:Class rdf:about="#AnthracyclineChemoTxRegimeTypes"> + <rdfs:subClassOf rdf:resource="#ChemoTxRegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#BMD --> + + <owl:Class rdf:about="#BMD"> + <rdfs:subClassOf rdf:resource="#BiologicalLevels"/> + </owl:Class> + + + + <!-- http://acl/BMV#BiologicalLevelBasedOutcomes --> + + <owl:Class rdf:about="#BiologicalLevelBasedOutcomes"> + <rdfs:subClassOf rdf:resource="#Outcomes"/> + <owl:disjointWith rdf:resource="#Risk"/> + <owl:disjointWith rdf:resource="#ChangeOverallSurvival"/> + <owl:disjointWith rdf:resource="#PoorPrognosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#BiologicalLevels --> + + <owl:Class rdf:about="#BiologicalLevels"> + <rdfs:subClassOf rdf:resource="#References"/> + <owl:disjointWith rdf:resource="#MenopausalStatus"/> + <owl:disjointWith rdf:resource="#Pathological_Grade"/> + </owl:Class> + + + + <!-- http://acl/BMV#BreastAdenoCa --> + + <owl:Class rdf:about="#BreastAdenoCa"> + <rdfs:subClassOf rdf:resource="#BreastCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#BreastCancer --> + + <owl:Class rdf:about="#BreastCancer"> + <rdfs:subClassOf rdf:resource="#CancerTypes"/> + <owl:disjointWith rdf:resource="#ColorectalCancer"/> + <owl:disjointWith rdf:resource="#GastricCancer"/> + <owl:disjointWith rdf:resource="#EndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#CMFRegimeTypes --> + + <owl:Class rdf:about="#CMFRegimeTypes"> + <rdfs:subClassOf rdf:resource="#NonAnthracyclineChemoTxRegimeTypes"/> + <rdfs:subClassOf rdf:resource="#PolyChemoTxRegimeTypes"/> + <owl:disjointWith rdf:resource="#ECMFRegimeType"/> + </owl:Class> + + + + <!-- http://acl/BMV#CMFTChemoTam --> + + <owl:Class rdf:about="#CMFTChemoTam"> + <rdfs:subClassOf rdf:resource="#ChemoTamRegimeTypes"/> + <owl:disjointWith rdf:resource="#ACTChemoTam"/> + <owl:disjointWith rdf:resource="#PAFTChemoTam"/> + <owl:disjointWith rdf:resource="#PFTChemoTam"/> + <owl:disjointWith rdf:resource="#MFTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#CancerTypes --> + + <owl:Class rdf:about="#CancerTypes"> + <rdfs:subClassOf rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#Retinopathy"/> + <owl:disjointWith rdf:resource="#Cataracts"/> + <owl:disjointWith rdf:resource="#VenousThrombosis"/> + <owl:disjointWith rdf:resource="#PersistentSideEffects"/> + <owl:disjointWith rdf:resource="#OvarianCyst"/> + </owl:Class> + + + + <!-- http://acl/BMV#CardiacDisease --> + + <owl:Class rdf:about="#CardiacDisease"> + <rdfs:subClassOf rdf:resource="#VascularDisease"/> + <owl:disjointWith rdf:resource="#Stroke"/> + </owl:Class> + + + + <!-- http://acl/BMV#Cataracts --> + + <owl:Class rdf:about="#Cataracts"> + <rdfs:subClassOf rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#VenousThrombosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeBMD --> + + <owl:Class rdf:about="#ChangeBMD"> + <rdfs:subClassOf rdf:resource="#BiologicalLevelBasedOutcomes"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeBrCaDFS --> + + <owl:Class rdf:about="#ChangeBrCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangesInSurvival"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="#refersDisease"/> + <owl:someValuesFrom rdf:resource="#BreastAdenoCa"/> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#ChangeEndoCaDFS"/> + <owl:disjointWith rdf:resource="#ChangeEndoCaDSS"/> + <owl:disjointWith rdf:resource="#ChangeCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeBrCaDSS --> + + <owl:Class rdf:about="#ChangeBrCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangesInSurvival"/> + <owl:disjointWith rdf:resource="#ChangeBrCaDFS"/> + <owl:disjointWith rdf:resource="#ChangeEndoCaDFS"/> + <owl:disjointWith rdf:resource="#ChangeEndoCaDSS"/> + <owl:disjointWith rdf:resource="#ChangeCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeCardiacDSS --> + + <owl:Class rdf:about="#ChangeCardiacDSS"> + <rdfs:subClassOf rdf:resource="#ChangesInSurvival"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeCholesterol --> + + <owl:Class rdf:about="#ChangeCholesterol"> + <rdfs:subClassOf rdf:resource="#BiologicalLevelBasedOutcomes"/> + <owl:disjointWith rdf:resource="#ChangePlasmaPlatelet"/> + <owl:disjointWith rdf:resource="#ChangeBMD"/> + <owl:disjointWith rdf:resource="#ChangePlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#ChangeLDL"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeEndoCaDFS --> + + <owl:Class rdf:about="#ChangeEndoCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangesInSurvival"/> + <owl:disjointWith rdf:resource="#ChangeCardiacDSS"/> + <owl:disjointWith rdf:resource="#ChangeEndoCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeEndoCaDSS --> + + <owl:Class rdf:about="#ChangeEndoCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangesInSurvival"/> + <owl:disjointWith rdf:resource="#ChangeCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeLDL --> + + <owl:Class rdf:about="#ChangeLDL"> + <rdfs:subClassOf rdf:resource="#BiologicalLevelBasedOutcomes"/> + <owl:disjointWith rdf:resource="#ChangePlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#ChangeBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeLumbarBMD --> + + <owl:Class rdf:about="#ChangeLumbarBMD"> + <rdfs:subClassOf rdf:resource="#ChangeBMD"/> + <owl:disjointWith rdf:resource="#ChangeRadialBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeOverallSurvival --> + + <owl:Class rdf:about="#ChangeOverallSurvival"> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="#hasValue"/> + <owl:someValuesFrom rdf:resource="&xsd;decimal"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf rdf:resource="#Outcomes"/> + <owl:disjointWith rdf:resource="#PoorPrognosis"/> + <owl:disjointWith rdf:resource="#Risk"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangePlasmaFibrinogenLevel --> + + <owl:Class rdf:about="#ChangePlasmaFibrinogenLevel"> + <rdfs:subClassOf rdf:resource="#BiologicalLevelBasedOutcomes"/> + <owl:disjointWith rdf:resource="#ChangeBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangePlasmaPlatelet --> + + <owl:Class rdf:about="#ChangePlasmaPlatelet"> + <rdfs:subClassOf rdf:resource="#BiologicalLevelBasedOutcomes"/> + <owl:disjointWith rdf:resource="#ChangeBMD"/> + <owl:disjointWith rdf:resource="#ChangePlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#ChangeLDL"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRadialBMD --> + + <owl:Class rdf:about="#ChangeRadialBMD"> + <rdfs:subClassOf rdf:resource="#ChangeBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskBreastCancer --> + + <owl:Class rdf:about="#ChangeRiskBreastCancer"> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="#refersDisease"/> + <owl:allValuesFrom rdf:resource="#BreastCancer"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskOvarianCyst"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskCardiacDisease"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskCataracts"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskPersistentSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskCardiacDisease --> + + <owl:Class rdf:about="#ChangeRiskCardiacDisease"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskCataracts"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskOvarianCyst"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskCataracts --> + + <owl:Class rdf:about="#ChangeRiskCataracts"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskColorectalCancer --> + + <owl:Class rdf:about="#ChangeRiskColorectalCancer"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskEndometrialAbnormality --> + + <owl:Class rdf:about="#ChangeRiskEndometrialAbnormality"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskEndometrialCancer --> + + <owl:Class rdf:about="#ChangeRiskEndometrialCancer"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskFatalMI --> + + <owl:Class rdf:about="#ChangeRiskFatalMI"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskCataracts"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskGastricCancer --> + + <owl:Class rdf:about="#ChangeRiskGastricCancer"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskHotFlushes --> + + <owl:Class rdf:about="#ChangeRiskHotFlushes"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskOvarianCyst --> + + <owl:Class rdf:about="#ChangeRiskOvarianCyst"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskCataracts"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskPersistentSideEffects --> + + <owl:Class rdf:about="#ChangeRiskPersistentSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskRetinopathy --> + + <owl:Class rdf:about="#ChangeRiskRetinopathy"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskSideEffects --> + + <owl:Class rdf:about="#ChangeRiskSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangeRiskVenousThrombosis --> + + <owl:Class rdf:about="#ChangeRiskVenousThrombosis"> + <rdfs:subClassOf rdf:resource="#ChangesInRisk"/> + <owl:disjointWith rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#ChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangesInRisk --> + + <owl:Class rdf:about="#ChangesInRisk"> + <rdfs:subClassOf rdf:resource="#DeltaRisk"/> + <owl:disjointWith rdf:resource="#ChangesInSurvival"/> + <owl:disjointWith rdf:resource="#AbsoluteRisk"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChangesInSurvival --> + + <owl:Class rdf:about="#ChangesInSurvival"> + <rdfs:subClassOf rdf:resource="#DeltaRisk"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChemoTamRegimeTypes --> + + <owl:Class rdf:about="#ChemoTamRegimeTypes"> + <rdfs:subClassOf rdf:resource="#AdjuvantTreatment"/> + </owl:Class> + + + + <!-- http://acl/BMV#ChemoTxRegimeTypes --> + + <owl:Class rdf:about="#ChemoTxRegimeTypes"> + <rdfs:subClassOf rdf:resource="#AdjuvantTreatment"/> + <owl:disjointWith rdf:resource="#HormoneRARegimeTypes"/> + <owl:disjointWith rdf:resource="#ChemoTamRegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#ClonidineRegime --> + + <owl:Class rdf:about="#ClonidineRegime"> + <rdfs:subClassOf rdf:resource="#DrugRegimeTypes"/> + <owl:disjointWith rdf:resource="#ChemoTamRegimeTypes"/> + <owl:disjointWith rdf:resource="#ChemoTxRegimeTypes"/> + <owl:disjointWith rdf:resource="#HormoneRARegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#ColorectalCancer --> + + <owl:Class rdf:about="#ColorectalCancer"> + <rdfs:subClassOf rdf:resource="#CancerTypes"/> + <owl:disjointWith rdf:resource="#GastricCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedBrCaDFS --> + + <owl:Class rdf:about="#DecreasedBrCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeBrCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedCardiacDSS --> + + <owl:Class rdf:about="#DecreasedCardiacDSS"> + <rdfs:subClassOf rdf:resource="#ChangeCardiacDSS"/> + <owl:disjointWith rdf:resource="#NoChangeCardiacDSS"/> + <owl:disjointWith rdf:resource="#IncreasedCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedCholesterol --> + + <owl:Class rdf:about="#DecreasedCholesterol"> + <rdfs:subClassOf rdf:resource="#ChangeCholesterol"/> + <owl:disjointWith rdf:resource="#IncreasedCholesterol"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedEndoCaDFS --> + + <owl:Class rdf:about="#DecreasedEndoCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDFS"/> + <owl:disjointWith rdf:resource="#NoChangeEndoCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedEndoCaDSS --> + + <owl:Class rdf:about="#DecreasedEndoCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedLDL --> + + <owl:Class rdf:about="#DecreasedLDL"> + <rdfs:subClassOf rdf:resource="#ChangeLDL"/> + <owl:disjointWith rdf:resource="#IncreasedLDL"/> + <owl:disjointWith rdf:resource="#NoChangeLDL"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedLumbarBMD --> + + <owl:Class rdf:about="#DecreasedLumbarBMD"> + <rdfs:subClassOf rdf:resource="#ChangeLumbarBMD"/> + <owl:disjointWith rdf:resource="#NoChangeLumbarBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedOS --> + + <owl:Class rdf:about="#DecreasedOS"> + <rdfs:subClassOf rdf:resource="#ChangeOverallSurvival"/> + <owl:disjointWith rdf:resource="#IncreasedOS"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedPlasmaFibrinogenLevel --> + + <owl:Class rdf:about="#DecreasedPlasmaFibrinogenLevel"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#IncreasedPlasmaFibrinogenLevel"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedPlasmaPlateletCount --> + + <owl:Class rdf:about="#DecreasedPlasmaPlateletCount"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaPlatelet"/> + <owl:disjointWith rdf:resource="#NoChangePlasmaPlateletCount"/> + <owl:disjointWith rdf:resource="#IncreasedPlasmaPlateletCount"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRadialBMD --> + + <owl:Class rdf:about="#DecreasedRadialBMD"> + <rdfs:subClassOf rdf:resource="#ChangeRadialBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskBreastCancer --> + + <owl:Class rdf:about="#DecreasedRiskBreastCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskBreastCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskCardiacDisease --> + + <owl:Class rdf:about="#DecreasedRiskCardiacDisease"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCardiacDisease"/> + <owl:disjointWith rdf:resource="#NoChangeRiskCardiacDisease"/> + <owl:disjointWith rdf:resource="#IncreasedRiskCardiacDisease"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskCataracts --> + + <owl:Class rdf:about="#DecreasedRiskCataracts"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCataracts"/> + <owl:disjointWith rdf:resource="#IncreasedRiskCataracts"/> + <owl:disjointWith rdf:resource="#NoChangeRiskCataracts"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskColorectalCancer --> + + <owl:Class rdf:about="#DecreasedRiskColorectalCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#IncreasedRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#NoChangeRiskColorectalCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskEndometrialAbnormality --> + + <owl:Class rdf:about="#DecreasedRiskEndometrialAbnormality"> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialAbnormality"/> + <owl:disjointWith rdf:resource="#NoChangeRiskEndometrialAbnormality"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskEndometrialCancer --> + + <owl:Class rdf:about="#DecreasedRiskEndometrialCancer"> + <rdfs:subClassOf rdf:resource="#DecreasedRiskEndometrialAbnormality"/> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#IncreasedRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#NoChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskFatalMI --> + + <owl:Class rdf:about="#DecreasedRiskFatalMI"> + <rdfs:subClassOf rdf:resource="#ChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#NoChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#IncreasedRiskFatalMI"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskHotFlushes --> + + <owl:Class rdf:about="#DecreasedRiskHotFlushes"> + <rdfs:subClassOf rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#NoChangeRiskHotFlushes"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskOvarianCyst --> + + <owl:Class rdf:about="#DecreasedRiskOvarianCyst"> + <rdfs:subClassOf rdf:resource="#ChangeRiskOvarianCyst"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskPersistentSideEffects --> + + <owl:Class rdf:about="#DecreasedRiskPersistentSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#IncreasedRiskPersistentSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskRetinopathy --> + + <owl:Class rdf:about="#DecreasedRiskRetinopathy"> + <rdfs:subClassOf rdf:resource="#ChangeRiskRetinopathy"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskSideEffects --> + + <owl:Class rdf:about="#DecreasedRiskSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#IncreasedRiskSideEffects"/> + <owl:disjointWith rdf:resource="#NoChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#DecreasedRiskVenousThrombosis --> + + <owl:Class rdf:about="#DecreasedRiskVenousThrombosis"> + <rdfs:subClassOf rdf:resource="#ChangeRiskVenousThrombosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#DeltaRisk --> + + <owl:Class rdf:about="#DeltaRisk"> + <rdfs:subClassOf rdf:resource="#Risk"/> + </owl:Class> + + + + <!-- http://acl/BMV#DiseaseStage --> + + <owl:Class rdf:about="#DiseaseStage"> + <owl:equivalentClass> + <owl:Class> + <owl:oneOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#ProtoStage1"/> + <rdf:Description rdf:about="#ProtoStage4"/> + <rdf:Description rdf:about="#ProtoStage2"/> + <rdf:Description rdf:about="#ProtoStage3"/> + </owl:oneOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#References"/> + </owl:Class> + + + + <!-- http://acl/BMV#DiseaseTypes --> + + <owl:Class rdf:about="#DiseaseTypes"> + <rdfs:subClassOf rdf:resource="#Abstract"/> + <owl:disjointWith rdf:resource="#SymptomTypes"/> + <owl:disjointWith rdf:resource="#Outcomes"/> + <owl:disjointWith rdf:resource="#References"/> + </owl:Class> + + + + <!-- http://acl/BMV#DrugRegimeTypes --> + + <owl:Class rdf:about="#DrugRegimeTypes"> + <rdfs:subClassOf rdf:resource="#TherapeuticType"/> + </owl:Class> + + + + <!-- http://acl/BMV#ECMFRegimeType --> + + <owl:Class rdf:about="#ECMFRegimeType"> + <rdfs:subClassOf rdf:resource="#AnthracyclineChemoTxRegimeTypes"/> + <rdfs:subClassOf rdf:resource="#PolyChemoTxRegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#ERNeg --> + + <owl:Class rdf:about="#ERNeg"> + <rdfs:subClassOf rdf:resource="#BreastAdenoCa"/> + </owl:Class> + + + + <!-- http://acl/BMV#ERPos --> + + <owl:Class rdf:about="#ERPos"> + <rdfs:subClassOf rdf:resource="#HRPos"/> + <rdfs:subClassOf rdf:resource="#BreastAdenoCa"/> + </owl:Class> + + + + <!-- http://acl/BMV#ERUnknown --> + + <owl:Class rdf:about="#ERUnknown"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <owl:Class> + <owl:complementOf rdf:resource="#ERPos"/> + </owl:Class> + <rdf:Description rdf:about="#BreastAdenoCa"/> + <owl:Class> + <owl:complementOf rdf:resource="#ERNeg"/> + </owl:Class> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + </owl:Class> + + + + <!-- http://acl/BMV#EarlyBreastCancer --> + + <owl:Class rdf:about="#EarlyBreastCancer"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#BreastAdenoCa"/> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <owl:Restriction> + <owl:onProperty rdf:resource="#hasStage"/> + <owl:hasValue rdf:resource="#ProtoStage2"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="#hasStage"/> + <owl:hasValue rdf:resource="#ProtoStage1"/> + </owl:Restriction> + </owl:unionOf> + </owl:Class> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + </owl:Class> + + + + <!-- http://acl/BMV#EarlyCMFTChemoTam --> + + <owl:Class rdf:about="#EarlyCMFTChemoTam"> + <rdfs:subClassOf rdf:resource="#CMFTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#EndometrialAbnormality --> + + <owl:Class rdf:about="#EndometrialAbnormality"> + <rdfs:subClassOf rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#OvarianCyst"/> + <owl:disjointWith rdf:resource="#Retinopathy"/> + <owl:disjointWith rdf:resource="#PersistentSideEffects"/> + <owl:disjointWith rdf:resource="#Cataracts"/> + <owl:disjointWith rdf:resource="#VenousThrombosis"/> + <owl:disjointWith rdf:resource="#CancerTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#EndometrialCancer --> + + <owl:Class rdf:about="#EndometrialCancer"> + <rdfs:subClassOf rdf:resource="#CancerTypes"/> + <owl:disjointWith rdf:resource="#GastricCancer"/> + <owl:disjointWith rdf:resource="#ColorectalCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#FatalMI --> + + <owl:Class rdf:about="#FatalMI"> + <rdfs:subClassOf rdf:resource="#MI"/> + <owl:disjointWith rdf:resource="#NonFatalMI"/> + </owl:Class> + + + + <!-- http://acl/BMV#GastricCancer --> + + <owl:Class rdf:about="#GastricCancer"> + <rdfs:subClassOf rdf:resource="#CancerTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#HRPos --> + + <owl:Class rdf:about="#HRPos"> + <rdfs:subClassOf rdf:resource="#BreastAdenoCa"/> + </owl:Class> + + + + <!-- http://acl/BMV#HRStatus --> + + <owl:Class rdf:about="#HRStatus"> + <owl:equivalentClass> + <owl:Class> + <owl:oneOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#ProtoERPos"/> + <rdf:Description rdf:about="#ProtoPRPos"/> + <rdf:Description rdf:about="#ProtoPRNeg"/> + <rdf:Description rdf:about="#ProtoERNeg"/> + </owl:oneOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#References"/> + <owl:disjointWith rdf:resource="#MenopausalStatus"/> + <owl:disjointWith rdf:resource="#Pathological_Grade"/> + </owl:Class> + + + + <!-- http://acl/BMV#HormoneRARegimeTypes --> + + <owl:Class rdf:about="#HormoneRARegimeTypes"> + <rdfs:subClassOf rdf:resource="#AdjuvantTreatment"/> + <owl:disjointWith rdf:resource="#ChemoTamRegimeTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#HotFlushes --> + + <owl:Class rdf:about="#HotFlushes"> + <rdfs:subClassOf rdf:resource="#SymptomTypes"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedBrCaDFS --> + + <owl:Class rdf:about="#IncreasedBrCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeBrCaDFS"/> + <owl:disjointWith rdf:resource="#NoChangeBrCaDFS"/> + <owl:disjointWith rdf:resource="#DecreasedBrCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedBrCaDSS --> + + <owl:Class rdf:about="#IncreasedBrCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangeBrCaDSS"/> + <owl:disjointWith rdf:resource="#NoChangeBrCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedCardiacDSS --> + + <owl:Class rdf:about="#IncreasedCardiacDSS"> + <rdfs:subClassOf rdf:resource="#ChangeCardiacDSS"/> + <owl:disjointWith rdf:resource="#NoChangeCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedCholesterol --> + + <owl:Class rdf:about="#IncreasedCholesterol"> + <rdfs:subClassOf rdf:resource="#ChangeCholesterol"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedEndoCaDFS --> + + <owl:Class rdf:about="#IncreasedEndoCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDFS"/> + <owl:disjointWith rdf:resource="#DecreasedEndoCaDFS"/> + <owl:disjointWith rdf:resource="#NoChangeEndoCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedEndoCaDSS --> + + <owl:Class rdf:about="#IncreasedEndoCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDSS"/> + <owl:disjointWith rdf:resource="#DecreasedEndoCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedLDL --> + + <owl:Class rdf:about="#IncreasedLDL"> + <rdfs:subClassOf rdf:resource="#ChangeLDL"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedLumbarBMD --> + + <owl:Class rdf:about="#IncreasedLumbarBMD"> + <rdfs:subClassOf rdf:resource="#ChangeLumbarBMD"/> + <owl:disjointWith rdf:resource="#NoChangeLumbarBMD"/> + <owl:disjointWith rdf:resource="#DecreasedLumbarBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedOS --> + + <owl:Class rdf:about="#IncreasedOS"> + <rdfs:subClassOf rdf:resource="#ChangeOverallSurvival"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedPlasmaFibrinogenLevel --> + + <owl:Class rdf:about="#IncreasedPlasmaFibrinogenLevel"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaFibrinogenLevel"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedPlasmaPlateletCount --> + + <owl:Class rdf:about="#IncreasedPlasmaPlateletCount"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaPlatelet"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRadialBMD --> + + <owl:Class rdf:about="#IncreasedRadialBMD"> + <rdfs:subClassOf rdf:resource="#ChangeRadialBMD"/> + <owl:disjointWith rdf:resource="#NoChangeRadialBMD"/> + <owl:disjointWith rdf:resource="#DecreasedRadialBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskCardiacDisease --> + + <owl:Class rdf:about="#IncreasedRiskCardiacDisease"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCardiacDisease"/> + <owl:disjointWith rdf:resource="#NoChangeRiskCardiacDisease"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskCataracts --> + + <owl:Class rdf:about="#IncreasedRiskCataracts"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCataracts"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskColorectalCancer --> + + <owl:Class rdf:about="#IncreasedRiskColorectalCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskColorectalCancer"/> + <owl:disjointWith rdf:resource="#NoChangeRiskColorectalCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskEndometrialAbnormality --> + + <owl:Class rdf:about="#IncreasedRiskEndometrialAbnormality"> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialAbnormality"/> + <owl:disjointWith rdf:resource="#NoChangeRiskEndometrialAbnormality"/> + <owl:disjointWith rdf:resource="#DecreasedRiskEndometrialAbnormality"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskEndometrialCancer --> + + <owl:Class rdf:about="#IncreasedRiskEndometrialCancer"> + <rdfs:subClassOf rdf:resource="#IncreasedRiskEndometrialAbnormality"/> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskFatalMI --> + + <owl:Class rdf:about="#IncreasedRiskFatalMI"> + <rdfs:subClassOf rdf:resource="#ChangeRiskFatalMI"/> + <owl:disjointWith rdf:resource="#NoChangeRiskFatalMI"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskGastricCancer --> + + <owl:Class rdf:about="#IncreasedRiskGastricCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskGastricCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskHotFlushes --> + + <owl:Class rdf:about="#IncreasedRiskHotFlushes"> + <rdfs:subClassOf rdf:resource="#ChangeRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#DecreasedRiskHotFlushes"/> + <owl:disjointWith rdf:resource="#NoChangeRiskHotFlushes"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskOvarianCyst --> + + <owl:Class rdf:about="#IncreasedRiskOvarianCyst"> + <rdfs:subClassOf rdf:resource="#ChangeRiskOvarianCyst"/> + <owl:disjointWith rdf:resource="#DecreasedRiskOvarianCyst"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskPersistentSideEffects --> + + <owl:Class rdf:about="#IncreasedRiskPersistentSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskPersistentSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskRetinopathy --> + + <owl:Class rdf:about="#IncreasedRiskRetinopathy"> + <rdfs:subClassOf rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#DecreasedRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#NoChangeRiskRetiopathy"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskSideEffects --> + + <owl:Class rdf:about="#IncreasedRiskSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#IncreasedRiskVenousThrombosis --> + + <owl:Class rdf:about="#IncreasedRiskVenousThrombosis"> + <rdfs:subClassOf rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#DecreasedRiskVenousThrombosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#LNNeg --> + + <owl:Class rdf:about="#LNNeg"> + <owl:equivalentClass> + <owl:Restriction> + <owl:onProperty rdf:resource="#hasLNStatus"/> + <owl:hasValue rdf:resource="#ProtoLNNeg"/> + </owl:Restriction> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#BreastAdenoCa"/> + </owl:Class> + + + + <!-- http://acl/BMV#LNPos --> + + <owl:Class rdf:about="#LNPos"> + <owl:equivalentClass> + <owl:Restriction> + <owl:onProperty rdf:resource="#hasLNStatus"/> + <owl:hasValue rdf:resource="#ProtoLNPos"/> + </owl:Restriction> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#BreastAdenoCa"/> + </owl:Class> + + + + <!-- http://acl/BMV#LNStatus --> + + <owl:Class rdf:about="#LNStatus"> + <owl:equivalentClass> + <owl:Class> + <owl:oneOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#ProtoLNPos"/> + <rdf:Description rdf:about="#ProtoLNNeg"/> + </owl:oneOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#References"/> + </owl:Class> + + + + <!-- http://acl/BMV#LateCMFTChemoTam --> + + <owl:Class rdf:about="#LateCMFTChemoTam"> + <rdfs:subClassOf rdf:resource="#CMFTChemoTam"/> + <owl:disjointWith rdf:resource="#EarlyCMFTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#LumbarBMD --> + + <owl:Class rdf:about="#LumbarBMD"> + <rdfs:subClassOf rdf:resource="#BMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#MFTChemoTam --> + + <owl:Class rdf:about="#MFTChemoTam"> + <rdfs:subClassOf rdf:resource="#ChemoTamRegimeTypes"/> + <owl:disjointWith rdf:resource="#ACTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#MI --> + + <owl:Class rdf:about="#MI"> + <rdfs:subClassOf rdf:resource="#CardiacDisease"/> + </owl:Class> + + + + <!-- http://acl/BMV#MedicalIntervention --> + + <owl:Class rdf:about="#MedicalIntervention"> + <rdfs:subClassOf rdf:resource="#Abstract"/> + <owl:disjointWith rdf:resource="#SymptomTypes"/> + <owl:disjointWith rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#References"/> + <owl:disjointWith rdf:resource="#Outcomes"/> + </owl:Class> + + + + <!-- http://acl/BMV#MedicalThings --> + + <owl:Class rdf:about="#MedicalThings"/> + + + + <!-- http://acl/BMV#Men --> + + <owl:Class rdf:about="#Men"> + <rdfs:subClassOf rdf:resource="#Adults"/> + <owl:disjointWith rdf:resource="#Women"/> + </owl:Class> + + + + <!-- http://acl/BMV#MenopausalStatus --> + + <owl:Class rdf:about="#MenopausalStatus"> + <owl:equivalentClass> + <owl:Class> + <owl:oneOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#ProtoPostmenopausal"/> + <rdf:Description rdf:about="#ProtoPremenopausal"/> + </owl:oneOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="#References"/> + <owl:disjointWith rdf:resource="#Pathological_Grade"/> + <owl:disjointWith rdf:resource="#Outcomes"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeBrCaDFS --> + + <owl:Class rdf:about="#NoChangeBrCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeBrCaDFS"/> + <owl:disjointWith rdf:resource="#DecreasedBrCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeBrCaDSS --> + + <owl:Class rdf:about="#NoChangeBrCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangeBrCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeCardiacDSS --> + + <owl:Class rdf:about="#NoChangeCardiacDSS"> + <rdfs:subClassOf rdf:resource="#ChangeCardiacDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeCholesterol --> + + <owl:Class rdf:about="#NoChangeCholesterol"> + <rdfs:subClassOf rdf:resource="#ChangeCholesterol"/> + <owl:disjointWith rdf:resource="#IncreasedCholesterol"/> + <owl:disjointWith rdf:resource="#DecreasedCholesterol"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeEndoCaDFS --> + + <owl:Class rdf:about="#NoChangeEndoCaDFS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDFS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeEndoCaDSS --> + + <owl:Class rdf:about="#NoChangeEndoCaDSS"> + <rdfs:subClassOf rdf:resource="#ChangeEndoCaDSS"/> + <owl:disjointWith rdf:resource="#DecreasedEndoCaDSS"/> + <owl:disjointWith rdf:resource="#IncreasedEndoCaDSS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeLDL --> + + <owl:Class rdf:about="#NoChangeLDL"> + <rdfs:subClassOf rdf:resource="#ChangeLDL"/> + <owl:disjointWith rdf:resource="#IncreasedLDL"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeLumbarBMD --> + + <owl:Class rdf:about="#NoChangeLumbarBMD"> + <rdfs:subClassOf rdf:resource="#ChangeLumbarBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeOS --> + + <owl:Class rdf:about="#NoChangeOS"> + <rdfs:subClassOf rdf:resource="#ChangeOverallSurvival"/> + <owl:disjointWith rdf:resource="#DecreasedOS"/> + <owl:disjointWith rdf:resource="#IncreasedOS"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangePlasmaFibrinogenLevel --> + + <owl:Class rdf:about="#NoChangePlasmaFibrinogenLevel"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#DecreasedPlasmaFibrinogenLevel"/> + <owl:disjointWith rdf:resource="#IncreasedPlasmaFibrinogenLevel"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangePlasmaPlateletCount --> + + <owl:Class rdf:about="#NoChangePlasmaPlateletCount"> + <rdfs:subClassOf rdf:resource="#ChangePlasmaPlatelet"/> + <owl:disjointWith rdf:resource="#IncreasedPlasmaPlateletCount"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRadialBMD --> + + <owl:Class rdf:about="#NoChangeRadialBMD"> + <rdfs:subClassOf rdf:resource="#ChangeRadialBMD"/> + <owl:disjointWith rdf:resource="#DecreasedRadialBMD"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskCardiacDisease --> + + <owl:Class rdf:about="#NoChangeRiskCardiacDisease"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCardiacDisease"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskCataracts --> + + <owl:Class rdf:about="#NoChangeRiskCataracts"> + <rdfs:subClassOf rdf:resource="#ChangeRiskCataracts"/> + <owl:disjointWith rdf:resource="#IncreasedRiskCataracts"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskColorectalCancer --> + + <owl:Class rdf:about="#NoChangeRiskColorectalCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskColorectalCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskEndometrialAbnormality --> + + <owl:Class rdf:about="#NoChangeRiskEndometrialAbnormality"> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialAbnormality"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskEndometrialCancer --> + + <owl:Class rdf:about="#NoChangeRiskEndometrialCancer"> + <rdfs:subClassOf rdf:resource="#NoChangeRiskEndometrialAbnormality"/> + <rdfs:subClassOf rdf:resource="#ChangeRiskEndometrialCancer"/> + <owl:disjointWith rdf:resource="#IncreasedRiskEndometrialCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskFatalMI --> + + <owl:Class rdf:about="#NoChangeRiskFatalMI"> + <rdfs:subClassOf rdf:resource="#ChangeRiskFatalMI"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskGastricCancer --> + + <owl:Class rdf:about="#NoChangeRiskGastricCancer"> + <rdfs:subClassOf rdf:resource="#ChangeRiskGastricCancer"/> + <owl:disjointWith rdf:resource="#IncreasedRiskGastricCancer"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskHotFlushes --> + + <owl:Class rdf:about="#NoChangeRiskHotFlushes"> + <rdfs:subClassOf rdf:resource="#ChangeRiskHotFlushes"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskOvarianCyst --> + + <owl:Class rdf:about="#NoChangeRiskOvarianCyst"> + <rdfs:subClassOf rdf:resource="#ChangeRiskOvarianCyst"/> + <owl:disjointWith rdf:resource="#DecreasedRiskOvarianCyst"/> + <owl:disjointWith rdf:resource="#IncreasedRiskOvarianCyst"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskPersistentSideEffects --> + + <owl:Class rdf:about="#NoChangeRiskPersistentSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#IncreasedRiskPersistentSideEffects"/> + <owl:disjointWith rdf:resource="#DecreasedRiskPersistentSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskRetiopathy --> + + <owl:Class rdf:about="#NoChangeRiskRetiopathy"> + <rdfs:subClassOf rdf:resource="#ChangeRiskRetinopathy"/> + <owl:disjointWith rdf:resource="#DecreasedRiskRetinopathy"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeRiskSideEffects --> + + <owl:Class rdf:about="#NoChangeRiskSideEffects"> + <rdfs:subClassOf rdf:resource="#ChangeRiskSideEffects"/> + <owl:disjointWith rdf:resource="#IncreasedRiskSideEffects"/> + </owl:Class> + + + + <!-- http://acl/BMV#NoChangeVenousRiskThrombosis --> + + <owl:Class rdf:about="#NoChangeVenousRiskThrombosis"> + <rdfs:subClassOf rdf:resource="#ChangeRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#DecreasedRiskVenousThrombosis"/> + <owl:disjointWith rdf:resource="#IncreasedRiskVenousThrombosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#NonAnthracyclineChemoTxRegimeTypes --> + + <owl:Class rdf:about="#NonAnthracyclineChemoTxRegimeTypes"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="#ChemoTxRegimeTypes"/> + <owl:Class> + <owl:complementOf rdf:resource="#AnthracyclineChemoTxRegimeTypes"/> + </owl:Class> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + </owl:Class> + + + + <!-- http://acl/BMV#NonFatalMI --> + + <owl:Class rdf:about="#NonFatalMI"> + <rdfs:subClassOf rdf:resource="#MI"/> + </owl:Class> + + + + <!-- http://acl/BMV#Outcomes --> + + <owl:Class rdf:about="#Outcomes"> + <rdfs:subClassOf rdf:resource="#Abstract"/> + </owl:Class> + + + + <!-- http://acl/BMV#OvarianCyst --> + + <owl:Class rdf:about="#OvarianCyst"> + <rdfs:subClassOf rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#Retinopathy"/> + <owl:disjointWith rdf:resource="#Cataracts"/> + <owl:disjointWith rdf:resource="#PersistentSideEffects"/> + <owl:disjointWith rdf:resource="#VenousThrombosis"/> + </owl:Class> + + + + <!-- http://acl/BMV#PAFTChemoTam --> + + <owl:Class rdf:about="#PAFTChemoTam"> + <rdfs:subClassOf rdf:resource="#ChemoTamRegimeTypes"/> + <owl:disjointWith rdf:resource="#MFTChemoTam"/> + <owl:disjointWith rdf:resource="#ACTChemoTam"/> + <owl:disjointWith rdf:resource="#PFTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#PFTChemoTam --> + + <owl:Class rdf:about="#PFTChemoTam"> + <rdfs:subClassOf rdf:resource="#ChemoTamRegimeTypes"/> + <owl:disjointWith rdf:resource="#ACTChemoTam"/> + <owl:disjointWith rdf:resource="#MFTChemoTam"/> + </owl:Class> + + + + <!-- http://acl/BMV#Pathological_Grade --> + + <owl:Class rdf:about="#Pathological_Grade"> + <rdfs:subClassOf rdf:resource="#References"/> + </owl:Class> + + + + <!-- http://acl/BMV#PersistentSideEffects --> + + <owl:Class rdf:about="#PersistentSideEffects"> + <rdfs:subClassOf rdf:resource="#DiseaseTypes"/> + <owl:disjointWith rdf:resource="#... [truncated message content] |
From: <lor...@us...> - 2010-08-02 19:45:33
|
Revision: 2228 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2228&view=rev Author: lorenz_b Date: 2010-08-02 19:45:26 +0000 (Mon, 02 Aug 2010) Log Message: ----------- Removed more warnings. Updated latest Protege libs. Added 2 reasoner test cases. Added agreement measure. Modified Paths: -------------- trunk/doc/configOptions.txt trunk/lib/protege/org.protege.editor.core.application.jar trunk/lib/protege/org.protege.editor.owl.jar trunk/src/dl-learner/org/dllearner/Info.java trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java trunk/src/dl-learner/org/dllearner/test/JenaBug.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/test/HermitTest.java trunk/src/dl-learner/org/dllearner/test/PelletBug3.java trunk/src/dl-learner/org/dllearner/utilities/statistics/RawAgreement.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/test/IncrementalInconsistencyFinder.java Modified: trunk/doc/configOptions.txt =================================================================== --- trunk/doc/configOptions.txt 2010-08-02 14:51:20 UTC (rev 2227) +++ trunk/doc/configOptions.txt 2010-08-02 19:45:26 UTC (rev 2228) @@ -191,8 +191,8 @@ conf file usage: reasoner = fastInstanceChecker; option name: reasonerType -description: FaCT++ or Pellet to dematerialize -allowed values: String [fact, pellet] +description: FaCT++, HermiT or Pellet to dematerialize +allowed values: String [fact, hermit, pellet] default value: pellet conf file usage: fastInstanceChecker.reasonerType = pellet; @@ -215,8 +215,8 @@ conf file usage: reasoner = owlAPIReasoner; option name: reasonerType -description: FaCT++ or Pellet, which means "pellet" or "fact" -allowed values: String [fact, pellet] +description: FaCT++,, HermiT or Pellet, which means "fact", "hermit" or "pellet" +allowed values: String [fact, hermit, pellet] default value: pellet conf file usage: owlAPIReasoner.reasonerType = pellet; @@ -290,7 +290,25 @@ default value: true conf file usage: classLearning.checkConsistency = true; +option name: maxExecutionTimeInSeconds +description: algorithm will stop after specified seconds +allowed values: int +default value: 10 +conf file usage: classLearning.maxExecutionTimeInSeconds = 10; +option name: betaSC +description: Higher values of beta rate recall higher than precision or in other words, covering the instances of the class to describe is more important even at the cost of covering additional instances. The actual implementation depends on the selected heuristic. This values is used only for super class learning. +allowed values: double +default value: 3.0 +conf file usage: classLearning.betaSC = 3.0; + +option name: betaEq +description: Higher values of beta rate recall higher than precision or in other words, covering the instances of the class to describe is more important even at the cost of covering additional instances. The actual implementation depends on the selected heuristic. This values is used only for equivalence class learning. +allowed values: double +default value: 1.0 +conf file usage: classLearning.betaEq = 1.0; + + component: pos neg learning problem (org.dllearner.learningproblems.PosNegLPStandard) ===================================================================================== @@ -564,7 +582,25 @@ default value: false conf file usage: celoe.reuseExistingDescription = false; +option name: writeSearchTree +description: specifies whether to write a search tree +allowed values: boolean +default value: false +conf file usage: celoe.writeSearchTree = false; +option name: searchTreeFile +description: file to use for the search tree +allowed values: String [] +default value: log/searchTree.txt +conf file usage: celoe.searchTreeFile = log/searchTree.txt; + +option name: replaceSearchTree +description: specifies whether to replace the search tree in the log file after each run or append the new search tree +allowed values: boolean +default value: false +conf file usage: celoe.replaceSearchTree = false; + + component: standard EL learning algorithm (org.dllearner.algorithms.el.ELLearningAlgorithm) =========================================================================================== Modified: trunk/lib/protege/org.protege.editor.core.application.jar =================================================================== (Binary files differ) Modified: trunk/lib/protege/org.protege.editor.owl.jar =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/Info.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Info.java 2010-08-02 14:51:20 UTC (rev 2227) +++ trunk/src/dl-learner/org/dllearner/Info.java 2010-08-02 19:45:26 UTC (rev 2228) @@ -3,6 +3,6 @@ package org.dllearner; public class Info { - public static final String build = "2010-03-15"; + public static final String build = "2010-07-21"; } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java 2010-08-02 14:51:20 UTC (rev 2227) +++ trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java 2010-08-02 19:45:26 UTC (rev 2228) @@ -53,7 +53,7 @@ } /** -* reasonerType FaCT++ or Pellet, which means "pellet" or "fact". +* reasonerType FaCT++,, HermiT or Pellet, which means "pellet" or "fact". * mandatory: false| reinit necessary: true * default value: pellet * @return String @@ -63,7 +63,7 @@ } /** -* @param reasonerType FaCT++ or Pellet, which means "pellet" or "fact". +* @param reasonerType FaCT++,, HermiT or Pellet, which means "pellet" or "fact". * mandatory: false| reinit necessary: true * default value: pellet **/ Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-08-02 14:51:20 UTC (rev 2227) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-08-02 19:45:26 UTC (rev 2228) @@ -77,7 +77,6 @@ private static long reasonerTaskTimeoutInMinutes = 10; - @SuppressWarnings("unchecked") public static void main(String[] args) throws ComponentInitException, MalformedURLException { Map<String, Integer> ontologyRelClassCountMap = new HashMap<String, Integer>(); Set<String> inconsistentOntologies = new HashSet<String>(); @@ -243,17 +242,17 @@ } - @SuppressWarnings("unchecked") - static Map sortByValue(Map map) { - List list = new LinkedList(map.entrySet()); - Collections.sort(list, new Comparator() { - public int compare(Object o1, Object o2) { - return ((Comparable) ((Map.Entry) (o1)).getValue()).compareTo(((Map.Entry) (o2)).getValue()); + + private static Map<String, Integer> sortByValue(Map<String, Integer> map) { + List<Entry<String, Integer>> list = new LinkedList<Entry<String, Integer>>(map.entrySet()); + Collections.sort(list, new Comparator<Entry<String, Integer>>() { + public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { + return o1.getValue().compareTo(o2.getValue()); } }); - Map result = new LinkedHashMap(); - for (Iterator it = list.iterator(); it.hasNext();) { - Map.Entry entry = (Map.Entry) it.next(); + Map<String, Integer> result = new LinkedHashMap<String, Integer>(); + for (Iterator<Entry<String, Integer>> it = list.iterator(); it.hasNext();) { + Entry<String, Integer> entry = it.next(); result.put(entry.getKey(), entry.getValue()); } return result; Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java 2010-08-02 14:51:20 UTC (rev 2227) +++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java 2010-08-02 19:45:26 UTC (rev 2228) @@ -12,6 +12,7 @@ import java.net.URL; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -22,15 +23,20 @@ import java.util.Set; import java.util.Map.Entry; +import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.dllearner.core.owl.Individual; +import org.apache.log4j.SimpleLayout; import org.dllearner.core.owl.NamedClass; +import org.dllearner.learningproblems.ClassLearningProblem; import org.dllearner.learningproblems.EvaluatedDescriptionClass; -import org.dllearner.utilities.statistics.FleissKappa; +import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.utilities.owl.ConceptComparator; +import org.dllearner.utilities.statistics.RawAgreement; import org.dllearner.utilities.statistics.Stat; import org.semanticweb.owlapi.apibinding.OWLManager; import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; @@ -40,73 +46,196 @@ private Hashtable<NamedClass, Map<EvaluatedDescriptionClass, Integer>> userInputMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> fastEquivalenceStandardMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> fastEquivalenceFMeasureMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> fastEquivalencePredaccMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> fastEquivalenceGenFMeasureMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> fastEquivalenceJaccardMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> fastStandardMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> fastFMeasureMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> fastPredaccMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> fastGenFMeasureMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> fastJaccardMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> owlEquivalenceStandardMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> owlEquivalenceFMeasureMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> owlEquivalencePredaccMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> owlEquivalenceGenFMeasureMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> owlEquivalenceJaccardMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> owlStandardMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> owlFMeasureMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> owlPredaccMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> owlGenFMeasureMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> owlJaccardMap; - private Map<NamedClass, List<EvaluatedDescriptionClass>> defaultEquivalenceMap; + private Map<NamedClass, List<EvaluatedDescriptionClass>> defaultMap; + + private StringBuilder latexStats; + private StringBuilder latexMetrics; + @SuppressWarnings("unused") + private Map<NamedClass, Map<EvaluatedDescriptionClass, Integer>> incMap; + + List<Stat> defaultFractions = new ArrayList<Stat>(); + List<Stat> owlStandardFractions = new ArrayList<Stat>(); + List<Stat> owlFMeasureFractions = new ArrayList<Stat>(); + List<Stat> owlGenFMeasureFractions = new ArrayList<Stat>(); + List<Stat> owlPredaccFractions = new ArrayList<Stat>(); + List<Stat> owlJaccardFractions = new ArrayList<Stat>(); + List<Stat> fastStandardFractions = new ArrayList<Stat>(); + List<Stat> fastFMeasureFractions = new ArrayList<Stat>(); + List<Stat> fastGenFMeasureFractions = new ArrayList<Stat>(); + List<Stat> fastPredaccFractions = new ArrayList<Stat>(); + List<Stat> fastJaccardFractions = new ArrayList<Stat>(); + List<Stat> defaultFractionsBest = new ArrayList<Stat>(); + List<Stat> owlStandardFractionsBest = new ArrayList<Stat>(); + List<Stat> owlFMeasureFractionsBest = new ArrayList<Stat>(); + List<Stat> owlGenFMeasureFractionsBest = new ArrayList<Stat>(); + List<Stat> owlPredaccFractionsBest = new ArrayList<Stat>(); + List<Stat> owlJaccardFractionsBest = new ArrayList<Stat>(); + List<Stat> fastStandardFractionsBest = new ArrayList<Stat>(); + List<Stat> fastFMeasureFractionsBest = new ArrayList<Stat>(); + List<Stat> fastGenFMeasureFractionsBest = new ArrayList<Stat>(); + List<Stat> fastPredaccFractionsBest = new ArrayList<Stat>(); + List<Stat> fastJaccardFractionsBest = new ArrayList<Stat>(); + int[] count = new int[6]; + int[] bestCount = new int[6]; + int best = 6; - - - private Map<NamedClass, List<EvaluatedDescriptionClass>> equivalentSuggestions; - private Map<NamedClass, List<EvaluatedDescriptionClass>> superSuggestions; - - private Map<NamedClass, String> equivalentInput; - private Map<NamedClass, String> superInput; + int classesCount = 0; - private Map<NamedClass, List<Integer>> equivalentRating; - private Map<NamedClass, List<Integer>> superRating; + private static final int RATER = 4; + private static final double MIN_ACCURACY = 0.9; + + int defaultMissedImprovementsCount = 0; + int owlStandardMissedImprovementsCount = 0; + int owlFMeasureMissedImprovementsCount = 0; + int owlGenFMeasureMissedImprovementsCount = 0; + int owlJaccardMissedImprovementsCount = 0; + int owlPredaccMissedImprovementsCount = 0; + int fastStandardMissedImprovementsCount = 0; + int fastFMeasureMissedImprovementsCount = 0; + int fastGenFMeasureMissedImprovementsCount = 0; + int fastJaccardMissedImprovementsCount = 0; + int fastPredaccMissedImprovementsCount = 0; + + double defaultSuggestions = 0; + double owlStandardSuggestions = 0; + double owlFMeasureSuggestions = 0; + double owlGenFMeasureSuggestions = 0; + double owlJaccardSuggestions = 0; + double owlPredaccSuggestions = 0; + double fastStandardSuggestions = 0; + double fastFMeasureSuggestions = 0; + double fastGenFMeasureSuggestions = 0; + double fastJaccardSuggestions = 0; + double fastPredaccSuggestions = 0; + + private Set<Stat> defaultPositionStats = new HashSet<Stat>(); + private Set<Stat> defaultAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> defaultAccStats = new HashSet<Stat>(); + private Set<Stat> defaultHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> owlStandardPositionStats = new HashSet<Stat>(); + private Set<Stat> owlStandardAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> owlStandardAccStats = new HashSet<Stat>(); + private Set<Stat> owlStandardHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> owlFMeasurePositionStats = new HashSet<Stat>(); + private Set<Stat> owlFMeasureAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> owlFMeasureAccStats = new HashSet<Stat>(); + private Set<Stat> owlFMeasureHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> owlGenFMeasurePositionStats = new HashSet<Stat>(); + private Set<Stat> owlGenFMeasureAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> owlGenFMeasureAccStats = new HashSet<Stat>(); + private Set<Stat> owlGenFMeasureHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> owlJaccardPositionStats = new HashSet<Stat>(); + private Set<Stat> owlJaccardAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> owlJaccardAccStats = new HashSet<Stat>(); + private Set<Stat> owlJaccardHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> owlPredaccPositionStats = new HashSet<Stat>(); + private Set<Stat> owlPredaccAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> owlPredaccAccStats = new HashSet<Stat>(); + private Set<Stat> owlPredaccHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> fastStandardPositionStats = new HashSet<Stat>(); + private Set<Stat> fastStandardAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> fastStandardAccStats = new HashSet<Stat>(); + private Set<Stat> fastStandardHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> fastFMeasurePositionStats = new HashSet<Stat>(); + private Set<Stat> fastFMeasureAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> fastFMeasureAccStats = new HashSet<Stat>(); + private Set<Stat> fastFMeasureHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> fastGenFMeasurePositionStats = new HashSet<Stat>(); + private Set<Stat> fastGenFMeasureAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> fastGenFMeasureAccStats = new HashSet<Stat>(); + private Set<Stat> fastGenFMeasureHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> fastJaccardPositionStats = new HashSet<Stat>(); + private Set<Stat> fastJaccardAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> fastJaccardAccStats = new HashSet<Stat>(); + private Set<Stat> fastJaccardHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + private Set<Stat> fastPredaccPositionStats = new HashSet<Stat>(); + private Set<Stat> fastPredaccAddInstancesCountStats = new HashSet<Stat>(); + private Set<Stat> fastPredaccAccStats = new HashSet<Stat>(); + private Set<Stat> fastPredaccHiddenInconsistenciesCountStats = new HashSet<Stat>(); + + @SuppressWarnings("unused") + private Stat defaultSuggestionsCountStat = new Stat(); + private Stat owlStandardSuggestionsCountStat = new Stat(); + private Stat owlFMeasureSuggestionsCountStat = new Stat(); + private Stat owlGenFMeasureSuggestionsCountStat = new Stat(); + private Stat owlPredaccSuggestionsCountStat = new Stat(); + private Stat owlJaccardSuggestionsCountStat = new Stat(); + private Stat fastStandardSuggestionsCountStat = new Stat(); + private Stat fastFMeasureSuggestionsCountStat = new Stat(); + private Stat fastGenFMeasureSuggestionsCountStat = new Stat(); + private Stat fastPredaccSuggestionsCountStat = new Stat(); + private Stat fastJaccardSuggestionsCountStat = new Stat(); - private StringBuilder latexStats; - private StringBuilder latexMetrics; - - // general stats - private Stat acceptedGlobalStat = new Stat(); - private Stat rejectedGlobalStat = new Stat(); - private Stat failedGlobalStat = new Stat(); - - // equivalent class stats - private Stat acceptedStat = new Stat(); - private Stat rejectedStat = new Stat(); - private Stat failedStat = new Stat(); - private Set<Stat> moreInstancesCountStats = new HashSet<Stat>(); - private Set<Stat> accStats = new HashSet<Stat>(); - private Set<Stat> accSelectedStats = new HashSet<Stat>(); - private Set<Stat> accAboveThresholdStats = new HashSet<Stat>(); - private Set<Stat> positionStats = new HashSet<Stat>(); - - // super class stats - private Stat acceptedStatSC = new Stat(); - private Stat rejectedStatSC = new Stat(); - private Stat failedStatSC = new Stat(); - private Set<Stat> moreInstancesCountStatsSC = new HashSet<Stat>(); - private Set<Stat> accStatsSC = new HashSet<Stat>(); - private Set<Stat> accSelectedStatsSC = new HashSet<Stat>(); - private Set<Stat> accAboveThresholdStatsSC = new HashSet<Stat>(); - private Set<Stat> positionStatsSC = new HashSet<Stat>(); - - private int suggestionListsCount; - private int logicalAxiomCount; private OWLOntology ont; //matrix for Fleiss Kappa input private short[][] mat; - private List<NamedClass> equivalentLists; - private List<NamedClass> superLists; - + + private Set<NamedClass> classesToEvaluate = new HashSet<NamedClass>(); + + private ConceptComparator c = new ConceptComparator(); + + private File directory; + + OWLDataFactory factory ; + ClassLearningProblem lp; + FastInstanceChecker rc; + public StatsGenerator(File directory) { + this.directory = directory; + + for(int i = 0; i < 6; i++){ + defaultFractions.add(new Stat()); + owlStandardFractions.add(new Stat()); + owlFMeasureFractions.add(new Stat()); + owlGenFMeasureFractions.add(new Stat()); + owlPredaccFractions.add(new Stat()); + owlJaccardFractions.add(new Stat()); + fastStandardFractions.add(new Stat()); + fastFMeasureFractions.add(new Stat()); + fastGenFMeasureFractions.add(new Stat()); + fastPredaccFractions.add(new Stat()); + fastJaccardFractions.add(new Stat()); + + defaultFractionsBest.add(new Stat()); + owlStandardFractionsBest.add(new Stat()); + owlFMeasureFractionsBest.add(new Stat()); + owlGenFMeasureFractionsBest.add(new Stat()); + owlPredaccFractionsBest.add(new Stat()); + owlJaccardFractionsBest.add(new Stat()); + fastStandardFractionsBest.add(new Stat()); + fastFMeasureFractionsBest.add(new Stat()); + fastGenFMeasureFractionsBest.add(new Stat()); + fastPredaccFractionsBest.add(new Stat()); + fastJaccardFractionsBest.add(new Stat()); + } + count(); // begin latex table with headers beginOntologyMetricsTable(); beginStatsTable(); @@ -114,251 +243,1301 @@ for (File suggestionFile : directory.listFiles(new ResultFileFilter())) { loadLearnResults(suggestionFile); loadOntology(suggestionFile); -// resetStats(); + computeClassesToEvaluate(); // for each user evaluation input file for (File inputFile : directory.listFiles(new NameFilter(suggestionFile))) { loadUserInput(inputFile); - evaluateOWLStandard(); -// makeSingleStat(); + evaluateUserInput(); } // add row to the metrics latex table for current ontology addOntologyMetricsTableRow(); - // add row to the stats latex table for current ontology -// addStatsTableRow(); - break; +// break; } +// showMeasureValues(); + computeAverageSuggestionsPerClass(); + showMeasureFractions(); + generateBestMeasureFractionsTable(); + generateMetricsTable(); + computeFleissKappa(directory); // end latex tables endTables(); printLatexCode(); } - private void evaluateOWLStandard(){ - Stat value = new Stat(); + private void evaluateUserInput(){ + evaluateDefault(); + evaluateFastFMeasure(); + evaluateFastGenFMeasure(); + evaluateFastJaccard(); + evaluateFastPredacc(); + evaluateFastStandard(); + evaluateOWLFMeasure(); + evaluateOWLGenFMeasure(); + evaluateOWLJaccard(); + evaluateOWLPredacc(); + evaluateOWLStandard(); + } + + private void computeAverageSuggestionsPerClass(){ + for (File suggestionFile : directory.listFiles(new ResultFileFilter())) { + loadLearnResults(suggestionFile); + computeClassesToEvaluate(); + classesCount += classesToEvaluate.size(); + defaultSuggestions += getSuggestionsCount(defaultMap); + owlStandardSuggestions += getSuggestionsCount(owlStandardMap); + owlFMeasureSuggestions += getSuggestionsCount(owlFMeasureMap); + owlGenFMeasureSuggestions += getSuggestionsCount(owlGenFMeasureMap); + owlPredaccSuggestions += getSuggestionsCount(owlPredaccMap); + owlJaccardSuggestions += getSuggestionsCount(owlJaccardMap); + fastStandardSuggestions += getSuggestionsCount(fastStandardMap); + fastFMeasureSuggestions += getSuggestionsCount(fastFMeasureMap); + fastGenFMeasureSuggestions += getSuggestionsCount(fastGenFMeasureMap); + fastPredaccSuggestions += getSuggestionsCount(fastPredaccMap); + fastJaccardSuggestions += getSuggestionsCount(fastJaccardMap); + } + System.out.println(classesCount); + } + + private void count(){ + + for (File suggestionFile : directory.listFiles(new ResultFileFilter())) { + loadLearnResults(suggestionFile); + computeClassesToEvaluate(); + for(NamedClass nc : classesToEvaluate){ + System.out.println(nc + " : " + fastStandardMap.get(nc).size()); + owlStandardSuggestionsCountStat.addNumber(owlStandardMap.get(nc).size()); + owlFMeasureSuggestionsCountStat.addNumber(owlFMeasureMap.get(nc).size()); + owlGenFMeasureSuggestionsCountStat.addNumber(owlGenFMeasureMap.get(nc).size()); + owlPredaccSuggestionsCountStat.addNumber(owlPredaccMap.get(nc).size()); + owlJaccardSuggestionsCountStat.addNumber(owlJaccardMap.get(nc).size()); + fastStandardSuggestionsCountStat.addNumber(fastStandardMap.get(nc).size()); + fastFMeasureSuggestionsCountStat.addNumber(fastFMeasureMap.get(nc).size()); + fastGenFMeasureSuggestionsCountStat.addNumber(fastGenFMeasureMap.get(nc).size()); + fastPredaccSuggestionsCountStat.addNumber(fastPredaccMap.get(nc).size()); + fastJaccardSuggestionsCountStat.addNumber(fastJaccardMap.get(nc).size()); + } + } + } + + private int getSuggestionsCount(Map<NamedClass, List<EvaluatedDescriptionClass>> map){ + int suggestionsCount = 0; + for(Entry<NamedClass, List<EvaluatedDescriptionClass>> entry : map.entrySet()){ + if(!classesToEvaluate.contains(entry.getKey())){ + continue; + } + suggestionsCount += entry.getValue().size(); + } + + return suggestionsCount; + } + + private void showMeasureFractions(){ + DecimalFormat df = new DecimalFormat( "0.00" ); + StringBuilder sb = new StringBuilder(); + sb.append("\\begin{tabular}{| l | c | c | c | c | c | c |} \n"); + sb.append(" & "); + sb.append("\\rotatebox{90}{Improvement} & "); + sb.append("\\rotatebox{90}{Equal quality (+)} & "); + sb.append("\\rotatebox{90}{Equal quality (-)} & "); + sb.append("\\rotatebox{90}{Inferior} & "); + sb.append("\\rotatebox{90}{Not acceptable} & "); + sb.append("\\rotatebox{90}{Error}"); + sb.append(" \\\\\n"); + sb.append("\\hline\n"); + + + sb.append("Default & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(defaultFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("OWLAPI Reasoner Standard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlStandardFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("OWLAPI Reasoner FMeasure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlFMeasureFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("OWLAPI Reasoner GenFMeasure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlGenFMeasureFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("OWLAPI Reasoner Predacc & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlPredaccFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("OWLAPI Reasoner Jaccard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlJaccardFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("FastInstanceChecker Standard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastStandardFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("FastInstanceChecker FMeasure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastFMeasureFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("FastInstanceChecker GenFMeasure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastGenFMeasureFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("FastInstanceChecker Predacc & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastPredaccFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + sb.append(" \\\\\n"); + sb.append("FastInstanceChecker Jaccard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastJaccardFractions.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } + + sb.append(" \\\\\n"); + sb.append("\\hline\n"); + sb.append("\\end{tabular}"); + System.out.println(sb.toString()); + + } + + private void generateMetricsTable(){ + + DecimalFormat df = new DecimalFormat( "0.00" ); + DecimalFormat df1 = new DecimalFormat( "0" ); + StringBuilder sb = new StringBuilder(); + sb.append("\\begin{tabular}{ l | c | c | c | c | c | c } \n"); + sb.append("reasoner / heuristic & \n"); + sb.append("\\rotatebox{90}{missed improvements in \\%} & \n"); + sb.append("\\rotatebox{90}{avg. suggestions per class} & \n"); + sb.append("\\begin{sideways}\\makecell[l]{selected position\\\\on suggestion list\\\\(incl.~std.~deviation)}\\end{sideways} & \n"); + sb.append("\\begin{sideways}\\makecell[l]{avg. accuracy of\\\\selected suggestion in \\%}\\end{sideways} & \n"); + sb.append("\\begin{sideways}\\makecell[l]{\\#hidden inconsistencies}\\end{sideways} & \n"); + sb.append("\\rotatebox{90}{\\#add.~instances total}"); + sb.append(" \\\\\n"); + sb.append("\\hline\n"); + + sb.append("Pellet / R-Measure & "); + sb.append(df.format((double)owlStandardMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(owlStandardSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(owlStandardPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(owlStandardPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(owlStandardAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(owlStandardHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(owlStandardAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet / F-Measure & "); + sb.append(df.format((double)owlFMeasureMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(owlFMeasureSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(owlFMeasurePositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(owlFMeasurePositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(owlFMeasureAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(owlFMeasureHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(owlFMeasureAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet / Gen. F-Measure & "); + sb.append(df.format((double)owlGenFMeasureMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(owlGenFMeasureSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(owlGenFMeasurePositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(owlGenFMeasurePositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(owlGenFMeasureAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(owlGenFMeasureHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(owlGenFMeasureAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet / pred. acc. & "); + sb.append(df.format((double)owlPredaccMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(owlPredaccSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(owlPredaccPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(owlPredaccPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(owlPredaccAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(owlPredaccHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(owlPredaccAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet / Jaccard & "); + sb.append(df.format((double)owlJaccardMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(owlJaccardSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(owlJaccardPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(owlJaccardPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(owlJaccardAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(owlJaccardHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(owlJaccardAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / R-Measure & "); + sb.append(df.format((double)fastStandardMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(fastStandardSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(fastStandardPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(fastStandardPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(fastStandardAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(fastStandardHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(fastStandardAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / F-Measure & "); + sb.append(df.format((double)fastFMeasureMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(fastFMeasureSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(fastFMeasurePositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(fastFMeasurePositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(fastFMeasureAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(fastFMeasureHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(fastFMeasureAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / Gen. F-Measure & "); + sb.append(df.format((double)fastGenFMeasureMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(fastGenFMeasureSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(fastGenFMeasurePositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(fastGenFMeasurePositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(fastGenFMeasureAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(fastGenFMeasureHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(fastGenFMeasureAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / pred. acc. & "); + sb.append(df.format((double)fastPredaccMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(fastPredaccSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(fastPredaccPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(fastPredaccPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(fastPredaccAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(fastPredaccHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(fastPredaccAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / Jaccard & "); + sb.append(df.format((double)fastJaccardMissedImprovementsCount / classesCount * 100)); + sb.append(" & "); + sb.append(df.format(fastJaccardSuggestionsCountStat.getMean())); + sb.append(" & "); + sb.append(df.format(new Stat(fastJaccardPositionStats).getMean())); + sb.append(" $\\pm$ "); + sb.append(df.format(new Stat(fastJaccardPositionStats).getStandardDeviation())); + sb.append(" & "); + sb.append(df.format(new Stat(fastJaccardAccStats).getMean() * 100)); + sb.append(" & "); + sb.append(df.format(new Stat(fastJaccardHiddenInconsistenciesCountStats).getSum() / 5)); + sb.append(" & "); + sb.append(df1.format(new Stat(fastJaccardAddInstancesCountStats).getSum() / RATER)); + sb.append(" \\\\\n"); + + sb.append("\\hline\n"); + sb.append("\\end{tabular}"); + + System.out.println(sb.toString()); + } + + private void generateBestMeasureFractionsTable(){ + DecimalFormat df = new DecimalFormat( "0.00" ); + StringBuilder sb = new StringBuilder(); + sb.append("\\begin{tabular}{| l | c | c | c | c | c | c |} \n"); + sb.append(" & "); + sb.append("\\rotatebox{90}{improvement} & "); + sb.append("\\rotatebox{90}{equal quality (+)} & "); + sb.append("\\rotatebox{90}{equal quality (-)} & "); + sb.append("\\rotatebox{90}{inferior} & "); + sb.append("\\rotatebox{90}{not acceptable} & "); + sb.append("\\rotatebox{90}{error} "); + sb.append(" \\\\\n"); + sb.append("\\hline\n"); + + classesCount *= RATER; + +// sb.append("Default & "); +// for(int i = 0; i < 6; i++){ +// sb.append(df.format(defaultFractionsBest.get(i).getMean() * 100)); +// sb.append(" & "); +// } +// sb.append(df.format((double)defaultMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(defaultSuggestions/(double)classesCount * 4)); +// sb.append(" \\\\\n"); + + sb.append("Pellet / R-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlStandardFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)owlStandardMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(owlStandardSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet / F-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlFMeasureFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)owlFMeasureMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(owlFMeasureSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet / Gen. F-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlGenFMeasureFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)owlGenFMeasureMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(owlGenFMeasureSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet / pred. acc. & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlPredaccFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)owlPredaccMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(owlPredaccSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet / Jaccard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(owlJaccardFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)owlJaccardMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(owlJaccardSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / R-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastStandardFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)fastStandardMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(fastStandardSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / F-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastFMeasureFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)fastFMeasureMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(fastFMeasureSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / Gen. F-Measure & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastGenFMeasureFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)fastGenFMeasureMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(fastGenFMeasureSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / pred. acc. & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastPredaccFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)fastPredaccMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(fastPredaccSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("Pellet FIC / Jaccard & "); + for(int i = 0; i < 6; i++){ + sb.append(df.format(fastJaccardFractionsBest.get(i).getMean() * 100)); + if(i < 5){ + sb.append(" & "); + } + } +// sb.append(df.format((double)fastJaccardMissedImprovementsCount / classesCount * 100)); +// sb.append(" & "); +// sb.append(df.format(fastJaccardSuggestions/(double)classesCount * 4)); + sb.append(" \\\\\n"); + + sb.append("\\hline\n"); + sb.append("\\end{tabular}"); + System.out.println(sb.toString()); + } + + + + private boolean isImprovementSelected(NamedClass nc){ + Map<EvaluatedDescriptionClass, Integer> input = userInputMap.get(nc); + boolean improvementSelected = false; + for(EvaluatedDescriptionClass ec : input.keySet()){ + for(EvaluatedDescriptionClass ec2 : defaultMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : fastStandardMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : fastFMeasureMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : fastGenFMeasureMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : fastJaccardMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : fastPredaccMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : owlStandardMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : owlFMeasureMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : owlGenFMeasureMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : owlJaccardMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + for(EvaluatedDescriptionClass ec2 : owlPredaccMap.get(nc)){ + if(ec2.getAccuracy() < MIN_ACCURACY){ + continue; + } + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + if(input.get(ec) == 1){ + return true; + } + } + } + + } + + return improvementSelected; + } + + private void computeClassesToEvaluate(){ + classesToEvaluate.clear(); + for(Entry<NamedClass, List<EvaluatedDescriptionClass>> entry : defaultMap.entrySet()){ + for(EvaluatedDescriptionClass ec : entry.getValue()){ + if(ec.getAccuracy() >= MIN_ACCURACY){ + classesToEvaluate.add(entry.getKey()); + break; + } + } + } + } + + + private void evaluateDefault(){ Map<EvaluatedDescriptionClass, Integer> input; - for(Entry<NamedClass, List<EvaluatedDescriptionClass>> entry : owlEquivalenceStandardMap.entrySet()){ - input = userInputMap.get(entry.getKey()); - for(EvaluatedDescriptionClass ec : entry.getValue()){ + resetBestCount(); + Stat positionStat = new Stat(); + Stat moreInstancesCountStat = new Stat(); + Stat accStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : defaultMap.get(nc)){ for(EvaluatedDescriptionClass ec2 : input.keySet()){ - if(ec.getDescription().equals(ec2.getDescription())){ - value.addNumber(input.get(ec2)); + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + } } } - } + for(int i = 0; i < 6; i++){ + defaultFractions.get(i).addNumber((double)count[i]/defaultMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + defaultMissedImprovementsCount++; + } + } } - System.out.println(value.getMean()); + for(int i = 0; i < 6; i++){ + defaultFractionsBest.get(i).addNumber((double)bestCount[i]/classesToEvaluate.size()); + } + defaultPositionStats.add(positionStat); + defaultAccStats.add(accStat); + defaultAddInstancesCountStats.add(moreInstancesCountStat); + defaultHiddenInconsistenciesCountStats.add(hiddenIncCountStat); } - - private void loadOntology(File file) { - String ontologyPath = file.toURI().toString().substring(0, file.toURI().toString().lastIndexOf('.')) + ".owl"; - OWLOntologyManager man = OWLManager.createOWLOntologyManager(); - try { - ont = man.loadOntologyFromOntologyDocument(IRI.create(ontologyPath)); - logicalAxiomCount = ont.getLogicalAxiomCount(); - } catch (OWLOntologyCreationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + + private void evaluateOWLStandard(){ + Map<EvaluatedDescriptionClass, Integer> input; + resetBestCount(); + Stat positionStat = new Stat(); + Stat moreInstancesCountStat = new Stat(); + Stat accStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : owlStandardMap.get(nc)){ + for(EvaluatedDescriptionClass ec2 : input.keySet()){ + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + } + } + } + } + for(int i = 0; i < 6; i++){ + owlStandardFractions.get(i).addNumber((double)count[i]/owlStandardMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + owlStandardMissedImprovementsCount++; + } + } + } + for(int i = 0; i < 6; i++){ + owlStandardFractionsBest.get(i).addNumber((double)bestCount[i]/classesToEvaluate.size()); + } + owlStandardPositionStats.add(positionStat); + owlStandardAccStats.add(accStat); + owlStandardAddInstancesCountStats.add(moreInstancesCountStat); + owlStandardHiddenInconsistenciesCountStats.add(hiddenIncCountStat); } - - private void resetStats() { - acceptedGlobalStat = new Stat(); - rejectedGlobalStat = new Stat(); - failedGlobalStat = new Stat(); - - moreInstancesCountStats.clear(); - accStats.clear(); - accSelectedStats.clear(); - accAboveThresholdStats.clear(); - positionStats.clear(); - - moreInstancesCountStatsSC.clear(); - accStatsSC.clear(); - accSelectedStatsSC.clear(); - accAboveThresholdStatsSC.clear(); - positionStatsSC.clear(); - - equivalentLists = new ArrayList<NamedClass>(equivalentSuggestions.keySet()); - superLists = new ArrayList<NamedClass>(superSuggestions.keySet()); - mat = new short[suggestionListsCount][3]; + + private void evaluateOWLFMeasure(){ + Map<EvaluatedDescriptionClass, Integer> input; + resetBestCount(); + Stat positionStat = new Stat(); + Stat moreInstancesCountStat = new Stat(); + Stat accStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : owlFMeasureMap.get(nc)){ + for(EvaluatedDescriptionClass ec2 : input.keySet()){ + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + + } + } + } + } + for(int i = 0; i < 6; i++){ + owlFMeasureFractions.get(i).addNumber((double)count[i]/owlFMeasureMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + owlFMeasureMissedImprovementsCount++; + } + } + + } + for(int i = 0; i < 6; i++){ + owlFMeasureFractionsBest.get(i).addNumber((double)bestCount[i]/classesToEvaluate.size()); + } + owlFMeasurePositionStats.add(positionStat); + owlFMeasureAccStats.add(accStat); + owlFMeasureAddInstancesCountStats.add(moreInstancesCountStat); + owlFMeasureHiddenInconsistenciesCountStats.add(hiddenIncCountStat); } - - private void makeSingleStat() { - // equivalence classes - int candidatesAboveThresholdCount = 0; - int missesCount = 0; - int foundDescriptionCount = 0; - int noSensibleDescriptionCount = 0; - int inconsistencyDetected = 0; - int moreInstancesCount = 0; - int nonPerfectCount = 0; + + private void evaluateOWLGenFMeasure(){ + Map<EvaluatedDescriptionClass, Integer> input; + resetBestCount(); + Stat positionStat = new Stat(); Stat moreInstancesCountStat = new Stat(); Stat accStat = new Stat(); - Stat accSelectedStat = new Stat(); - Stat accAboveThresholdStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : owlGenFMeasureMap.get(nc)){ + for(EvaluatedDescriptionClass ec2 : input.keySet()){ + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + } + } + } + } + for(int i = 0; i < 6; i++){ + owlGenFMeasureFractions.get(i).addNumber((double)count[i]/owlGenFMeasureMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + owlGenFMeasureMissedImprovementsCount++; + } + } + + } + for(int i = 0; i < 6; i++){ + owlGenFMeasureFractionsBest.get(i).addNumber((double)bestCount[i]/classesToEvaluate.size()); + } + owlGenFMeasurePositionStats.add(positionStat); + owlGenFMeasureAccStats.add(accStat); + owlGenFMeasureAddInstancesCountStats.add(moreInstancesCountStat); + owlGenFMeasureHiddenInconsistenciesCountStats.add(hiddenIncCountStat); + } + + private void evaluateOWLJaccard(){ + Map<EvaluatedDescriptionClass, Integer> input; + resetBestCount(); Stat positionStat = new Stat(); - - // super classes - int candidatesAboveThresholdCountSC = 0; - int missesCountSC = 0; - int foundDescriptionCountSC = 0; - int noSensibleDescriptionCountSC = 0; - int inconsistencyDetectedSC = 0; - int moreInstancesCountSC = 0; - int nonPerfectCountSC = 0; - Stat moreInstancesCountStatSC = new Stat(); - Stat accStatSC = new Stat(); - Stat accSelectedStatSC = new Stat(); - Stat accAboveThresholdStatSC = new Stat(); - Stat positionStatSC = new Stat(); - // analysing input for equivalent class expressions - for (Entry<NamedClass, String> e : equivalentInput.entrySet()) { - NamedClass currentClass = e.getKey(); - String input = e.getValue(); - if(input.equals("-1")){ - input = "n"; + Stat moreInstancesCountStat = new Stat(); + Stat accStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : owlJaccardMap.get(nc)){ + for(EvaluatedDescriptionClass ec2 : input.keySet()){ + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + } + } + } } - if (input.equals("m")) { - missesCount++; - mat[equivalentLists.indexOf(currentClass)][2]++; - } else if (input.equals("n")) { - noSensibleDescriptionCount++; - mat[equivalentLists.indexOf(currentClass)][1]++; - } else { - mat[equivalentLists.indexOf(currentClass)][0]++; - int selectedIndex = Integer.parseInt(input); - EvaluatedDescriptionClass selectedExpression = equivalentSuggestions.get(currentClass).get( - selectedIndex); - double bestAcc = equivalentSuggestions.get(currentClass).get(0).getAccuracy(); - int selectedNr = selectedIndex + 1; - boolean isConsistent = selectedExpression.isConsistent(); - Set<Individual> addInst = selectedExpression.getAdditionalInstances(); - int additionalInstances = addInst.size(); - - accSelectedStat.addNumber(selectedExpression.getAccuracy()); - positionStat.addNumber(selectedNr); - foundDescriptionCount++; - if (!isConsistent) { - inconsistencyDetected++; + for(int i = 0; i < 6; i++){ + owlJaccardFractions.get(i).addNumber((double)count[i]/owlJaccardMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + owlJaccardMissedImprovementsCount++; } - if (additionalInstances > 0) { - moreInstancesCount++; - moreInstancesCountStat.addNumber(additionalInstances); + } + + } + for(int i = 0; i < 6; i++){ + owlJaccardFractionsBest.get(i).addNumber((double)bestCount[i]/classesToEvaluate.size()); + } + owlJaccardPositionStats.add(positionStat); + owlJaccardAccStats.add(accStat); + owlJaccardAddInstancesCountStats.add(moreInstancesCountStat); + owlJaccardHiddenInconsistenciesCountStats.add(hiddenIncCountStat); + } + + private void evaluateOWLPredacc(){ + Map<EvaluatedDescriptionClass, Integer> input; + resetBestCount(); + Stat positionStat = new Stat(); + Stat moreInstancesCountStat = new Stat(); + Stat accStat = new Stat(); + Stat hiddenIncCountStat = new Stat(); + boolean first = true; + for(NamedClass nc : classesToEvaluate){ + first = true; + resetCount(); + input = userInputMap.get(nc); + for(EvaluatedDescriptionClass ec : owlPredaccMap.get(nc)){ + for(EvaluatedDescriptionClass ec2 : input.keySet()){ + if(c.compare(ec.getDescription(), ec2.getDescription()) == 0){ + count[input.get(ec2) - 1]++; + if(best > input.get(ec2)){ + best = input.get(ec2); + } + if(best == 1 && first){ + first = false; + positionStat.addNumber(defaultMap.get(nc).indexOf(ec)); + moreInstancesCountStat.addNumber(ec.getAdditionalInstances().size()); + if(!ec.isConsistent()){ + hiddenIncCountStat.addNumber(1); + } + } + if(input.get(ec2) == 1){ + accStat.addNumber(ec.getAccuracy()); + } + } } - if (bestAcc < 0.9999) { - nonPerfectCount++; + } + for(int i = 0; i < 6; i++){ + owlPredaccFractions.get(i).addNumber((double)count[i]/owlPredaccMap.get(nc).size()); + } + bestCount[best - 1]++; + if(best != 1){ + if(isImprovementSelected(nc)){ + owlPredaccMissedImprovementsCount++; } } + } - acceptedStat.addNumber(foundDescriptionCount); - rejectedStat.addNumber(noSensibleDescriptionCount); - failedStat.addNumber(missesCount); - moreInstancesCountStats.add(moreInstancesCountStat); - accStats.add(accStat); - accSelectedStats.add(accSelectedStat); - accAboveThresholdStats.add(accSelectedStat); - positionStats.add(positionStat); - - // analysing input for super class expressions - for (Entry<NamedClass, String> e : superInput.entrySet()) { - NamedClass currentClass = e.getKey(); - if (e.getValue().equals("m")) { - missesCountSC++; - mat[superLists.indexOf(currentClass) + equivalentLists.size()][2]++; - } else if (e.getValue().equals("n")) { - noSensibleDescriptionCountSC++; - mat[superLists.indexOf(currentClass) + equivalentLists.size()][1]++; - } else { - mat[superLists.indexOf(currentClass) + equivalentLists.size()][0]++; - int selectedIndex = Integer.pa... [truncated message content] |
From: <lor...@us...> - 2010-08-04 10:59:50
|
Revision: 2234 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2234&view=rev Author: lorenz_b Date: 2010-08-04 10:59:43 +0000 (Wed, 04 Aug 2010) Log Message: ----------- Added unit test to compare reasoners. Added first test example for reasoner tests. Updated Fact++ lib. Added maxExpressionsTest option to CELOE. Modified Paths: -------------- trunk/doc/configOptions.txt trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java Added Paths: ----------- trunk/examples/testReasoners/ trunk/examples/testReasoners/father.owl trunk/examples/testReasoners/test.conf trunk/lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java Removed Paths: ------------- trunk/lib/fact/factplusplus-1.3.1.jar Modified: trunk/doc/configOptions.txt =================================================================== --- trunk/doc/configOptions.txt 2010-08-03 21:54:14 UTC (rev 2233) +++ trunk/doc/configOptions.txt 2010-08-04 10:59:43 UTC (rev 2234) @@ -558,6 +558,12 @@ default value: 10 conf file usage: celoe.maxNrOfResults = 10; +option name: maxClassDescriptionTests +description: The maximum number of candidate hypothesis the algorithm is allowed to test (0 = no limit). The algorithm will stop afterwards. (The real number of tests can be slightly higher, because this criterion usually won't be checked after each single test.) +allowed values: int +default value: 0 +conf file usage: celoe.maxClassDescriptionTests = 0; + option name: singleSuggestionMode description: Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples. allowed values: boolean Added: trunk/examples/testReasoners/father.owl =================================================================== --- trunk/examples/testReasoners/father.owl (rev 0) +++ trunk/examples/testReasoners/father.owl 2010-08-04 10:59:43 UTC (rev 2234) @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<rdf:RDF + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns="http://example.com/father#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:owl="http://www.w3.org/2002/07/owl#" + xml:base="http://example.com/father"> + <owl:Ontology rdf:about=""/> + <owl:Class rdf:ID="female"/> + <owl:Class rdf:ID="male"> + <owl:equivalentClass> + <owl:Class> + <owl:complementOf rdf:resource="#female"/> + </owl:Class> + </owl:equivalentClass> + </owl:Class> + <owl:ObjectProperty rdf:ID="hasChild"/> + <male rdf:ID="markus"> + <hasChild> + <female rdf:ID="anna"> + <hasChild> + <male rdf:ID="heinz"/> + </hasChild> + </female> + </hasChild> + </male> + <male rdf:ID="stefan"> + <hasChild rdf:resource="#markus"/> + </male> + <female rdf:ID="michelle"/> + <male rdf:ID="martin"> + <hasChild rdf:resource="#heinz"/> + </male> +</rdf:RDF> Added: trunk/examples/testReasoners/test.conf =================================================================== --- trunk/examples/testReasoners/test.conf (rev 0) +++ trunk/examples/testReasoners/test.conf 2010-08-04 10:59:43 UTC (rev 2234) @@ -0,0 +1,17 @@ +//import("family-benchmark/family-benchmark.owl"); +import("father.owl"); + +problem = classLearning; +//classLearning.classToDescribe = "http://www.benchmark.org/family#Female"; +classLearning.classToDescribe = "http://example.com/father#female"; +classLearning.useApproximations = true; +classLearning.type = equivalence; +classLearning.accuracyMethod = standard; +classLearning.checkConsistency = false; + +algorithm = celoe; +celoe.useNegation = false; +celoe.maxClassDescriptionTests = 10000; +celoe.maxExecutionTimeInSeconds = 0; +celoe.noisePercentage = 5.0; +celoe.maxNrOfResults = 10; \ No newline at end of file Added: trunk/lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Deleted: trunk/lib/fact/factplusplus-1.3.1.jar =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-08-03 21:54:14 UTC (rev 2233) +++ trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-08-04 10:59:43 UTC (rev 2234) @@ -173,6 +173,7 @@ options.add(CommonConfigOptions.getNoisePercentage()); options.add(CommonConfigOptions.getMaxDepth(7)); options.add(CommonConfigOptions.maxNrOfResults(10)); + options.add(CommonConfigOptions.maxClassDescriptionTests()); options.add(new BooleanConfigOption("singleSuggestionMode", "Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.", false)); options.add(CommonConfigOptions.getInstanceBasedDisjoints()); options.add(new BooleanConfigOption("filterDescriptionsFollowingFromKB", "If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions.", false)); @@ -671,7 +672,10 @@ } private boolean terminationCriteriaSatisfied() { - return stop || ((System.nanoTime() - nanoStartTime) >= (configurator.getMaxExecutionTimeInSeconds()*1000000000l)); + return + stop || + (configurator.getMaxClassDescriptionTests() != 0 && (expressionTests >= configurator.getMaxClassDescriptionTests())) || + (configurator.getMaxExecutionTimeInSeconds() != 0 && ((System.nanoTime() - nanoStartTime) >= (configurator.getMaxExecutionTimeInSeconds()*1000000000l))); } private void reset() { Modified: trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-08-03 21:54:14 UTC (rev 2233) +++ trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-08-04 10:59:43 UTC (rev 2234) @@ -182,6 +182,15 @@ return (Integer) ComponentManager.getInstance().getConfigOptionValue(cELOE, "maxNrOfResults") ; } /** +* maxClassDescriptionTests The maximum number of candidate hypothesis the algorithm is allowed to test (0 = no limit). The algorithm will stop afterwards. (The real number of tests can be slightly higher, because this criterion usually won't be checked after each single test.). +* mandatory: false| reinit necessary: true +* default value: 0 +* @return int +**/ +public int getMaxClassDescriptionTests() { +return (Integer) ComponentManager.getInstance().getConfigOptionValue(cELOE, "maxClassDescriptionTests") ; +} +/** * singleSuggestionMode Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.. * mandatory: false| reinit necessary: true * default value: false @@ -372,6 +381,15 @@ reinitNecessary = true; } /** +* @param maxClassDescriptionTests The maximum number of candidate hypothesis the algorithm is allowed to test (0 = no limit). The algorithm will stop afterwards. (The real number of tests can be slightly higher, because this criterion usually won't be checked after each single test.). +* mandatory: false| reinit necessary: true +* default value: 0 +**/ +public void setMaxClassDescriptionTests(int maxClassDescriptionTests) { +ComponentManager.getInstance().applyConfigEntry(cELOE, "maxClassDescriptionTests", maxClassDescriptionTests); +reinitNecessary = true; +} +/** * @param singleSuggestionMode Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.. * mandatory: false| reinit necessary: true * default value: false Added: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java 2010-08-04 10:59:43 UTC (rev 2234) @@ -0,0 +1,116 @@ +package org.dllearner.test.junit; + +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.dllearner.cli.Start; +import org.dllearner.core.ComponentInitException; +import org.dllearner.core.ComponentManager; +import org.dllearner.core.EvaluatedDescription; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; +import org.dllearner.parser.ParseException; +import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.utilities.owl.ConceptComparator; +import org.junit.Test; + +public class ReasonerTest { + + private ConceptComparator comparator = new ConceptComparator(); + + @Test + public void compareReasoners() throws FileNotFoundException, ComponentInitException, ParseException{ + + ComponentManager cm = ComponentManager.getInstance(); + Start start; + FastInstanceChecker reasoner; + LearningProblem lp; + LearningAlgorithm la; + KnowledgeSource ks; + + for(File conf : getTestConfigFiles()){ + start = new Start(conf); + lp = start.getLearningProblem(); + la = start.getLearningAlgorithm(); + ks = start.getSources().iterator().next(); + + TreeSet<? extends EvaluatedDescription> result = new TreeSet<EvaluatedDescription>(); + + for(String type : getReasonerTypes()){ + System.out.println("Using " + type + " reasoner..."); + try { + reasoner = cm.reasoner(FastInstanceChecker.class, ks); + reasoner.getConfigurator().setReasonerType(type); + reasoner.init(); + + lp.changeReasonerComponent(reasoner); + lp.init(); + + la.init(); + la.start(); + if(!result.isEmpty()){ + assertTrue(compareTreeSets(la.getCurrentlyBestEvaluatedDescriptions(), result)); + } + + result = la.getCurrentlyBestEvaluatedDescriptions(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + + } + + private Set<File> getTestConfigFiles(){ + Set<File> files = new HashSet<File>(); + File directory = new File("examples" + File.separator + "testReasoners"); + for(File file : directory.listFiles()){ + if(file.toString().endsWith(".conf")){ + files.add(file); + } + } + return files; + } + + private List<String> getReasonerTypes(){ + List<String> reasonerTypes = new LinkedList<String>(); + reasonerTypes.add("pellet"); + reasonerTypes.add("hermit"); + reasonerTypes.add("fact"); + + return reasonerTypes; + } + + public boolean compareTreeSets(TreeSet<? extends EvaluatedDescription> tree1, TreeSet<? extends EvaluatedDescription> tree2){ + boolean equal = true; + + List<? extends EvaluatedDescription> list1 = new ArrayList<EvaluatedDescription>(tree1); + List<? extends EvaluatedDescription> list2 = new ArrayList<EvaluatedDescription>(tree2); + + EvaluatedDescription d1; + EvaluatedDescription d2; + for(int i = 0; i < list1.size(); i++){ + d1 = list1.get(i); + d2 = list2.get(i); + if(!(comparator.compare(d1.getDescription(), d2.getDescription()) == 0) && + d1.getAccuracy() == d2.getAccuracy()){ + equal = false; + break; + } + } + + return equal; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-08-04 11:30:06
|
Revision: 2236 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2236&view=rev Author: jenslehmann Date: 2010-08-04 11:29:59 +0000 (Wed, 04 Aug 2010) Log Message: ----------- example cleanup and unit test improvements Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java Removed Paths: ------------- trunk/examples/testCaseSPARQLDescription/ Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java 2010-08-04 11:11:54 UTC (rev 2235) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java 2010-08-04 11:29:59 UTC (rev 2236) @@ -186,11 +186,11 @@ horizExp.setUpperLimit(1.0); options.add(horizExp); options.add(new BooleanConfigOption("improveSubsumptionHierarchy", "simplify subsumption hierarchy to reduce search space (see publication for description)", true)); - // allowed/ignored concepts/roles could also be a reasoner option (?) options.add(CommonConfigOptions.allowedConcepts()); options.add(CommonConfigOptions.ignoredConcepts()); -// options.add(CommonConfigOptions.allowedRoles()); -// options.add(CommonConfigOptions.ignoredRoles()); + // allowed/ignored roles are an unstable/untested feature + options.add(CommonConfigOptions.allowedRoles()); + options.add(CommonConfigOptions.ignoredRoles()); options.add(CommonConfigOptions.useAllConstructor()); options.add(CommonConfigOptions.useExistsConstructor()); options.add(CommonConfigOptions.useHasValueConstructor()); @@ -428,7 +428,8 @@ } public static String getName() { - return "refinement operator based learning algorithm II"; +// return "refinement operator based learning algorithm II"; + return "OCEL"; } public static String getUsage() { Modified: trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2010-08-04 11:11:54 UTC (rev 2235) +++ trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2010-08-04 11:29:59 UTC (rev 2236) @@ -41,6 +41,7 @@ import org.dllearner.cli.Start; import org.dllearner.core.ComponentInitException; import org.dllearner.core.ComponentManager; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; import org.dllearner.utilities.Helper; import org.junit.Test; @@ -72,6 +73,10 @@ // GPs can be excluded temporarily (because those tests are very time-consuming) boolean testGP = false; + // setting for SPARQL based tests (0 = no special treatment, 1 = test only SPARQL + // examples, 2 = skip SPARQL tests) + int sparql = 0; + // we use a logger, which outputs few messages (warnings, errors) SimpleLayout layout = new SimpleLayout(); ConsoleAppender consoleAppender = new ConsoleAppender(layout); @@ -118,10 +123,7 @@ // ignored due to errors (should be fixed; in case of long running problems or // our of memory, it is better to increase the noise parameter and add comments // in the conf file about "optimal" parameters) - - // problems before latest release (kept to see if errors re-occurr, - // delete before next release) - // ignore.add("./examples/sparql/govtrack.conf"); // HTTP 500 Server error + ignore.add("./examples/sparql/govtrack.conf"); // blank node handling error //working fine here ignore.add("./examples/sparql/SKOSTEST_local.conf"); // Out of Memory Error // ignore.add("./examples/sparql/scrobble.conf"); // HTTP 502 Proxy Error // ignore.add("./examples/family-benchmark/Cousin.conf"); // Out of Memory Error => disallowing ALL helps (TODO find out details) @@ -148,16 +150,22 @@ } else { System.out.println("Testing " + conf + " (example " + counter + " of " + total + ", time: " + sdf.format(new Date()) + ")."); long startTime = System.nanoTime(); - boolean success = false; + boolean success = false, started = false; try { // start example Start start = new Start(new File(conf)); - if(testGP || !(start.getLearningAlgorithm() instanceof GP)) { +// System.out.println("algorithm: " + start.getLearningAlgorithm()); + boolean isSparql = start.getSources().iterator().next() instanceof SparqlKnowledgeSource; + if((testGP || !(start.getLearningAlgorithm() instanceof GP)) && + (sparql == 0 || (sparql == 1 && isSparql) || (sparql == 2 && !isSparql) ) ) { + started = true; start.start(false); // test is successful if a concept was learned assert (start.getLearningAlgorithm().getCurrentlyBestDescription() != null); start.getReasonerComponent().releaseKB(); success = true; + } else { + System.out.println("Test skipped, because of GP/SPARQL settings."); } } catch (Exception e) { // unit test not succesful (exceptions are caught explicitly to find @@ -167,10 +175,12 @@ } long timeNeeded = System.nanoTime() - startTime; ComponentManager.getInstance().freeAllComponents(); - if(!success) { + if(!success && started) { System.out.println("TEST FAILED."); } - System.out.println("Test of " + conf + " completed in " + Helper.prettyPrintNanoSeconds(timeNeeded) + "."); + if(started) { + System.out.println("Test of " + conf + " completed in " + Helper.prettyPrintNanoSeconds(timeNeeded) + "."); + } } counter++; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-08-04 14:42:25
|
Revision: 2237 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2237&view=rev Author: jenslehmann Date: 2010-08-04 14:42:19 +0000 (Wed, 04 Aug 2010) Log Message: ----------- * created a directory test, which can be used for content in alpha/beta status, files required for unit tests or to reproduce issues/bugs * moved some content from /examples to /test Modified Paths: -------------- trunk/examples/sparql/scrobble.conf trunk/examples/sparql/scrobble.kb trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java Added Paths: ----------- trunk/test/ trunk/test/alzheimer/ trunk/test/ore/ trunk/test/suramin/ trunk/test/testDomainRange/ trunk/test/testReasoners/ Removed Paths: ------------- trunk/examples/alzheimer/ trunk/examples/ore/ trunk/examples/suramin/ trunk/examples/testDomainRange/ trunk/examples/testReasoners/ trunk/resources/test/ Modified: trunk/examples/sparql/scrobble.conf =================================================================== --- trunk/examples/sparql/scrobble.conf 2010-08-04 11:29:59 UTC (rev 2236) +++ trunk/examples/sparql/scrobble.conf 2010-08-04 14:42:19 UTC (rev 2237) @@ -14,6 +14,9 @@ * * UK-Tag AND (Rock-Tag OR EXISTS bioEvent.Death) * + * Note as of 2010/08/04: Example seems to work only sometimes. Often it gets stuck without + * finding a solution (for no obvious reason). + * */ sparql.recursionDepth = 3; @@ -24,9 +27,10 @@ refexamples.useNegation = false; refexamples.useAllConstructor = false; refexamples.useCardinalityRestrictions = false; +refexamples.maxExecutionTimeInSeconds = 10; -// refexamples.writeSearchTree = true; -// refexamples.searchTreeFile = "log/searchtree.txt"; +refexamples.writeSearchTree = true; +refexamples.searchTreeFile = "log/searchtree.txt"; // refexamples.replaceSearchTree = true; reasoner = fastInstanceChecker; Modified: trunk/examples/sparql/scrobble.kb =================================================================== --- trunk/examples/sparql/scrobble.kb 2010-08-04 11:29:59 UTC (rev 2236) +++ trunk/examples/sparql/scrobble.kb 2010-08-04 14:42:19 UTC (rev 2237) @@ -5,11 +5,3 @@ // progressive rock is rock "http://dbtune.org/musicbrainz/resource/tag/29" SUBCLASSOF "http://dbtune.org/musicbrainz/resource/tag/7". -//repetition for valid xml by OWL API - -// english implies british -"http://dbtune.org/musicbrainz/resource/tag/tag1391" SUBCLASSOF "http://dbtune.org/musicbrainz/resource/tag/tag171". -// Britain = UK -"http://dbtune.org/musicbrainz/resource/tag/tag171" = "http://dbtune.org/musicbrainz/resource/tag/tag237". -// progressive rock is rock -"http://dbtune.org/musicbrainz/resource/tag/tag29" SUBCLASSOF "http://dbtune.org/musicbrainz/resource/tag/tag7". Modified: trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2010-08-04 11:29:59 UTC (rev 2236) +++ trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2010-08-04 14:42:19 UTC (rev 2237) @@ -124,6 +124,8 @@ // our of memory, it is better to increase the noise parameter and add comments // in the conf file about "optimal" parameters) ignore.add("./examples/sparql/govtrack.conf"); // blank node handling error + ignore.add("./examples/sparql/difference/DBPediaSKOS_kohl_vs_angela.conf"); // XML parse error (works sometimes) + //working fine here ignore.add("./examples/sparql/SKOSTEST_local.conf"); // Out of Memory Error // ignore.add("./examples/sparql/scrobble.conf"); // HTTP 502 Proxy Error // ignore.add("./examples/family-benchmark/Cousin.conf"); // Out of Memory Error => disallowing ALL helps (TODO find out details) @@ -165,7 +167,7 @@ start.getReasonerComponent().releaseKB(); success = true; } else { - System.out.println("Test skipped, because of GP/SPARQL settings."); + System.out.println("Test skipped, because of GP or SPARQL settings."); } } catch (Exception e) { // unit test not succesful (exceptions are caught explicitly to find This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-08-04 15:35:18
|
Revision: 2240 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2240&view=rev Author: jenslehmann Date: 2010-08-04 15:35:09 +0000 (Wed, 04 Aug 2010) Log Message: ----------- - added licenses for various libraries in DL-Learner - extended README with a short description of libraries/licenses - updated build script - cleanup Modified Paths: -------------- trunk/README trunk/bin/dllearner trunk/bin/dllearner.bat trunk/bin/gui trunk/bin/gui.bat trunk/bin/quickstart trunk/bin/quickstart.bat trunk/bin/ws trunk/bin/ws.bat trunk/build.xml trunk/doc/manual/manual.tex trunk/src/dl-learner/org/dllearner/Info.java trunk/src/dl-learner/org/dllearner/core/configurators/FastRetrievalReasonerConfigurator.java trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIOntologyConfigurator.java trunk/src/dl-learner/org/dllearner/core/configurators/ROLComponent2Configurator.java trunk/src/dl-learner/org/dllearner/scripts/ConfigJavaGenerator.java Added Paths: ----------- trunk/lib/fact/FaCT++.license.txt trunk/lib/fact/gpl.txt trunk/lib/fact/lgpl-2.1.txt trunk/lib/hermit/gpl.txt trunk/lib/hermit/lgpl-3.0.txt trunk/lib/hermit/readme.txt trunk/lib/jena/copyright.txt trunk/lib/owlapi/COPYING.LESSER.txt trunk/lib/owlapi/COPYING.txt trunk/lib/owlapi/releasenotes.txt trunk/lib/pellet/LICENSE.txt trunk/lib/pellet/agpl-3.0.txt Removed Paths: ------------- trunk/endpoints.txt Modified: trunk/README =================================================================== --- trunk/README 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/README 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,7 +1,7 @@ README ====== -DL-Learner ist a tool to learn Description Logic concepts from positive and +DL-Learner is a tool to learn Description Logic concepts from positive and negative examples. Equivalently, it can learn OWL classes given objects as positive and negative instances. @@ -11,8 +11,18 @@ Mailing Lists: http://sourceforge.net/mail/?group_id=203619 Latest Release: http://sourceforge.net/project/showfiles.php?group_id=203619 -DL-Learner is Open Source and licenced unter the GNU General Public License. - Documentation for DL-Learner (e.g. various configuration options) can be found in the "doc" directory and at http://dl-learner.org. We recommend to read doc/manual.pdf to get started. + +DL-Learner is Open Source and licensed under the GNU General Public License. +(Copyright (c) 2007-2010, Jens Lehmann). + +DL-Learner uses several other libraries. An incomplete list is as follows: + * OWL API (licensed under LGPL) + * Pellet (licensed under AGPL 3 , (c) Clark & Parsia LLC) + * FaCT++ (licensed under LGPL, (c) The Victoria University of Manchester) + * HermiT (licensed under LGPL) + * Jena (Jena license, (c) Copyright Hewlett-Packard) + * Protege (licensed under MPL) + \ No newline at end of file Modified: trunk/bin/dllearner =================================================================== --- trunk/bin/dllearner 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/dllearner 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.1.11.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.0.jar:./lib/owlapi/owlapi-bin.jar:./lib/owlapi/owlapiV3-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapi.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/rdbtoonto/commons-collections-3.2.jar:./lib/rdbtoonto/commons-configuration-1.4.jar:./lib/rdbtoonto/commons-lang-2.3.jar:./lib/rdbtoonto/converter.jar:./lib/rdbtoonto/mysql-connector-java-5.1.6-bin.jar:./lib/rdbtoonto/rdbtoonto.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file Modified: trunk/bin/dllearner.bat =================================================================== --- trunk/bin/dllearner.bat 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/dllearner.bat 2010-08-04 15:35:09 UTC (rev 2240) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.1.11.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.0.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owlapi\owlapiV3-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapi.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\rdbtoonto\commons-collections-3.2.jar;.\lib\rdbtoonto\commons-configuration-1.4.jar;.\lib\rdbtoonto\commons-lang-2.3.jar;.\lib\rdbtoonto\converter.jar;.\lib\rdbtoonto\mysql-connector-java-5.1.6-bin.jar;.\lib\rdbtoonto\rdbtoonto.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file Modified: trunk/bin/gui =================================================================== --- trunk/bin/gui 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/gui 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.1.11.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.0.jar:./lib/owlapi/owlapi-bin.jar:./lib/owlapi/owlapiV3-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapi.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/rdbtoonto/commons-collections-3.2.jar:./lib/rdbtoonto/commons-configuration-1.4.jar:./lib/rdbtoonto/commons-lang-2.3.jar:./lib/rdbtoonto/converter.jar:./lib/rdbtoonto/mysql-connector-java-5.1.6-bin.jar:./lib/rdbtoonto/rdbtoonto.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file Modified: trunk/bin/gui.bat =================================================================== --- trunk/bin/gui.bat 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/gui.bat 2010-08-04 15:35:09 UTC (rev 2240) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.1.11.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.0.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owlapi\owlapiV3-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapi.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\rdbtoonto\commons-collections-3.2.jar;.\lib\rdbtoonto\commons-configuration-1.4.jar;.\lib\rdbtoonto\commons-lang-2.3.jar;.\lib\rdbtoonto\converter.jar;.\lib\rdbtoonto\mysql-connector-java-5.1.6-bin.jar;.\lib\rdbtoonto\rdbtoonto.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file Modified: trunk/bin/quickstart =================================================================== --- trunk/bin/quickstart 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/quickstart 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.1.11.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.0.jar:./lib/owlapi/owlapi-bin.jar:./lib/owlapi/owlapiV3-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapi.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/rdbtoonto/commons-collections-3.2.jar:./lib/rdbtoonto/commons-configuration-1.4.jar:./lib/rdbtoonto/commons-lang-2.3.jar:./lib/rdbtoonto/converter.jar:./lib/rdbtoonto/mysql-connector-java-5.1.6-bin.jar:./lib/rdbtoonto/rdbtoonto.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/quickstart.bat =================================================================== --- trunk/bin/quickstart.bat 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/quickstart.bat 2010-08-04 15:35:09 UTC (rev 2240) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.1.11.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.0.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owlapi\owlapiV3-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapi.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\rdbtoonto\commons-collections-3.2.jar;.\lib\rdbtoonto\commons-configuration-1.4.jar;.\lib\rdbtoonto\commons-lang-2.3.jar;.\lib\rdbtoonto\converter.jar;.\lib\rdbtoonto\mysql-connector-java-5.1.6-bin.jar;.\lib\rdbtoonto\rdbtoonto.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/ws =================================================================== --- trunk/bin/ws 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/ws 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.1.11.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.0.jar:./lib/owlapi/owlapi-bin.jar:./lib/owlapi/owlapiV3-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapi.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/rdbtoonto/commons-collections-3.2.jar:./lib/rdbtoonto/commons-configuration-1.4.jar:./lib/rdbtoonto/commons-lang-2.3.jar:./lib/rdbtoonto/converter.jar:./lib/rdbtoonto/mysql-connector-java-5.1.6-bin.jar:./lib/rdbtoonto/rdbtoonto.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file Modified: trunk/bin/ws.bat =================================================================== --- trunk/bin/ws.bat 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/bin/ws.bat 2010-08-04 15:35:09 UTC (rev 2240) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.1.11.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.0.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owlapi\owlapiV3-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapi.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\rdbtoonto\commons-collections-3.2.jar;.\lib\rdbtoonto\commons-configuration-1.4.jar;.\lib\rdbtoonto\commons-lang-2.3.jar;.\lib\rdbtoonto\converter.jar;.\lib\rdbtoonto\mysql-connector-java-5.1.6-bin.jar;.\lib\rdbtoonto\rdbtoonto.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/build.xml 2010-08-04 15:35:09 UTC (rev 2240) @@ -167,6 +167,7 @@ <!-- copy special files (INSTALL, README) --> <copy file="INSTALL" toDir="${release_tmp_dir}" /> <copy file="README" toDir="${release_tmp_dir}" /> + <copy file="LICENSE" toDir="${release_tmp_dir}" /> <!-- create tar.gz files (allows storing whether a file is executable) --> <tar longfile="gnu" destfile="dllearner-nosource-${today}.tar.gz" compression="gzip"> Modified: trunk/doc/manual/manual.tex =================================================================== --- trunk/doc/manual/manual.tex 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/doc/manual/manual.tex 2010-08-04 15:35:09 UTC (rev 2240) @@ -69,7 +69,7 @@ \emph{Conf files}, e.g. \verb|examples/father.conf| in this case, describe the learning problem and specify which algorithm you want to use to solve it. In the simplest case they just say where to find the background knowledge to use (in the OWL file \verb|examples/father.owl| in this case) and the positive and negative examples (marked by ``+'' and ``-'', respectively). When running the above command, you should get something similar to the following: \begin{verbatim} -DL-Learner 2010-01-04 command line interface +DL-Learner 2010-08-04 command line interface starting component manager ... OK (157ms) initialising component "OWL file" ... OK (0ms) initialising component "fast instance checker" ... OK (842ms) Deleted: trunk/endpoints.txt =================================================================== --- trunk/endpoints.txt 2010-08-04 15:30:05 UTC (rev 2239) +++ trunk/endpoints.txt 2010-08-04 15:35:09 UTC (rev 2240) @@ -1,12 +0,0 @@ -DEBUG - sending query: length: 44 | ENDPOINT: http://www4.wiwiss.fu-berlin.de/dblp/sparql -INFO - finished 1 of 19 -DEBUG - sending query: length: 44 | ENDPOINT: http://dbpedia.org/sparql -INFO - finished 2 of 19 -DEBUG - sending query: length: 44 | ENDPOINT: http://doapspace.org/sparql -DEBUG - RuntimeException in SparqlQuery (see /log/sparql.txt): HttpException: HttpException: 404 Not Found: rethrew: HttpException: 404 Not Found -DEBUG - query was (max. 300 chars displayed) SELECT DISTINCT ?c WHERE {[] a ?c }LIMIT 10 -WARN - rethrew: HttpException: 404 Not Found -INFO - ************** -INFO - endpoint working: http://dbpedia.org/sparql (more than 100 concepts ) needed 20405 ms -INFO - endpoint working: http://www4.wiwiss.fu-berlin.de/dblp/sparql (about 4 concepts ) needed 1756 ms -INFO - endpoint NOT working: http://doapspace.org/sparql needed 583 ms Added: trunk/lib/fact/FaCT++.license.txt =================================================================== --- trunk/lib/fact/FaCT++.license.txt (rev 0) +++ trunk/lib/fact/FaCT++.license.txt 2010-08-04 15:35:09 UTC (rev 2240) @@ -0,0 +1,31 @@ +Copyright (c) The Victoria University of Manchester 2004 + +This program is free software; you can redistribute it and/or modif +y +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +USA + +Any questions relating to this software should be directed to: + +Dmitry Tsarkov +Department of Computer Science +University of Manchester +Room 2.114 +Kilburn Building +Oxford Road +Manchester +M13 9PL +UK + +email: ts...@cs... Added: trunk/lib/fact/gpl.txt =================================================================== --- trunk/lib/fact/gpl.txt (rev 0) +++ trunk/lib/fact/gpl.txt 2010-08-04 15:35:09 UTC (rev 2240) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Added: trunk/lib/fact/lgpl-2.1.txt =================================================================== --- trunk/lib/fact/lgpl-2.1.txt (rev 0) +++ trunk/lib/fact/lgpl-2.1.txt 2010-08-04 15:35:09 UTC (rev 2240) @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a who... [truncated message content] |
From: <lor...@us...> - 2010-08-05 10:56:16
|
Revision: 2243 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2243&view=rev Author: lorenz_b Date: 2010-08-05 10:56:09 +0000 (Thu, 05 Aug 2010) Log Message: ----------- Added OWLlink support for OWLAPIReasoner and FastInstanceChecker. Added OWLlink lib. Added simple OWLlink test class. Moved reasoner JUnit test. Modified Paths: -------------- trunk/doc/configOptions.txt trunk/src/dl-learner/org/dllearner/core/configurators/FastInstanceCheckerConfigurator.java trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java Added Paths: ----------- trunk/lib/owllink/ trunk/lib/owllink/license.txt trunk/lib/owllink/owllink-bin.jar trunk/lib/owllink/releasenotes.txt trunk/src/dl-learner/org/dllearner/test/OWLLinkReasonerTest.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java Modified: trunk/doc/configOptions.txt =================================================================== --- trunk/doc/configOptions.txt 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/doc/configOptions.txt 2010-08-05 10:56:09 UTC (rev 2243) @@ -191,11 +191,17 @@ conf file usage: reasoner = fastInstanceChecker; option name: reasonerType -description: FaCT++, HermiT or Pellet to dematerialize -allowed values: String [fact, hermit, pellet] +description: FaCT++, HermiT, OWLlink or Pellet to dematerialize +allowed values: String [fact, hermit, owllink, pellet] default value: pellet conf file usage: fastInstanceChecker.reasonerType = pellet; +option name: owlLinkURL +description: the URL to the remote OWLlink server +allowed values: URL +default value: http://localhost:8080/ +conf file usage: fastInstanceChecker.owlLinkURL = http://localhost:8080/; + option name: defaultNegation description: Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class. allowed values: boolean @@ -215,12 +221,18 @@ conf file usage: reasoner = owlAPIReasoner; option name: reasonerType -description: FaCT++,, HermiT or Pellet, which means "fact", "hermit" or "pellet" -allowed values: String [fact, hermit, pellet] +description: FaCT++, HermiT, OWLlink or Pellet, which means "fact", "hermit", "owllink" or "pellet" +allowed values: String [fact, hermit, owllink, pellet] default value: pellet conf file usage: owlAPIReasoner.reasonerType = pellet; +option name: owlLinkURL +description: the URL to the remote OWLlink server +allowed values: URL +default value: http://localhost:8080/ +conf file usage: owlAPIReasoner.owlLinkURL = http://localhost:8080/; + component: Pellet reasoner (org.dllearner.reasoning.PelletReasoner) =================================================================== @@ -1027,8 +1039,8 @@ conf file usage: refinement.instanceBasedDisjoints = true; -component: refinement operator based learning algorithm II (org.dllearner.algorithms.refinement2.ROLComponent2) -=============================================================================================================== +component: OCEL (org.dllearner.algorithms.refinement2.ROLComponent2) +==================================================================== conf file usage: algorithm = refexamples; @@ -1110,6 +1122,18 @@ default value: not set conf file usage: refexamples.ignoredConcepts = ; +option name: allowedRoles +description: roles the algorithm is allowed to use +allowed values: Set<String> +default value: not set +conf file usage: refexamples.allowedRoles = ; + +option name: ignoredRoles +description: roles the algorithm must ignore +allowed values: Set<String> +default value: not set +conf file usage: refexamples.ignoredRoles = ; + option name: useAllConstructor description: specifies whether the universal concept constructor is used in the learning algorithm allowed values: boolean Added: trunk/lib/owllink/license.txt =================================================================== --- trunk/lib/owllink/license.txt (rev 0) +++ trunk/lib/owllink/license.txt 2010-08-05 10:56:09 UTC (rev 2243) @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. Added: trunk/lib/owllink/owllink-bin.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/owllink/owllink-bin.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/lib/owllink/releasenotes.txt =================================================================== --- trunk/lib/owllink/releasenotes.txt (rev 0) +++ trunk/lib/owllink/releasenotes.txt 2010-08-05 10:56:09 UTC (rev 2243) @@ -0,0 +1,11 @@ +---------------------------------- +OWLlink API +Release 1.0.1 +---------------------------------- + +Documentation can be found at http://owllink-owlapi.sourceforge.net + +The OWLlink API 1.0.1 is based on the OWL API 3. + +Note that previous version of the OWLlink API are based on a non-stable version of OWL API 3 that is incompatible with +the official released OWL API 3. Modified: trunk/src/dl-learner/org/dllearner/core/configurators/FastInstanceCheckerConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/FastInstanceCheckerConfigurator.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/core/configurators/FastInstanceCheckerConfigurator.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -20,6 +20,7 @@ package org.dllearner.core.configurators; +import java.net.URL; import java.util.Set; import org.dllearner.core.ComponentManager; import org.dllearner.core.KnowledgeSource; @@ -51,7 +52,7 @@ } /** -* reasonerType FaCT++, HermiT or Pellet to dematerialize. +* reasonerType FaCT++, HermiT, OWLlink or Pellet to dematerialize. * mandatory: false| reinit necessary: true * default value: pellet * @return String @@ -60,6 +61,15 @@ return (String) ComponentManager.getInstance().getConfigOptionValue(fastInstanceChecker, "reasonerType") ; } /** +* owlLinkURL the URL to the remote OWLlink server. +* mandatory: false| reinit necessary: true +* default value: http://localhost:8080/ +* @return URL +**/ +public URL getOwlLinkURL() { +return (URL) ComponentManager.getInstance().getConfigOptionValue(fastInstanceChecker, "owlLinkURL") ; +} +/** * defaultNegation Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.. * mandatory: false| reinit necessary: true * default value: true @@ -70,7 +80,7 @@ } /** -* @param reasonerType FaCT++, HermiT or Pellet to dematerialize. +* @param reasonerType FaCT++, HermiT, OWLlink or Pellet to dematerialize. * mandatory: false| reinit necessary: true * default value: pellet **/ @@ -79,6 +89,15 @@ reinitNecessary = true; } /** +* @param owlLinkURL the URL to the remote OWLlink server. +* mandatory: false| reinit necessary: true +* default value: http://localhost:8080/ +**/ +public void setOwlLinkURL(URL owlLinkURL) { +ComponentManager.getInstance().applyConfigEntry(fastInstanceChecker, "owlLinkURL", owlLinkURL); +reinitNecessary = true; +} +/** * @param defaultNegation Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.. * mandatory: false| reinit necessary: true * default value: true Modified: trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/core/configurators/OWLAPIReasonerConfigurator.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -20,6 +20,7 @@ package org.dllearner.core.configurators; +import java.net.URL; import java.util.Set; import org.dllearner.core.ComponentManager; import org.dllearner.core.KnowledgeSource; @@ -51,7 +52,7 @@ } /** -* reasonerType FaCT++,, HermiT or Pellet, which means "fact", "hermit" or "pellet". +* reasonerType FaCT++, HermiT, OWLlink or Pellet, which means "fact", "hermit", "owllink" or "pellet". * mandatory: false| reinit necessary: true * default value: pellet * @return String @@ -59,9 +60,18 @@ public String getReasonerType() { return (String) ComponentManager.getInstance().getConfigOptionValue(oWLAPIReasoner, "reasonerType") ; } +/** +* owlLinkURL the URL to the remote OWLlink server. +* mandatory: false| reinit necessary: true +* default value: http://localhost:8080/ +* @return URL +**/ +public URL getOwlLinkURL() { +return (URL) ComponentManager.getInstance().getConfigOptionValue(oWLAPIReasoner, "owlLinkURL") ; +} /** -* @param reasonerType FaCT++,, HermiT or Pellet, which means "fact", "hermit" or "pellet". +* @param reasonerType FaCT++, HermiT, OWLlink or Pellet, which means "fact", "hermit", "owllink" or "pellet". * mandatory: false| reinit necessary: true * default value: pellet **/ @@ -69,6 +79,15 @@ ComponentManager.getInstance().applyConfigEntry(oWLAPIReasoner, "reasonerType", reasonerType); reinitNecessary = true; } +/** +* @param owlLinkURL the URL to the remote OWLlink server. +* mandatory: false| reinit necessary: true +* default value: http://localhost:8080/ +**/ +public void setOwlLinkURL(URL owlLinkURL) { +ComponentManager.getInstance().applyConfigEntry(oWLAPIReasoner, "owlLinkURL", owlLinkURL); +reinitNecessary = true; +} /** * true, if this component needs reinitializsation. Modified: trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -20,6 +20,8 @@ package org.dllearner.reasoning; import java.io.File; +import java.net.MalformedURLException; +import java.net.URL; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -43,6 +45,7 @@ import org.dllearner.core.options.ConfigOption; import org.dllearner.core.options.InvalidConfigOptionValueException; import org.dllearner.core.options.StringConfigOption; +import org.dllearner.core.options.URLConfigOption; import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.BooleanValueRestriction; import org.dllearner.core.owl.Constant; @@ -151,11 +154,17 @@ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); StringConfigOption type = new StringConfigOption("reasonerType", - "FaCT++, HermiT or Pellet to dematerialize", "pellet", false, true); - type.setAllowedValues(new String[] { "fact", "hermit", "pellet" }); + "FaCT++, HermiT, OWLlink or Pellet to dematerialize", "pellet", false, true); + type.setAllowedValues(new String[] { "fact", "hermit", "owllink", "pellet" }); // closure option? see: // http://owlapi.svn.sourceforge.net/viewvc/owlapi/owl1_1/trunk/tutorial/src/main/java/uk/ac/manchester/owl/tutorial/examples/ClosureAxiomsExample.java?view=markup options.add(type); + try { + URLConfigOption owlLinkURL = new URLConfigOption("owlLinkURL", "the URL to the remote OWLlink server", new URL("http://localhost:8080/"), false, true); + options.add(owlLinkURL); + } catch (MalformedURLException e) { + e.printStackTrace(); + } options.add(new BooleanConfigOption("defaultNegation", "Whether to use default negation, i.e. an instance not being in a class means that it is in the negation of the class.", true, false, true)); StringConfigOption forallSemantics = new StringConfigOption("forallRetrievalSemantics", "This option controls how to interpret the all quantifier in \forall r.C. The standard option is" + @@ -195,6 +204,7 @@ // rc = new OWLAPIReasoner(sources); rc = ComponentFactory.getOWLAPIReasoner(sources); rc.getConfigurator().setReasonerType(configurator.getReasonerType()); + rc.getConfigurator().setOwlLinkURL(configurator.getOwlLinkURL()); rc.init(); // try { Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -20,6 +20,7 @@ package org.dllearner.reasoning; import java.io.File; +import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; @@ -32,11 +33,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; -import java.util.Map.Entry; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -48,6 +49,7 @@ import org.dllearner.core.options.ConfigOption; import org.dllearner.core.options.InvalidConfigOptionValueException; import org.dllearner.core.options.StringConfigOption; +import org.dllearner.core.options.URLConfigOption; import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.Constant; import org.dllearner.core.owl.Datatype; @@ -99,7 +101,10 @@ import org.semanticweb.owlapi.model.OWLTypedLiteral; import org.semanticweb.owlapi.model.RemoveAxiom; import org.semanticweb.owlapi.model.UnknownOWLOntologyException; +import org.semanticweb.owlapi.owllink.OWLlinkHTTPXMLReasonerFactory; +import org.semanticweb.owlapi.owllink.OWLlinkReasonerConfiguration; import org.semanticweb.owlapi.reasoner.FreshEntityPolicy; +import org.semanticweb.owlapi.reasoner.IllegalConfigurationException; import org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy; import org.semanticweb.owlapi.reasoner.Node; import org.semanticweb.owlapi.reasoner.NodeSet; @@ -181,11 +186,18 @@ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); - StringConfigOption type = new StringConfigOption("reasonerType", "FaCT++,, HermiT or Pellet, which means \"fact\", \"hermit\" or \"pellet\"", "pellet", false, true); - type.setAllowedValues(new String[] {"fact", "pellet", "hermit"}); + StringConfigOption type = new StringConfigOption("reasonerType", "FaCT++, HermiT, OWLlink or Pellet, which means \"fact\", \"hermit\", \"owllink\" or \"pellet\"", "pellet", false, true); + type.setAllowedValues(new String[] {"fact", "hermit", "owllink", "pellet" }); + // closure option? see: // http://owlapi.svn.sourceforge.net/viewvc/owlapi/owl1_1/trunk/tutorial/src/main/java/uk/ac/manchester/owl/tutorial/examples/ClosureAxiomsExample.java?view=markup options.add(type); + try { + URLConfigOption owlLinkURL = new URLConfigOption("owlLinkURL", "the URL to the remote OWLlink server", new URL("http://localhost:8080/"), false, true); + options.add(owlLinkURL); + } catch (MalformedURLException e) { + e.printStackTrace(); + } return options; } @@ -299,6 +311,11 @@ // TODO: add method to find datatypes } } + try { + ontology = manager.createOntology(IRI.create("http://dl-learner/all"), new HashSet<OWLOntology>(owlAPIOntologies)); + } catch (OWLOntologyCreationException e1) { + e1.printStackTrace(); + } //configure reasoner ReasonerProgressMonitor progressMonitor = new NullReasonerProgressMonitor(); @@ -318,7 +335,7 @@ } else if(configurator.getReasonerType().equals("hermit")){ // instantiate HermiT reasoner reasoner = new ReasonerFactory().createNonBufferingReasoner(ontology, conf); - } else { + } else if(configurator.getReasonerType().equals("pellet")){ // instantiate Pellet reasoner reasoner = PelletReasonerFactory.getInstance().createNonBufferingReasoner(ontology, conf); @@ -326,6 +343,16 @@ // output will be very large Logger pelletLogger = Logger.getLogger("org.mindswap.pellet"); pelletLogger.setLevel(Level.WARN); + } else { + try { + OWLlinkHTTPXMLReasonerFactory factory = new OWLlinkHTTPXMLReasonerFactory(); + URL url = getConfigurator().getOwlLinkURL();//Configure the server end-point + OWLlinkReasonerConfiguration config = new OWLlinkReasonerConfiguration(url); + reasoner = factory.createNonBufferingReasoner(ontology, config); + System.out.println(reasoner.getReasonerName()); + } catch (IllegalConfigurationException e) { + e.printStackTrace(); + } } /* Added: trunk/src/dl-learner/org/dllearner/test/OWLLinkReasonerTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/OWLLinkReasonerTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/test/OWLLinkReasonerTest.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -0,0 +1,44 @@ +package org.dllearner.test; + +import java.net.MalformedURLException; +import java.net.URL; + +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.owllink.OWLlinkHTTPXMLReasonerFactory; +import org.semanticweb.owlapi.owllink.OWLlinkReasoner; +import org.semanticweb.owlapi.owllink.OWLlinkReasonerConfiguration; +import org.semanticweb.owlapi.reasoner.NodeSet; + +public class OWLLinkReasonerTest { + + /** + * @param args + * @throws OWLOntologyCreationException + * @throws MalformedURLException + */ + public static void main(String[] args) throws OWLOntologyCreationException, MalformedURLException { + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + + OWLOntology ontology = manager.createOntology(IRI.create("tutorial")); + OWLClass A = manager.getOWLDataFactory().getOWLClass(IRI.create("http://tutorial#A")); + OWLClass B = manager.getOWLDataFactory().getOWLClass(IRI.create("http://tutorial#B")); + OWLAxiom a = manager.getOWLDataFactory().getOWLSubClassOfAxiom(A, B); + manager.addAxiom(ontology, a); + + OWLlinkHTTPXMLReasonerFactory factory = new OWLlinkHTTPXMLReasonerFactory(); + URL url = new URL("http://localhost:8080");//Configure the server end-point + OWLlinkReasonerConfiguration config = new OWLlinkReasonerConfiguration(url); + OWLlinkReasoner reasoner = factory.createReasoner(ontology, config); + + NodeSet<OWLClass> classes = reasoner.getSubClasses(manager.getOWLDataFactory().getOWLThing(), true); + System.out.println(classes.getFlattened()); + + } + +} Deleted: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTest.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -1,116 +0,0 @@ -package org.dllearner.test.junit; - -import static org.junit.Assert.assertTrue; - -import java.io.File; -import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -import org.dllearner.cli.Start; -import org.dllearner.core.ComponentInitException; -import org.dllearner.core.ComponentManager; -import org.dllearner.core.EvaluatedDescription; -import org.dllearner.core.KnowledgeSource; -import org.dllearner.core.LearningAlgorithm; -import org.dllearner.core.LearningProblem; -import org.dllearner.parser.ParseException; -import org.dllearner.reasoning.FastInstanceChecker; -import org.dllearner.utilities.owl.ConceptComparator; -import org.junit.Test; - -public class ReasonerTest { - - private ConceptComparator comparator = new ConceptComparator(); - - @Test - public void compareReasoners() throws FileNotFoundException, ComponentInitException, ParseException{ - - ComponentManager cm = ComponentManager.getInstance(); - Start start; - FastInstanceChecker reasoner; - LearningProblem lp; - LearningAlgorithm la; - KnowledgeSource ks; - - for(File conf : getTestConfigFiles()){ - start = new Start(conf); - lp = start.getLearningProblem(); - la = start.getLearningAlgorithm(); - ks = start.getSources().iterator().next(); - - TreeSet<? extends EvaluatedDescription> result = new TreeSet<EvaluatedDescription>(); - - for(String type : getReasonerTypes()){ - System.out.println("Using " + type + " reasoner..."); - try { - reasoner = cm.reasoner(FastInstanceChecker.class, ks); - reasoner.getConfigurator().setReasonerType(type); - reasoner.init(); - - lp.changeReasonerComponent(reasoner); - lp.init(); - - la.init(); - la.start(); - if(!result.isEmpty()){ - assertTrue(compareTreeSets(la.getCurrentlyBestEvaluatedDescriptions(), result)); - } - - result = la.getCurrentlyBestEvaluatedDescriptions(); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - } - - } - - private Set<File> getTestConfigFiles(){ - Set<File> files = new HashSet<File>(); - File directory = new File("test" + File.separator + "testReasoners"); - for(File file : directory.listFiles()){ - if(file.toString().endsWith(".conf")){ - files.add(file); - } - } - return files; - } - - private List<String> getReasonerTypes(){ - List<String> reasonerTypes = new LinkedList<String>(); - reasonerTypes.add("pellet"); - reasonerTypes.add("hermit"); - reasonerTypes.add("fact"); - - return reasonerTypes; - } - - public boolean compareTreeSets(TreeSet<? extends EvaluatedDescription> tree1, TreeSet<? extends EvaluatedDescription> tree2){ - boolean equal = true; - - List<? extends EvaluatedDescription> list1 = new ArrayList<EvaluatedDescription>(tree1); - List<? extends EvaluatedDescription> list2 = new ArrayList<EvaluatedDescription>(tree2); - - EvaluatedDescription d1; - EvaluatedDescription d2; - for(int i = 0; i < list1.size(); i++){ - d1 = list1.get(i); - d2 = list2.get(i); - if(!(comparator.compare(d1.getDescription(), d2.getDescription()) == 0) && - d1.getAccuracy() == d2.getAccuracy()){ - equal = false; - break; - } - } - - return equal; - } - -} Modified: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-05 10:10:37 UTC (rev 2242) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-05 10:56:09 UTC (rev 2243) @@ -22,15 +22,24 @@ import static org.junit.Assert.assertTrue; import java.io.File; +import java.io.FileNotFoundException; import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.SortedSet; +import java.util.TreeSet; import org.apache.log4j.Logger; +import org.dllearner.cli.Start; import org.dllearner.core.ComponentInitException; import org.dllearner.core.ComponentManager; +import org.dllearner.core.EvaluatedDescription; import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; import org.dllearner.core.ReasonerComponent; import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; @@ -48,6 +57,7 @@ import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.test.junit.TestOntologies.TestOntology; +import org.dllearner.utilities.owl.ConceptComparator; import org.junit.Test; /** @@ -61,6 +71,8 @@ private static Logger logger = Logger.getLogger(ReasonerTests.class); private String baseURI; + + private ConceptComparator comparator = new ConceptComparator(); public KB getSimpleKnowledgeBase() { String kb = "person SUB TOP."; @@ -276,7 +288,7 @@ assertTrue(reasoner.getDomain(property).equals(description)); - file = "examples/ore/koala.owl"; + file = "test/ore/koala.owl"; ks = cm.knowledgeSource(OWLFile.class); cm.applyConfigEntry(ks, "url", new File(file).toURI().toURL()); ks.init(); @@ -298,6 +310,93 @@ System.out.println(res); } + @Test + public void compareReasoners() throws FileNotFoundException, ComponentInitException, ParseException{ + + ComponentManager cm = ComponentManager.getInstance(); + Start start; + FastInstanceChecker reasoner; + LearningProblem lp; + LearningAlgorithm la; + KnowledgeSource ks; + + for(File conf : getTestConfigFiles()){ + start = new Start(conf); + lp = start.getLearningProblem(); + la = start.getLearningAlgorithm(); + ks = start.getSources().iterator().next(); + + TreeSet<? extends EvaluatedDescription> result = new TreeSet<EvaluatedDescription>(); + + for(String type : getReasonerTypes()){ + System.out.println("Using " + type + " reasoner..."); + try { + reasoner = cm.reasoner(FastInstanceChecker.class, ks); + reasoner.getConfigurator().setReasonerType(type); + reasoner.init(); + + lp.changeReasonerComponent(reasoner); + lp.init(); + + la.init(); + la.start(); + if(!result.isEmpty()){ + assertTrue(compareTreeSets(la.getCurrentlyBestEvaluatedDescriptions(), result)); + } + + result = la.getCurrentlyBestEvaluatedDescriptions(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + + } + + public boolean compareTreeSets(TreeSet<? extends EvaluatedDescription> tree1, TreeSet<? extends EvaluatedDescription> tree2){ + boolean equal = true; + + List<? extends EvaluatedDescription> list1 = new ArrayList<EvaluatedDescription>(tree1); + List<? extends EvaluatedDescription> list2 = new ArrayList<EvaluatedDescription>(tree2); + + EvaluatedDescription d1; + EvaluatedDescription d2; + for(int i = 0; i < list1.size(); i++){ + d1 = list1.get(i); + d2 = list2.get(i); + if(!(comparator.compare(d1.getDescription(), d2.getDescription()) == 0) && + d1.getAccuracy() == d2.getAccuracy()){ + equal = false; + break; + } + } + + return equal; + } + + private Set<File> getTestConfigFiles(){ + Set<File> files = new HashSet<File>(); + File directory = new File("test" + File.separator + "testReasoners"); + for(File file : directory.listFiles()){ + if(file.toString().endsWith(".conf")){ + files.add(file); + } + } + return files; + } + + private List<String> getReasonerTypes(){ + List<String> reasonerTypes = new LinkedList<String>(); + reasonerTypes.add("pellet"); + reasonerTypes.add("hermit"); + reasonerTypes.add("fact"); + reasonerTypes.add("owllink"); + + return reasonerTypes; + } + private List<Individual> getIndSet(String... inds) { List<Individual> individuals = new LinkedList<Individual>(); for(String ind : inds) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2010-08-06 12:13:38
|
Revision: 2245 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2245&view=rev Author: lorenz_b Date: 2010-08-06 12:13:29 +0000 (Fri, 06 Aug 2010) Log Message: ----------- Added unit test for OWLlink. Added second example for reasoner tests. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java trunk/test/testReasoners/test.conf Added Paths: ----------- trunk/src/dl-learner/org/dllearner/test/junit/OWLlinkTest.java trunk/test/testReasoners/swore.rdf trunk/test/testReasoners/test2.conf Added: trunk/src/dl-learner/org/dllearner/test/junit/OWLlinkTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/OWLlinkTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/test/junit/OWLlinkTest.java 2010-08-06 12:13:29 UTC (rev 2245) @@ -0,0 +1,85 @@ +package org.dllearner.test.junit; + +import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Random; + +import org.dllearner.algorithms.gp.GP; +import org.dllearner.cli.QuickStart; +import org.dllearner.cli.Start; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.reasoning.OWLAPIReasoner; +import org.junit.Test; + +public class OWLlinkTest { + + private static final int EXAMPLE_COUNT = 5; + private static final boolean RANDOMIZE = true; + private static final String OWL_LINK_URL = "http://localhost:8080/"; + + @Test + public void testOWLlink(){ + try { + // map containing a list of conf files for each path + HashMap<String, ArrayList<String>> confFiles = new HashMap<String, ArrayList<String>>(); + String exampleDir = "." + File.separator + "examples"; + File f = new File(exampleDir); + QuickStart.getAllConfs(f, exampleDir, confFiles); + + // put all examples in a flat list + List<String> examples = new LinkedList<String>(); + for(Map.Entry<String,ArrayList<String>> entry : confFiles.entrySet()) { + for(String file : entry.getValue()) { + examples.add(entry.getKey() + file + ".conf"); + } + } + + if(RANDOMIZE) { + Collections.shuffle(examples, new Random()); + } else { + Collections.sort(examples); + } + + int cnt = 0; + Start start; + ReasonerComponent rc; + for(String conf : examples) { + if(cnt == EXAMPLE_COUNT){ + break; + } + start = new Start(new File(conf)); + if(start.getLearningAlgorithm() instanceof GP || start.getSources().iterator().next() instanceof SparqlKnowledgeSource){ + continue; + } + rc = start.getReasonerComponent(); + if(rc instanceof OWLAPIReasoner){ + ((OWLAPIReasoner)rc).getConfigurator().setReasonerType("owllink"); + ((OWLAPIReasoner)rc).getConfigurator().setOwlLinkURL(new URL(OWL_LINK_URL)); + } else if(rc instanceof FastInstanceChecker){ + ((FastInstanceChecker)rc).getConfigurator().setReasonerType("owllink"); + ((FastInstanceChecker)rc).getConfigurator().setOwlLinkURL(new URL(OWL_LINK_URL)); + } else { + continue; + } + System.out.println("Testing " + conf); + rc.init(); + start.getLearningAlgorithm().start(); + cnt++; + } + } catch (Exception e) { + e.printStackTrace(); + assert ( false ); + } + + + } + +} Modified: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-05 13:16:25 UTC (rev 2244) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-06 12:13:29 UTC (rev 2245) @@ -345,6 +345,7 @@ KnowledgeSource ks; for(File conf : getTestConfigFiles()){ + System.out.println("Test file: " + conf.getName()); start = new Start(conf); lp = start.getLearningProblem(); la = start.getLearningAlgorithm(); Added: trunk/test/testReasoners/swore.rdf =================================================================== --- trunk/test/testReasoners/swore.rdf (rev 0) +++ trunk/test/testReasoners/swore.rdf 2010-08-06 12:13:29 UTC (rev 2245) @@ -0,0 +1,2273 @@ +<?xml version="1.0"?> + + +<!DOCTYPE rdf:RDF [ + <!ENTITY req "http://ns.softwiki.de/req/" > + <!ENTITY foaf2 "http://xmlns.com/foaf/0.1/" > + <!ENTITY dcmitype "http://purl.org/dc/dcmitype/" > + <!ENTITY owl "http://www.w3.org/2002/07/owl#" > + <!ENTITY dc "http://purl.org/dc/elements/1.1/" > + <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > + <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" > + <!ENTITY foaf "http://www.holygoat.co.uk/foaf.rdf#" > + <!ENTITY skos "http://www.w3.org/2004/02/skos/core#" > + <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > + <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > + <!ENTITY tags "http://www.holygoat.co.uk/owl/redwood/0.1/tags/" > +]> + + +<rdf:RDF xmlns="http://ns.softwiki.de/req/" + xml:base="http://ns.softwiki.de/req/" + xmlns:tags="http://www.holygoat.co.uk/owl/redwood/0.1/tags/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:foaf2="http://xmlns.com/foaf/0.1/" + xmlns:foaf="http://www.holygoat.co.uk/foaf.rdf#" + xmlns:dcmitype="http://purl.org/dc/dcmitype/" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#" + xmlns:owl="http://www.w3.org/2002/07/owl#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:req="http://ns.softwiki.de/req/" + xmlns:skos="http://www.w3.org/2004/02/skos/core#"> + <owl:Ontology rdf:about="http://ns.softwiki.de/req/"> + <rdfs:label rdf:datatype="&xsd;string">SoftWiki Ontology for Requirements Engineering</rdfs:label> + <rdfs:comment rdf:datatype="&xsd;string">A requirements engineering ontology for the SoftWiki project.</rdfs:comment> + <dc:contributor rdf:datatype="&xsd;string">Jens Lehmann</dc:contributor> + <dc:contributor rdf:datatype="&xsd;string">Sebastian Dietzold</dc:contributor> + <owl:versionInfo rdf:datatype="&xsd;string">version 1.00 - Thomas Riechert, Steffen Lohmann, Kim Lauenroth, Philipp Heim - starting the next generation of SWORE on 8th of July 2008 in Duisburg +version 0.8 - Sebastian Dietzold - skos, tags and dc alignment (title now functional) +version 0.7 - Sebastian Dietzold - labels completed and namespace correction +version 0.6 - name space changed to ns.softwiki.de/req +version 0.5 - refined by Thomas according to ESWC Poster submission +version 0.4 - refined by Jens on the way home from Essen +version 0.3 - refined by Jens during discussion with Kim and Steffen on 13 March 2007 in Essen +version 0.2 - refined by Thomas and Jens in the evening of 12 March 2007 in Essen +version 0.1 - simple initial version by Thomas and Jens before meeting in Essen</owl:versionInfo> + </owl:Ontology> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Annotation properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + <owl:AnnotationProperty rdf:about="&owl;versionInfo"/> + <owl:AnnotationProperty rdf:about="&dc;contributor"/> + <owl:AnnotationProperty rdf:about="&rdfs;label"/> + <owl:AnnotationProperty rdf:about="&rdfs;comment"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://ns.softwiki.de/req/broader --> + + <owl:ObjectProperty rdf:about="&req;broader"/> + + + + <!-- http://ns.softwiki.de/req/comments --> + + <owl:ObjectProperty rdf:about="&req;comments"> + <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/> + <rdfs:domain rdf:resource="&req;AbstractComment"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/conflicts --> + + <owl:ObjectProperty rdf:about="&req;conflicts"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <owl:inverseOf rdf:resource="&req;conflicts"/> + <rdfs:subPropertyOf rdf:resource="&req;undirectedrelation"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/cui --> + + <owl:ObjectProperty rdf:about="&req;cui"/> + + + + <!-- http://ns.softwiki.de/req/defines --> + + <owl:ObjectProperty rdf:about="&req;defines"> + <rdfs:label rdf:datatype="&xsd;string">defines</rdfs:label> + <rdfs:domain rdf:resource="&req;Author"/> + <rdfs:range> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;AbstractComment"/> + <rdf:Description rdf:about="&req;AbstractRequirement"/> + <rdf:Description rdf:about="&req;Keyword"/> + </owl:unionOf> + </owl:Class> + </rdfs:range> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/depentsOn --> + + <owl:ObjectProperty rdf:about="&req;depentsOn"> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;entails"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/details --> + + <owl:ObjectProperty rdf:about="&req;details"> + <rdfs:label rdf:datatype="&xsd;string">details</rdfs:label> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/documentation --> + + <owl:ObjectProperty rdf:about="&req;documentation"/> + + + + <!-- http://ns.softwiki.de/req/entails --> + + <owl:ObjectProperty rdf:about="&req;entails"> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/invalidates --> + + <owl:ObjectProperty rdf:about="&req;invalidates"> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isCommentedBy --> + + <owl:ObjectProperty rdf:about="&req;isCommentedBy"> + <rdfs:range rdf:resource="&req;AbstractComment"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;comments"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isCreatedBy --> + + <owl:ObjectProperty rdf:about="&req;isCreatedBy"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:label>is created by</rdfs:label> + <rdfs:comment>specifies the persons who created the requirement</rdfs:comment> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isDefinedBy --> + + <owl:ObjectProperty rdf:about="&req;isDefinedBy"> + <rdfs:label rdf:datatype="&xsd;string">defined by</rdfs:label> + <rdfs:range rdf:resource="&req;Author"/> + <owl:inverseOf rdf:resource="&req;defines"/> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;AbstractComment"/> + <rdf:Description rdf:about="&req;AbstractRequirement"/> + <rdf:Description rdf:about="&req;Keyword"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isDetailedBy --> + + <owl:ObjectProperty rdf:about="&req;isDetailedBy"> + <rdfs:label rdf:datatype="&xsd;string">detailed by</rdfs:label> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;details"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isInvalidFor --> + + <owl:ObjectProperty rdf:about="&req;isInvalidFor"> + <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;invalidates"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isLeadingTo --> + + <owl:ObjectProperty rdf:about="&req;isLeadingTo"> + <rdfs:label rdf:datatype="&xsd;string">lead to</rdfs:label> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&req;AbstractSource"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isRedundant --> + + <owl:ObjectProperty rdf:about="&req;isRedundant"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <owl:inverseOf rdf:resource="&req;isRedundant"/> + <rdfs:subPropertyOf rdf:resource="&req;undirectedrelation"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isRelated --> + + <owl:ObjectProperty rdf:about="&req;isRelated"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <owl:inverseOf rdf:resource="&req;isRelated"/> + <rdfs:subPropertyOf rdf:resource="&req;undirectedrelation"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isReleatedTo --> + + <owl:ObjectProperty rdf:about="&req;isReleatedTo"> + <rdfs:range rdf:resource="&req;Customer"/> + <rdfs:domain rdf:resource="&req;CustomerRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/isSimilarTo --> + + <owl:ObjectProperty rdf:about="&req;isSimilarTo"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;isSimilarTo"/> + <rdfs:subPropertyOf rdf:resource="&req;undirectedrelation"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/leadsTo --> + + <owl:ObjectProperty rdf:about="&req;leadsTo"> + <rdfs:label rdf:datatype="&xsd;string">leads to</rdfs:label> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;AbstractSource"/> + <owl:inverseOf rdf:resource="&req;isLeadingTo"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/rates --> + + <owl:ObjectProperty rdf:about="&req;rates"> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;Rating"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/refersTo --> + + <owl:ObjectProperty rdf:about="&req;refersTo"> + <rdfs:label rdf:datatype="&xsd;string">refers to</rdfs:label> + <rdfs:comment xml:lang="de">Relevanter Aspekt eines geplantes Systems (ähnlich zu Tagging).</rdfs:comment> + <rdfs:range rdf:resource="&req;AbstractReferencePoint"/> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <owl:inverseOf rdf:resource="&req;relevantRequirements"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/relevantRequirements --> + + <owl:ObjectProperty rdf:about="&req;relevantRequirements"> + <rdfs:label rdf:datatype="&xsd;string">relevant requirements</rdfs:label> + <rdfs:domain rdf:resource="&req;AbstractReferencePoint"/> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/specifies --> + + <owl:ObjectProperty rdf:about="&req;specifies"> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;Topic"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/undirectedrelation --> + + <owl:ObjectProperty rdf:about="&req;undirectedrelation"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <rdfs:comment rdf:datatype="&xsd;string">Rule: only one ration between the same pair of two requirements allowed.</rdfs:comment> + <owl:inverseOf rdf:resource="&req;undirectedrelation"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/votes --> + + <owl:ObjectProperty rdf:about="&req;votes"> + <rdfs:range rdf:resource="&req;AbstractRequirement"/> + <rdfs:domain rdf:resource="&req;Stakeholder"/> + </owl:ObjectProperty> + + + + <!-- http://ns.softwiki.de/req/willLeadTo --> + + <owl:ObjectProperty rdf:about="&req;willLeadTo"> + <rdfs:domain rdf:resource="&req;Requirement"/> + <rdfs:range rdf:resource="&req;SystemRequirement"/> + </owl:ObjectProperty> + + + + <!-- http://www.holygoat.co.uk/owl/redwood/0.1/tags/taggedWithTag --> + + <owl:ObjectProperty rdf:about="&tags;taggedWithTag"> + <rdfs:label xml:lang="de">Tags</rdfs:label> + </owl:ObjectProperty> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Data properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://ns.softwiki.de/req/averagePriorityRate --> + + <owl:DatatypeProperty rdf:about="&req;averagePriorityRate"> + <rdfs:subPropertyOf rdf:resource="&req;averageRate"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/averageQualityRate --> + + <owl:DatatypeProperty rdf:about="&req;averageQualityRate"> + <rdfs:subPropertyOf rdf:resource="&req;averageRate"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/averageRate --> + + <owl:DatatypeProperty rdf:about="&req;averageRate"> + <rdfs:comment rdf:datatype="&xsd;string">Is calculated by given rates.</rdfs:comment> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&xsd;float"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/changeDate --> + + <owl:DatatypeProperty rdf:about="&req;changeDate"> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&xsd;dateTime"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/creationDate --> + + <owl:DatatypeProperty rdf:about="&req;creationDate"> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range rdf:resource="&xsd;dateTime"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/definition --> + + <owl:DatatypeProperty rdf:about="&req;definition"> + <rdfs:domain rdf:resource="&req;DefinedKeyword"/> + <rdfs:range rdf:resource="&xsd;string"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/rate --> + + <owl:DatatypeProperty rdf:about="&req;rate"> + <rdfs:domain rdf:resource="&req;Rating"/> + <rdfs:range rdf:resource="&xsd;float"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/rational --> + + <owl:DatatypeProperty rdf:about="&req;rational"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:label rdf:datatype="&xsd;string">rational</rdfs:label> + <rdfs:range rdf:resource="&xsd;string"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/result --> + + <owl:DatatypeProperty rdf:about="&req;result"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:label rdf:datatype="&xsd;string">result</rdfs:label> + <rdfs:comment xml:lang="de">z.B. Veränderung von priority und agreement</rdfs:comment> + <rdfs:range rdf:resource="&xsd;string"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/role --> + + <owl:DatatypeProperty rdf:about="&req;role"> + <rdfs:domain rdf:resource="&req;Author"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/scenarioStep --> + + <owl:DatatypeProperty rdf:about="&req;scenarioStep"> + <rdfs:label rdf:datatype="&xsd;string">scenario step</rdfs:label> + <rdfs:comment rdf:datatype="&xsd;string"></rdfs:comment> + <owl:versionInfo rdf:datatype="&xsd;string">TODO: es muss eine konkrete Reihenfolge der Steps gegeben sein (Listenstruktur)</owl:versionInfo> + <rdfs:domain rdf:resource="&req;TextualScenario"/> + <rdfs:range rdf:resource="&xsd;string"/> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/state --> + + <owl:DatatypeProperty rdf:about="&req;state"> + <rdfs:domain rdf:resource="&req;AbstractRequirement"/> + <rdfs:range> + <rdfs:Datatype> + <owl:oneOf> + <rdf:Description> + <rdf:type rdf:resource="&rdf;List"/> + <rdf:first rdf:datatype="&xsd;string">isNegativDecided</rdf:first> + <rdf:rest> + <rdf:Description> + <rdf:type rdf:resource="&rdf;List"/> + <rdf:first rdf:datatype="&xsd;string">isPositvDecided</rdf:first> + <rdf:rest rdf:resource="&rdf;nil"/> + </rdf:Description> + </rdf:rest> + </rdf:Description> + </owl:oneOf> + </rdfs:Datatype> + </rdfs:range> + </owl:DatatypeProperty> + + + + <!-- http://ns.softwiki.de/req/voteTime --> + + <owl:DatatypeProperty rdf:about="&req;voteTime"> + <rdfs:label rdf:datatype="&xsd;string">vote time</rdfs:label> + <rdfs:domain rdf:resource="&req;Vote"/> + <rdfs:range rdf:resource="&xsd;dateTime"/> + </owl:DatatypeProperty> + + + + <!-- http://purl.org/dc/elements/1.1/description --> + + <owl:DatatypeProperty rdf:about="&dc;description"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:label rdf:datatype="&xsd;string">description</rdfs:label> + <rdfs:label xml:lang="de">Beschreibung</rdfs:label> + <rdfs:range rdf:resource="&xsd;string"/> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;Goal"/> + <rdf:Description rdf:about="&req;Requirement"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + </owl:DatatypeProperty> + + + + <!-- http://purl.org/dc/elements/1.1/title --> + + <owl:DatatypeProperty rdf:about="&dc;title"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Classes + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://ns.softwiki.de/req/AbstractComment --> + + <owl:Class rdf:about="&req;AbstractComment"> + <rdfs:label>abstract comment</rdfs:label> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/AbstractReferencePoint --> + + <owl:Class rdf:about="&req;AbstractReferencePoint"> + <rdfs:label rdf:datatype="&xsd;string">reference point</rdfs:label> + <owl:disjointWith rdf:resource="&req;AbstractRequirement"/> + <owl:disjointWith rdf:resource="&req;AbstractSource"/> + <owl:disjointWith rdf:resource="&req;Author"/> + <owl:disjointWith rdf:resource="&req;Vote"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/AbstractRequirement --> + + <owl:Class rdf:about="&req;AbstractRequirement"> + <rdfs:label rdf:datatype="&xsd;string">abstract requirement</rdfs:label> + <rdfs:label xml:lang="de">abstraktes Requirement</rdfs:label> + <owl:disjointWith rdf:resource="&req;AbstractSource"/> + <owl:disjointWith rdf:resource="&req;Author"/> + <owl:disjointWith rdf:resource="&req;Vote"/> + <rdfs:comment rdf:datatype="&xsd;string">Es ist ungünstig, dass Requirement Subklasse von AbstractRequirement ist.</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/AbstractSource --> + + <owl:Class rdf:about="&req;AbstractSource"> + <rdfs:label rdf:datatype="&xsd;string">abstract source</rdfs:label> + <rdfs:subClassOf rdf:resource="&owl;Thing"/> + <owl:disjointWith rdf:resource="&req;Vote"/> + <rdfs:comment rdf:datatype="&xsd;string"></rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/AllocatedRequirement --> + + <owl:Class rdf:about="&req;AllocatedRequirement"> + <rdfs:label>allocated requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/ApplicationPointer --> + + <owl:Class rdf:about="&req;ApplicationPointer"> + <rdfs:label>application pointer</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractReferencePoint"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/ApplicationState --> + + <owl:Class rdf:about="&req;ApplicationState"> + <rdfs:label>application state</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractReferencePoint"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Author --> + + <owl:Class rdf:about="&req;Author"> + <rdfs:label xml:lang="de">Autor</rdfs:label> + <rdfs:label xml:lang="en">author</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + <owl:disjointWith rdf:resource="&req;Vote"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Comment --> + + <owl:Class rdf:about="&req;Comment"> + <rdfs:label>comment</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractComment"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Creditor --> + + <owl:Class rdf:about="&req;Creditor"> + <rdfs:label>creditor</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Customer --> + + <owl:Class rdf:about="&req;Customer"> + <rdfs:label>customer</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + <owl:disjointWith rdf:resource="&req;Programmer"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/CustomerRequirement --> + + <owl:Class rdf:about="&req;CustomerRequirement"> + <rdfs:label>customer requirement</rdfs:label> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;Requirement"/> + <owl:Restriction> + <owl:onProperty rdf:resource="&req;isCreatedBy"/> + <owl:someValuesFrom rdf:resource="&req;Customer"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/DefinedKeyword --> + + <owl:Class rdf:about="&req;DefinedKeyword"> + <rdfs:label>defined keyword</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Keyword"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/DerivedRequirement --> + + <owl:Class rdf:about="&req;DerivedRequirement"> + <rdfs:label>derived requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/DesignRequirement --> + + <owl:Class rdf:about="&req;DesignRequirement"> + <rdfs:label>design requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Document --> + + <owl:Class rdf:about="&req;Document"> + <rdfs:label>document</rdfs:label> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;AbstractSource"/> + <owl:Restriction> + <owl:onProperty rdf:resource="&req;leadsTo"/> + <owl:someValuesFrom rdf:resource="&req;AbstractRequirement"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="&req;AbstractSource"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/FunctionalRequirement --> + + <owl:Class rdf:about="&req;FunctionalRequirement"> + <rdfs:label rdf:datatype="&xsd;string">functional requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + <owl:disjointWith rdf:resource="&req;QualityRequirement"/> + <rdfs:comment rdf:datatype="&xsd;string">refers to functional reference point, for instance components of the system</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Goal --> + + <owl:Class rdf:about="&req;Goal"> + <rdfs:label rdf:datatype="&xsd;string">goal</rdfs:label> + <rdfs:label xml:lang="de">Ziel</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractRequirement"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="&dc;description"/> + <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="&req;Requirement"/> + <owl:disjointWith rdf:resource="&req;Scenario"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Government --> + + <owl:Class rdf:about="&req;Government"> + <rdfs:label>government</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Keyword --> + + <owl:Class rdf:about="&req;Keyword"> + <rdfs:label>keyword</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractReferencePoint"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/PerformanceRequirement --> + + <owl:Class rdf:about="&req;PerformanceRequirement"> + <rdfs:label>performance requirement</rdfs:label> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="&req;Requirement"/> + <owl:Restriction> + <owl:onProperty rdf:resource="&req;willLeadTo"/> + <owl:someValuesFrom rdf:resource="&req;SystemRequirement"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + <owl:disjointWith rdf:resource="&req;SystemRequirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/PriorityRating --> + + <owl:Class rdf:about="&req;PriorityRating"> + <rdfs:label>priority rating</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Rating"/> + <rdfs:comment rdf:datatype="&xsd;string">Rule: Every Author only defines at most one rating about the priority for each requirement.</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Programmer --> + + <owl:Class rdf:about="&req;Programmer"> + <rdfs:label>programmer</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/QualityRating --> + + <owl:Class rdf:about="&req;QualityRating"> + <rdfs:label>quality rating</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Rating"/> + <rdfs:comment rdf:datatype="&xsd;string">Rule: Every Author only defines at most one rating about the quality for each requirement.</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/QualityRequirement --> + + <owl:Class rdf:about="&req;QualityRequirement"> + <rdfs:label rdf:datatype="&xsd;string">quality requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Requirement"/> + <rdfs:comment rdf:datatype="&xsd;string">refers to quality reference point, e.g. reliability, performance, usability</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Rating --> + + <owl:Class rdf:about="&req;Rating"> + <rdfs:label>rating</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractComment"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Requirement --> + + <owl:Class rdf:about="&req;Requirement"> + <rdfs:label rdf:datatype="&xsd;string">requirement</rdfs:label> + <rdfs:label xml:lang="de">Anforderung(en)</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractRequirement"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="&dc;description"/> + <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="&req;Scenario"/> + <rdfs:comment rdf:datatype="&xsd;string"></rdfs:comment> + <owl:versionInfo rdf:datatype="&xsd;string">TODO: semantische Verfeinerung geplant, d.h. Anforderungen nicht nur als Textstring, sondern z.B. als RDF-Triple formulieren</owl:versionInfo> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Scenario --> + + <owl:Class rdf:about="&req;Scenario"> + <rdfs:label rdf:datatype="&xsd;string">scenario</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractRequirement"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/SeniorManagementStaff --> + + <owl:Class rdf:about="&req;SeniorManagementStaff"> + <rdfs:label>senior management staff</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Stakeholder --> + + <owl:Class rdf:about="&req;Stakeholder"> + <rdfs:label>stakeholder</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractSource"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/SystemRequirement --> + + <owl:Class rdf:about="&req;SystemRequirement"> + <rdfs:label>system requirement</rdfs:label> + <rdfs:subClassOf rdf:resource="&owl;Thing"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/TextualScenario --> + + <owl:Class rdf:about="&req;TextualScenario"> + <rdfs:label rdf:datatype="&xsd;string">textual scenario</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Scenario"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="&req;scenarioStep"/> + <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="de">Szenario, welches aus mehreren textuell beschriebenen Szenarioschritten besteht.</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Topic --> + + <owl:Class rdf:about="&req;Topic"> + <rdfs:label>topic</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;DefinedKeyword"/> + <rdfs:comment rdf:datatype="&xsd;string">Rule: Every Requirement refers to exact one topic.</rdfs:comment> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/TradeUnion --> + + <owl:Class rdf:about="&req;TradeUnion"> + <rdfs:label>trade union</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;Stakeholder"/> + </owl:Class> + + + + <!-- http://ns.softwiki.de/req/Vote --> + + <owl:Class rdf:about="&req;Vote"> + <rdfs:label rdf:datatype="&xsd;string">vote</rdfs:label> + <rdfs:subClassOf rdf:resource="&req;AbstractComment"/> + <rdfs:comment rdf:datatype="&xsd;string">Rule: Every Author only votes at most one requirement.</rdfs:comment> + </owl:Class> + + + + <!-- http://purl.org/dc/dcmitype/Image --> + + <owl:Class rdf:about="&dcmitype;Image"> + <rdfs:label>image</rdfs:label> + </owl:Class> + + + + <!-- http://www.w3.org/2000/01/rdf-schema#Resource --> + + <owl:Class rdf:about="&rdfs;Resource"> + <rdfs:label>resource</rdfs:label> + </owl:Class> + + + + <!-- http://www.w3.org/2001/XMLSchema#string --> + + <owl:Class rdf:about="&xsd;string"> + <rdfs:label rdf:datatype="&xsd;string">string</rdfs:label> + </owl:Class> + + + + <!-- http://www.w3.org/2002/07/owl#Datatype --> + + <owl:Class rdf:about="&owl;Datatype"/> + + + + <!-- http://www.w3.org/2002/07/owl#Thing --> + + <owl:Class rdf:about="&owl;Thing"/> + + + + <!-- http://www.w3.org/2004/02/skos/core#Concept --> + + <owl:Class rdf:about="&skos;Concept"> + <rdfs:label>concept</rdfs:label> + <rdfs:label xml:lang="de">Thema</rdfs:label> + </owl:Class> + + + + <!-- http://xmlns.com/foaf/0.1/Document --> + + <owl:Class rdf:about="&foaf2;Document"> + <rdfs:label>document</rdfs:label> + </owl:Class> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Individuals + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://ns.softwiki.de/req/1 --> + + <owl:Thing rdf:about="&req;1"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>1</rdfs:label> + <rates rdf:resource="&req;BuildASecureLoginSystem"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/2 --> + + <owl:Thing rdf:about="&req;2"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>2</rdfs:label> + <rates rdf:resource="&req;BuildASoftwareThatRuns24hADay"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/3 --> + + <owl:Thing rdf:about="&req;3"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>3</rdfs:label> + <rates rdf:resource="&req;BuildLoginSystem"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/4 --> + + <owl:Thing rdf:about="&req;4"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>4</rdfs:label> + <rates rdf:resource="&req;BuildNetworkLoginSystem"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/5 --> + + <owl:Thing rdf:about="&req;5"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>5</rdfs:label> + <rates rdf:resource="&req;DataBaseBackupCreatedSyncron"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/6 --> + + <owl:Thing rdf:about="&req;6"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>6</rdfs:label> + <rates rdf:resource="&req;CustomerRequirement1"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/7 --> + + <owl:Thing rdf:about="&req;7"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>7</rdfs:label> + <rates rdf:resource="&req;DialogSystemShoudRespondInUnder5Sec"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/8 --> + + <owl:Thing rdf:about="&req;8"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>8</rdfs:label> + <rates rdf:resource="&req;loadGUIInUnder2Sec"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/9 --> + + <owl:Thing rdf:about="&req;9"> + <rdf:type rdf:resource="&req;QualityRating"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>9</rdfs:label> + <rates rdf:resource="&req;LogEveryUserActivity"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/ActiveHelpDialog --> + + <owl:Thing rdf:about="&req;ActiveHelpDialog"> + <rdf:type rdf:resource="&req;DesignRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Active Help Dialog</rdfs:label> + <isCreatedBy rdf:resource="&req;GermanGovernment"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Andrew_Stellman --> + + <owl:Thing rdf:about="&req;Andrew_Stellman"> + <rdf:type rdf:resource="&req;Author"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Andrew Stellman</rdfs:label> + <defines rdf:resource="&req;MultiUserSystem"/> + <votes rdf:resource="&req;UseDatabaseToStoreUserData"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/BuildAFastSoftware --> + + <owl:Thing rdf:about="&req;BuildAFastSoftware"> + <rdf:type rdf:resource="&req;CustomerRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Build a Fast Software</rdfs:label> + <isCreatedBy rdf:resource="&req;Charlotte_Blay"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <refersTo rdf:resource="&req;PerformanceTopic"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/BuildASecureLoginSystem --> + + <owl:Thing rdf:about="&req;BuildASecureLoginSystem"> + <rdf:type rdf:resource="&req;DerivedRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Build A Secure Login System</rdfs:label> + <details rdf:resource="&req;BuildLoginSystem"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/BuildASoftwareThatRuns24hADay --> + + <owl:Thing rdf:about="&req;BuildASoftwareThatRuns24hADay"> + <rdf:type rdf:resource="&req;CustomerRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Build A Software That Runs 24 h A Day</rdfs:label> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCreatedBy rdf:resource="&req;Philippe_Soupault"/> + <depentsOn rdf:resource="&req;SystemStabilityRequirement"/> + <refersTo rdf:resource="&req;SystemStabilityTopic"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/BuildLoginSystem --> + + <owl:Thing rdf:about="&req;BuildLoginSystem"> + <rdf:type rdf:resource="&req;DerivedRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Build Login System</rdfs:label> + <details rdf:resource="&req;MultiUserSystem"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/BuildNetworkLoginSystem --> + + <owl:Thing rdf:about="&req;BuildNetworkLoginSystem"> + <rdf:type rdf:resource="&req;DerivedRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Build Network Login System</rdfs:label> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + <details rdf:resource="&req;UserCanAccessDataFromEveryComputer"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CentralOrganisationOfFinnishTrade --> + + <owl:Thing rdf:about="&req;CentralOrganisationOfFinnishTrade"> + <rdf:type rdf:resource="&req;TradeUnion"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Central Organisaion Of Finnish Trade</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Charlotte_Blay --> + + <owl:Thing rdf:about="&req;Charlotte_Blay"> + <rdf:type rdf:resource="&req;Customer"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Carlotte Blay</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Consistent --> + + <owl:Thing rdf:about="&req;Consistent"> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Consistent</rdfs:label> + <isCreatedBy rdf:resource="&req;USGovernment"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Correct --> + + <owl:Thing rdf:about="&req;Correct"> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Correct</rdfs:label> + <isCreatedBy rdf:resource="&req;Jennifer_Greene"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateACheaperSoftware --> + + <owl:Thing rdf:about="&req;CreateACheaperSoftware"> + <rdf:type rdf:resource="&req;Goal"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create A Cheaper Software</rdfs:label> + <details rdf:resource="&req;SearchShouldBeDoneIn3Sec"/> + <isDefinedBy rdf:resource="&req;Tim"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateDatabaseInterface --> + + <owl:Thing rdf:about="&req;CreateDatabaseInterface"> + <rdf:type rdf:resource="&req;DerivedRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create Database Interface</rdfs:label> + <details rdf:resource="&req;DataBaseBackupCreatedSyncron"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateModernGUIDesign --> + + <owl:Thing rdf:about="&req;CreateModernGUIDesign"> + <rdf:type rdf:resource="&req;CustomerRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create Modern GUI Design</rdfs:label> + <refersTo rdf:resource="&req;DesignTopic"/> + <isCreatedBy rdf:resource="&req;Jane_Smiley"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCommentedBy rdf:resource="&req;UsefulRequirement"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateNetworkInterface --> + + <owl:Thing rdf:about="&req;CreateNetworkInterface"> + <rdf:type rdf:resource="&req;DerivedRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create Network Interface</rdfs:label> + <details rdf:resource="&req;BuildNetworkLoginSystem"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateVersion1 --> + + <owl:Thing rdf:about="&req;CreateVersion1"> + <rdf:type rdf:resource="&req;Goal"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create Version 1</rdfs:label> + <isDefinedBy rdf:resource="&req;Jim"/> + <details rdf:resource="&req;SystemStabilityRequirement"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CreateVersion2 --> + + <owl:Thing rdf:about="&req;CreateVersion2"> + <rdf:type rdf:resource="&req;Goal"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Create Version 2</rdfs:label> + <isDefinedBy rdf:resource="&req;Tom"/> + <details rdf:resource="&req;UseDatabaseToStoreUserData"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/CustomerRequirement1 --> + + <owl:Thing rdf:about="&req;CustomerRequirement1"> + <rdf:type rdf:resource="&req;Requirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Customer Requirement 1</rdfs:label> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCreatedBy rdf:resource="&req;Tom"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DataBaseBackupCreatedSyncron --> + + <owl:Thing rdf:about="&req;DataBaseBackupCreatedSyncron"> + <rdf:type rdf:resource="&req;PerformanceRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Database Backup Created Syncrom</rdfs:label> + <isCreatedBy rdf:resource="&req;Andrew_Stellman"/> + <willLeadTo rdf:resource="&req;DualCoreSystemWith8GigRam"/> + <isCommentedBy rdf:resource="&req;MustBeDiscussed"/> + <refersTo rdf:resource="&req;PerformanceTopic"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DataExecutionShouldBeDoneInUnder3Sec --> + + <owl:Thing rdf:about="&req;DataExecutionShouldBeDoneInUnder3Sec"> + <rdf:type rdf:resource="&req;PerformanceRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Dataexecution Should Be Done In Under 3 Sec</rdfs:label> + <isCreatedBy rdf:resource="&req;Jennifer_Greene"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCommentedBy rdf:resource="&req;MustBeDiscussed"/> + <refersTo rdf:resource="&req;PerformanceTopic"/> + <willLeadTo rdf:resource="&req;QuadCoreSystemWith16GigRam"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DatabaseServerCanBeUsedBy1000PersonsSimultaneus --> + + <owl:Thing rdf:about="&req;DatabaseServerCanBeUsedBy1000PersonsSimultaneus"> + <rdf:type rdf:resource="&req;PerformanceRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Database Server Can Be Used By 1000 Persons Simultaneus</rdfs:label> + <willLeadTo rdf:resource="&req;DatabaseServerWith32GigRam"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCommentedBy rdf:resource="&req;MustBeDiscussed"/> + <refersTo rdf:resource="&req;PerformanceTopic"/> + <isCreatedBy rdf:resource="&req;Tom"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DatabaseServerWith32GigRam --> + + <owl:Thing rdf:about="&req;DatabaseServerWith32GigRam"> + <rdf:type rdf:resource="&req;SystemRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Database Server With 32 Gig Ram</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DatabaseTopic --> + + <owl:Thing rdf:about="&req;DatabaseTopic"> + <rdf:type rdf:resource="&req;Topic"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Database Topic</rdfs:label> + <specifies rdf:resource="&req;UseDatabaseToStoreUserData"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Derick_Garnier --> + + <owl:Thing rdf:about="&req;Derick_Garnier"> + <rdf:type rdf:resource="&req;Customer"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Derick Garnier</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DesignTopic --> + + <owl:Thing rdf:about="&req;DesignTopic"> + <rdf:type rdf:resource="&req;Topic"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Design Topic</rdfs:label> + <specifies rdf:resource="&req;CreateModernGUIDesign"/> + <specifies rdf:resource="&req;UseOfIcons"/> + <specifies rdf:resource="&req;WindowDesign"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DialogSystemShoudRespondInUnder5Sec --> + + <owl:Thing rdf:about="&req;DialogSystemShoudRespondInUnder5Sec"> + <rdf:type rdf:resource="&req;PerformanceRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Dialog System Should Respond In Under 5 Sec</rdfs:label> + <willLeadTo rdf:resource="&req;DualCoreSystemWith8GigRam"/> + <isCommentedBy rdf:resource="&req;GoodIdea"/> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <refersTo rdf:resource="&req;PerformanceTopic"/> + <isCreatedBy rdf:resource="&req;Tom"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/DualCoreSystemWith8GigRam --> + + <owl:Thing rdf:about="&req;DualCoreSystemWith8GigRam"> + <rdf:type rdf:resource="&req;SystemRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Dual Core System With 8 Gig Ram</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/EuropeanTradeUnionConfederation --> + + <owl:Thing rdf:about="&req;EuropeanTradeUnionConfederation"> + <rdf:type rdf:resource="&req;TradeUnion"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>European Trade Union Confederation</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/FunctionTopic --> + + <owl:Thing rdf:about="&req;FunctionTopic"> + <rdf:type rdf:resource="&req;Topic"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Function Topic</rdfs:label> + <specifies rdf:resource="&req;LogEveryUserActivity"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/GermanGovernment --> + + <owl:Thing rdf:about="&req;GermanGovernment"> + <rdf:type rdf:resource="&req;Government"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>German Government</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/GoodIdea --> + + <owl:Thing rdf:about="&req;GoodIdea"> + <rdf:type rdf:resource="&req;Comment"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Good Idea</rdfs:label> + <comments rdf:resource="&req;DialogSystemShoudRespondInUnder5Sec"/> + <isDefinedBy rdf:resource="&req;Jennifer_Greene"/> + <isDefinedBy rdf:resource="&req;Stefan"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Jane_Smiley --> + + <owl:Thing rdf:about="&req;Jane_Smiley"> + <rdf:type rdf:resource="&req;Customer"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Jane Smiley</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Jennifer_Greene --> + + <owl:Thing rdf:about="&req;Jennifer_Greene"> + <rdf:type rdf:resource="&req;Author"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Jennifer Greene</rdfs:label> + <votes rdf:resource="&req;MultiWindowSystem"/> + <defines rdf:resource="&req;loadGUIInUnder2Sec"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Jill --> + + <owl:Thing rdf:about="&req;Jill"> + <rdf:type rdf:resource="&req;Author"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Jill</rdfs:label> + <defines rdf:resource="&req;DialogSystemShoudRespondInUnder5Sec"/> + <votes rdf:resource="&req;SystemRequirement1"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Jim --> + + <owl:Thing rdf:about="&req;Jim"> + <rdf:type rdf:resource="&req;Author"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Jim</rdfs:label> + <defines rdf:resource="&req;MultiWindowSystem"/> + <votes rdf:resource="&req;SystemStabilityRequirement"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Lastenheft --> + + <owl:Thing rdf:about="&req;Lastenheft"> + <rdf:type rdf:resource="&req;Document"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Lastenheft</rdfs:label> + <leadsTo rdf:resource="&req;text"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/LogEveryUserActivity --> + + <owl:Thing rdf:about="&req;LogEveryUserActivity"> + <rdf:type rdf:resource="&req;FunctionalRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Log Every User Activity</rdfs:label> + <isLeadingTo rdf:resource="&req;Lastenheft"/> + <isCommentedBy rdf:resource="&req;NotNecessaryRequirment"/> + <isDefinedBy rdf:resource="&req;Steve_McConnell"/> + <isCreatedBy rdf:resource="&req;USGovernment"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/LoginTopic --> + + <owl:Thing rdf:about="&req;LoginTopic"> + <rdf:type rdf:resource="&req;Topic"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Login Topic</rdfs:label> + <specifies rdf:resource="&req;BuildASecureLoginSystem"/> + <specifies rdf:resource="&req;BuildLoginSystem"/> + <specifies rdf:resource="&req;BuildNetworkLoginSystem"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/Michael_Steinmetz --> + + <owl:Thing rdf:about="&req;Michael_Steinmetz"> + <rdf:type rdf:resource="&req;Customer"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Michael Steinmetz</rdfs:label> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/MultiTabSystem --> + + <owl:Thing rdf:about="&req;MultiTabSystem"> + <rdf:type rdf:resource="&req;DesignRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Multi Tab System</rdfs:label> + <refersTo rdf:resource="&req;DesignTopic"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + <isCommentedBy rdf:resource="&req;ShouldBeImplementedInALaterVersion"/> + <isDefinedBy rdf:resource="&req;Steve_McConnell"/> + <isCreatedBy rdf:resource="&req;Steve_McConnell"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/MultiUserSystem --> + + <owl:Thing rdf:about="&req;MultiUserSystem"> + <rdf:type rdf:resource="&req;FunctionalRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Multi User System</rdfs:label> + <isDefinedBy rdf:resource="&req;Andrew_Stellman"/> + <isCreatedBy rdf:resource="&req;Andrew_Stellman"/> + <isDetailedBy rdf:resource="&req;BuildLoginSystem"/> + <isLeadingTo rdf:resource="&req;Pflichtenheft"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/MultiWindowSystem --> + + <owl:Thing rdf:about="&req;MultiWindowSystem"> + <rdf:type rdf:resource="&req;DesignRequirement"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Multi Window System</rdfs:label> + <refersTo rdf:resource="&req;DesignTopic"/> + <isCreatedBy rdf:resource="&req;Jennifer_Greene"/> + <isDefinedBy rdf:resource="&req;Jennifer_Greene"/> + <isLeadingTo rdf:resource="&req;UML"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/MustBeDiscussed --> + + <owl:Thing rdf:about="&req;MustBeDiscussed"> + <rdf:type rdf:resource="&req;Comment"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/> + <rdfs:label>Must Be Discussed</rdfs:label> + <isDefinedBy rdf:resource="&req;Andrew_Stellman"/> + <isDefinedBy rdf:resource="&req;Jennifer_Greene"/> + <comments rdf:resource="&req;UserCanAccessDataFromEveryComputer"/> + </owl:Thing> + + + + <!-- http://ns.softwiki.de/req/NotNecessaryRequirment --> + + <owl:Thing rdf:about="&req;NotNecessaryRequirment"> + <rdf:type rdf:resource="&req;Comment"/> + <rdf:type rdf:resource="&owl;NamedIndividual"/... [truncated message content] |
From: <jen...@us...> - 2010-08-06 16:15:00
|
Revision: 2250 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2250&view=rev Author: jenslehmann Date: 2010-08-06 16:14:52 +0000 (Fri, 06 Aug 2010) Log Message: ----------- enabled and fixed some older unit tests Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java trunk/src/dl-learner/org/dllearner/test/junit/AllTestsRunner.java trunk/src/dl-learner/org/dllearner/test/junit/ELDownTests.java trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java trunk/test/testReasoners/test.conf trunk/test/testReasoners/test2.conf Added Paths: ----------- trunk/test/galen2.owl Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-08-06 15:01:58 UTC (rev 2249) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-08-06 16:14:52 UTC (rev 2250) @@ -33,11 +33,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; +import java.util.Map.Entry; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -104,7 +104,6 @@ import org.semanticweb.owlapi.owllink.OWLlinkHTTPXMLReasonerFactory; import org.semanticweb.owlapi.owllink.OWLlinkReasonerConfiguration; import org.semanticweb.owlapi.reasoner.FreshEntityPolicy; -import org.semanticweb.owlapi.reasoner.IllegalConfigurationException; import org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy; import org.semanticweb.owlapi.reasoner.Node; import org.semanticweb.owlapi.reasoner.NodeSet; @@ -350,8 +349,9 @@ OWLlinkReasonerConfiguration config = new OWLlinkReasonerConfiguration(url); reasoner = factory.createNonBufferingReasoner(ontology, config); System.out.println(reasoner.getReasonerName()); - } catch (IllegalConfigurationException e) { - e.printStackTrace(); + } catch (Exception e) { +// e.printStackTrace(); + throw new ComponentInitException(e); } } Modified: trunk/src/dl-learner/org/dllearner/test/junit/AllTestsRunner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/AllTestsRunner.java 2010-08-06 15:01:58 UTC (rev 2249) +++ trunk/src/dl-learner/org/dllearner/test/junit/AllTestsRunner.java 2010-08-06 16:14:52 UTC (rev 2250) @@ -36,6 +36,11 @@ */ public class AllTestsRunner { + /** + * use the following arguments (or similar): -Djava.library.path=lib/fact/32bit/ -Xmx2000m + * + * @param args + */ public static void main(String[] args) { // create logger @@ -44,7 +49,7 @@ Logger logger = Logger.getRootLogger(); logger.removeAllAppenders(); logger.addAppender(consoleAppender); - logger.setLevel(Level.INFO); + logger.setLevel(Level.DEBUG); // runs everything except example test JUnitCore.main("org.dllearner.test.junit.ClassExpressionTests", Modified: trunk/src/dl-learner/org/dllearner/test/junit/ELDownTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ELDownTests.java 2010-08-06 15:01:58 UTC (rev 2249) +++ trunk/src/dl-learner/org/dllearner/test/junit/ELDownTests.java 2010-08-06 16:14:52 UTC (rev 2250) @@ -286,7 +286,7 @@ } // not part of the regular test suite, since Galen 2 is required -// @Test + @Test public void test4() throws ComponentInitException, ParseException, IOException { Logger logger = Logger.getRootLogger(); @@ -298,7 +298,7 @@ ComponentManager cm = ComponentManager.getInstance(); KnowledgeSource source = cm.knowledgeSource(OWLFile.class); - String ont = "/home/jl/ontologien/galen2.owl"; + String ont = "test/galen2.owl"; cm.applyConfigEntry(source, "url", new File(ont).toURI().toURL()); source.init(); ReasonerComponent reasoner = cm.reasoner(OWLAPIReasoner.class, source); @@ -330,12 +330,12 @@ } // not part of the regular test suite, since Galen 2 is required -// @Test + @Test public void asTest() throws ComponentInitException, MalformedURLException { ComponentManager cm = ComponentManager.getInstance(); KnowledgeSource source = cm.knowledgeSource(OWLFile.class); - String ont = "/home/jl/ontologien/galen2.owl"; + String ont = "test/galen2.owl"; cm.applyConfigEntry(source, "url", new File(ont).toURI().toURL()); source.init(); ReasonerComponent reasoner = cm.reasoner(OWLAPIReasoner.class, source); Modified: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-06 15:01:58 UTC (rev 2249) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2010-08-06 16:14:52 UTC (rev 2250) @@ -98,7 +98,7 @@ * Performs an instance checks on all reasoner components to verify that * they all return the correct result. */ -// @Test + @Test public void instanceCheckTest() { // DIG can be excluded from test since it requires a separate DIG reasoner and is no @@ -144,7 +144,7 @@ * @throws ComponentInitException * @throws ParseException */ -// @Test + @Test public void fastInstanceCheckTest() throws ComponentInitException, ParseException { String file = "examples/carcinogenesis/carcinogenesis.owl"; ComponentManager cm = ComponentManager.getInstance(); @@ -189,7 +189,7 @@ } } -// @Test + @Test public void fastInstanceCheck2() throws ComponentInitException, ParseException { String file = "examples/epc/sap_epc.owl"; ComponentManager cm = ComponentManager.getInstance(); @@ -212,7 +212,7 @@ } // simple unit test for new retrieval algorithm -// @Test + @Test public void fastInstanceCheck3() throws MalformedURLException, ComponentInitException, ParseException { String file = "examples/family/father_oe.owl"; ComponentManager cm = ComponentManager.getInstance(); @@ -415,7 +415,7 @@ private List<String> getReasonerTypes(){ List<String> reasonerTypes = new LinkedList<String>(); reasonerTypes.add("pellet"); - reasonerTypes.add("hermit"); +// reasonerTypes.add("hermit"); too slow at the moment reasonerTypes.add("fact"); reasonerTypes.add("owllink"); Modified: trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-08-06 15:01:58 UTC (rev 2249) +++ trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-08-06 16:14:52 UTC (rev 2250) @@ -135,7 +135,7 @@ } else if(ont.equals(TestOntology.SWORE)) { owlFile = "examples/swore/swore.rdf"; } else if(ont.equals(TestOntology.MDM)) { - owlFile = "resources/test/MDM0.73.owl"; + owlFile = "test/MDM0.73.owl"; } try { Added: trunk/test/galen2.owl =================================================================== --- trunk/test/galen2.owl (rev 0) +++ trunk/test/galen2.owl 2010-08-06 16:14:52 UTC (rev 2250) @@ -0,0 +1,51838 @@ +<?xml version="1.0"?> + + +<!DOCTYPE rdf:RDF [ + <!ENTITY owl "http://www.w3.org/2002/07/owl#" > + <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > + <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" > + <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > + <!ENTITY galen "http://www.co-ode.org/ontologies/galen#" > + <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > +]> + + +<rdf:RDF xmlns="http://www.co-ode.org/ontologies/galen#" + xml:base="http://www.co-ode.org/ontologies/galen" + xmlns:galen="http://www.co-ode.org/ontologies/galen#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#" + xmlns:owl="http://www.w3.org/2002/07/owl#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <owl:Ontology rdf:about=""/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://www.co-ode.org/ontologies/galen#AnatomicalLocativeAttribute --> + + <owl:ObjectProperty rdf:about="#AnatomicalLocativeAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#LocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#Attribute --> + + <owl:ObjectProperty rdf:about="#Attribute"/> + + + + <!-- http://www.co-ode.org/ontologies/galen#ChemicalProcessModifierAttribute --> + + <owl:ObjectProperty rdf:about="#ChemicalProcessModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ClinicalRecordAttribute --> + + <owl:ObjectProperty rdf:about="#ClinicalRecordAttribute"> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#CollectionAttribute --> + + <owl:ObjectProperty rdf:about="#CollectionAttribute"> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ConstructiveAttribute --> + + <owl:ObjectProperty rdf:about="#ConstructiveAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ContainmentAttribute --> + + <owl:ObjectProperty rdf:about="#ContainmentAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#DelimitingAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#DelimitingAttribute --> + + <owl:ObjectProperty rdf:about="#DelimitingAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#DiseaseProcessModifierAttribute --> + + <owl:ObjectProperty rdf:about="#DiseaseProcessModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#DomainAttribute --> + + <owl:ObjectProperty rdf:about="#DomainAttribute"> + <rdfs:subPropertyOf rdf:resource="#Attribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ExistentialModifierAttribute --> + + <owl:ObjectProperty rdf:about="#ExistentialModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#FeatureStateAttribute --> + + <owl:ObjectProperty rdf:about="#FeatureStateAttribute"> + <rdfs:subPropertyOf rdf:resource="#ModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#FunctionalAttribute --> + + <owl:ObjectProperty rdf:about="#FunctionalAttribute"> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#HasCausalLinkTo --> + + <owl:ObjectProperty rdf:about="#HasCausalLinkTo"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#HasDivision --> + + <owl:ObjectProperty rdf:about="#HasDivision"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralPartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseAnatomicalLocativeAttribute --> + + <owl:ObjectProperty rdf:about="#InverseAnatomicalLocativeAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseLocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseChemicalProcessAttribute --> + + <owl:ObjectProperty rdf:about="#InverseChemicalProcessAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseClinicalRecordAttribute --> + + <owl:ObjectProperty rdf:about="#InverseClinicalRecordAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseCollectionAttribute --> + + <owl:ObjectProperty rdf:about="#InverseCollectionAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseConstructiveAttribute --> + + <owl:ObjectProperty rdf:about="#InverseConstructiveAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseContainmentAttribute --> + + <owl:ObjectProperty rdf:about="#InverseContainmentAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDelimitingAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseDelimitingAttribute --> + + <owl:ObjectProperty rdf:about="#InverseDelimitingAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseDiseaseProcessAttribute --> + + <owl:ObjectProperty rdf:about="#InverseDiseaseProcessAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseDomainAttribute --> + + <owl:ObjectProperty rdf:about="#InverseDomainAttribute"> + <rdfs:subPropertyOf rdf:resource="#Attribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseExistentialModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseExistentialModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseFeatureStateAttribute --> + + <owl:ObjectProperty rdf:about="#InverseFeatureStateAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseFunctionalAttribute --> + + <owl:ObjectProperty rdf:about="#InverseFunctionalAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseLinearContainmentAttribute --> + + <owl:ObjectProperty rdf:about="#InverseLinearContainmentAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDelimitingAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseLocativeAttribute --> + + <owl:ObjectProperty rdf:about="#InverseLocativeAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseOrganismModifier --> + + <owl:ObjectProperty rdf:about="#InverseOrganismModifier"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InversePartitiveAttribute --> + + <owl:ObjectProperty rdf:about="#InversePartitiveAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseProcessLocativeAttribute --> + + <owl:ObjectProperty rdf:about="#InverseProcessLocativeAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseLocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseProcessModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseProcessModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseQuantityAttribute --> + + <owl:ObjectProperty rdf:about="#InverseQuantityAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseRoleDesignatingAttribute --> + + <owl:ObjectProperty rdf:about="#InverseRoleDesignatingAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseSpecificationLevelAttribute --> + + <owl:ObjectProperty rdf:about="#InverseSpecificationLevelAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStatusAttribute --> + + <owl:ObjectProperty rdf:about="#InverseStatusAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralAppearanceModifier --> + + <owl:ObjectProperty rdf:about="#InverseStructuralAppearanceModifier"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralAttribute --> + + <owl:ObjectProperty rdf:about="#InverseStructuralAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseStructuralModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralPartitiveAttribute --> + + <owl:ObjectProperty rdf:about="#InverseStructuralPartitiveAttribute"> + <rdfs:subPropertyOf rdf:resource="#InversePartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralPositionModifier --> + + <owl:ObjectProperty rdf:about="#InverseStructuralPositionModifier"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseStructuralSelectorModifier --> + + <owl:ObjectProperty rdf:about="#InverseStructuralSelectorModifier"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseSubstanceModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseSubstanceModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseTemporalAttribute --> + + <owl:ObjectProperty rdf:about="#InverseTemporalAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseDomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseTemporalModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseTemporalModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseUncertaintyModifierAttribute --> + + <owl:ObjectProperty rdf:about="#InverseUncertaintyModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#isFeatureOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#InverseUnitAttribute --> + + <owl:ObjectProperty rdf:about="#InverseUnitAttribute"> + <rdfs:subPropertyOf rdf:resource="#InverseModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#IsCausallyLinkedTo --> + + <owl:ObjectProperty rdf:about="#IsCausallyLinkedTo"> + <rdfs:subPropertyOf rdf:resource="#InverseConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#IsDivisionOf --> + + <owl:ObjectProperty rdf:about="#IsDivisionOf"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralPartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#LinearContainmentAttribute --> + + <owl:ObjectProperty rdf:about="#LinearContainmentAttribute"> + <rdfs:subPropertyOf rdf:resource="#DelimitingAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#LocativeAttribute --> + + <owl:ObjectProperty rdf:about="#LocativeAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ModifierAttribute --> + + <owl:ObjectProperty rdf:about="#ModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#OrdinalPositionOf --> + + <owl:ObjectProperty rdf:about="#OrdinalPositionOf"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralPositionModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#OrganismModifier --> + + <owl:ObjectProperty rdf:about="#OrganismModifier"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#PartitiveAttribute --> + + <owl:ObjectProperty rdf:about="#PartitiveAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ProcessLocativeAttribute --> + + <owl:ObjectProperty rdf:about="#ProcessLocativeAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#LocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ProcessModifierAttribute --> + + <owl:ObjectProperty rdf:about="#ProcessModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#ProcessPartitiveAttribute --> + + <owl:ObjectProperty rdf:about="#ProcessPartitiveAttribute"> + <rdfs:subPropertyOf rdf:resource="#PartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#QuantityAttribute --> + + <owl:ObjectProperty rdf:about="#QuantityAttribute"> + <rdfs:subPropertyOf rdf:resource="#ModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#RoleDesignatingAttribute --> + + <owl:ObjectProperty rdf:about="#RoleDesignatingAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#SpecificationLevelAttribute --> + + <owl:ObjectProperty rdf:about="#SpecificationLevelAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StatusAttribute --> + + <owl:ObjectProperty rdf:about="#StatusAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralAppearanceModifier --> + + <owl:ObjectProperty rdf:about="#StructuralAppearanceModifier"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralAttribute --> + + <owl:ObjectProperty rdf:about="#StructuralAttribute"> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralModifierAttribute --> + + <owl:ObjectProperty rdf:about="#StructuralModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralPartitiveAttribute --> + + <owl:ObjectProperty rdf:about="#StructuralPartitiveAttribute"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#PartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralPositionModifier --> + + <owl:ObjectProperty rdf:about="#StructuralPositionModifier"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#StructuralSelectorModifier --> + + <owl:ObjectProperty rdf:about="#StructuralSelectorModifier"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#SubstanceModifierAttribute --> + + <owl:ObjectProperty rdf:about="#SubstanceModifierAttribute"> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#TemporalAttribute --> + + <owl:ObjectProperty rdf:about="#TemporalAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#DomainAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#TemporalModifierAttribute --> + + <owl:ObjectProperty rdf:about="#TemporalModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#UncertaintyModifierAttribute --> + + <owl:ObjectProperty rdf:about="#UncertaintyModifierAttribute"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasFeature"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#UnitAttribute --> + + <owl:ObjectProperty rdf:about="#UnitAttribute"> + <rdfs:subPropertyOf rdf:resource="#ModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#actsOn --> + + <owl:ObjectProperty rdf:about="#actsOn"> + <rdfs:subPropertyOf rdf:resource="#FunctionalAttribute"/> + <rdfs:subPropertyOf rdf:resource="#ProcessLocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#actsSpecificallyOn --> + + <owl:ObjectProperty rdf:about="#actsSpecificallyOn"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#actsOn"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#boundsSpace --> + + <owl:ObjectProperty rdf:about="#boundsSpace"> + <rdfs:subPropertyOf rdf:resource="#ContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#carries --> + + <owl:ObjectProperty rdf:about="#carries"> + <rdfs:subPropertyOf rdf:resource="#actsOn"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#carriesFrom --> + + <owl:ObjectProperty rdf:about="#carriesFrom"> + <rdfs:subPropertyOf rdf:resource="#carries"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#carriesTo --> + + <owl:ObjectProperty rdf:about="#carriesTo"> + <rdfs:subPropertyOf rdf:resource="#carries"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#connects --> + + <owl:ObjectProperty rdf:about="#connects"> + <rdfs:subPropertyOf rdf:resource="#StructuralAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#contains --> + + <owl:ObjectProperty rdf:about="#contains"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#ContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#definesSpace --> + + <owl:ObjectProperty rdf:about="#definesSpace"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#boundsSpace"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#definesSystem --> + + <owl:ObjectProperty rdf:about="#definesSystem"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#isFunctionOf"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#fromWhichCarries --> + + <owl:ObjectProperty rdf:about="#fromWhichCarries"> + <rdfs:subPropertyOf rdf:resource="#isCarriedBy"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAbnormalityStatus --> + + <owl:ObjectProperty rdf:about="#hasAbnormalityStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StatusAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAbsolutePosition --> + + <owl:ObjectProperty rdf:about="#hasAbsolutePosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAbsoluteState --> + + <owl:ObjectProperty rdf:about="#hasAbsoluteState"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasState"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAcceleration --> + + <owl:ObjectProperty rdf:about="#hasAcceleration"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAge --> + + <owl:ObjectProperty rdf:about="#hasAge"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAlphaConnection --> + + <owl:ObjectProperty rdf:about="#hasAlphaConnection"> + <rdfs:subPropertyOf rdf:resource="#connects"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAnaesthesia --> + + <owl:ObjectProperty rdf:about="#hasAnaesthesia"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAnatomicallyRelatedGenericStructure --> + + <owl:ObjectProperty rdf:about="#hasAnatomicallyRelatedGenericStructure"> + <rdfs:subPropertyOf rdf:resource="#InverseStructuralAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAnteriorPosteriorDiplacement --> + + <owl:ObjectProperty rdf:about="#hasAnteriorPosteriorDiplacement"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDisplacement"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAnteriorPosteriorPosition --> + + <owl:ObjectProperty rdf:about="#hasAnteriorPosteriorPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasAbsolutePosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAnteriorPosteriorSelector --> + + <owl:ObjectProperty rdf:about="#hasAnteriorPosteriorSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPositionalSelector"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasArea --> + + <owl:ObjectProperty rdf:about="#hasArea"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasAssociation --> + + <owl:ObjectProperty rdf:about="#hasAssociation"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasBetaConnection --> + + <owl:ObjectProperty rdf:about="#hasBetaConnection"> + <rdfs:subPropertyOf rdf:resource="#connects"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasBlindPouchDivision --> + + <owl:ObjectProperty rdf:about="#hasBlindPouchDivision"> + <rdfs:subPropertyOf rdf:resource="#hasSolidDivision"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasBodyPosition --> + + <owl:ObjectProperty rdf:about="#hasBodyPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasBranch --> + + <owl:ObjectProperty rdf:about="#hasBranch"> + <rdfs:subPropertyOf rdf:resource="#LinearContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasBrandName --> + + <owl:ObjectProperty rdf:about="#hasBrandName"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralSelectorModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCausalAgent --> + + <owl:ObjectProperty rdf:about="#hasCausalAgent"> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCause --> + + <owl:ObjectProperty rdf:about="#hasCause"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCellMorphology --> + + <owl:ObjectProperty rdf:about="#hasCellMorphology"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralAppearanceModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasChangeInState --> + + <owl:ObjectProperty rdf:about="#hasChangeInState"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasState"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasChemicalProcessType --> + + <owl:ObjectProperty rdf:about="#hasChemicalProcessType"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ChemicalProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasChemicalState --> + + <owl:ObjectProperty rdf:about="#hasChemicalState"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#SubstanceModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasChronicity --> + + <owl:ObjectProperty rdf:about="#hasChronicity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#TemporalModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasClinicalSpeciality --> + + <owl:ObjectProperty rdf:about="#hasClinicalSpeciality"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasColinearityWith --> + + <owl:ObjectProperty rdf:about="#hasColinearityWith"> + <rdfs:subPropertyOf rdf:resource="#LinearContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasColour --> + + <owl:ObjectProperty rdf:about="#hasColour"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralAppearanceModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCompleteness --> + + <owl:ObjectProperty rdf:about="#hasCompleteness"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasConcentration --> + + <owl:ObjectProperty rdf:about="#hasConcentration"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#SubstanceModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasConsequence --> + + <owl:ObjectProperty rdf:about="#hasConsequence"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCountConcentration --> + + <owl:ObjectProperty rdf:about="#hasCountConcentration"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasCountability --> + + <owl:ObjectProperty rdf:about="#hasCountability"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralAppearanceModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDeltaConnection --> + + <owl:ObjectProperty rdf:about="#hasDeltaConnection"> + <rdfs:subPropertyOf rdf:resource="#connects"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDenominatorUnit --> + + <owl:ObjectProperty rdf:about="#hasDenominatorUnit"> + <rdfs:subPropertyOf rdf:resource="#UnitAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDimension --> + + <owl:ObjectProperty rdf:about="#hasDimension"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDisplacement --> + + <owl:ObjectProperty rdf:about="#hasDisplacement"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDissolvedWithin --> + + <owl:ObjectProperty rdf:about="#hasDissolvedWithin"> + <rdfs:subPropertyOf rdf:resource="#hasMixedThroughout"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasDuration --> + + <owl:ObjectProperty rdf:about="#hasDuration"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#TemporalModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasEffectiveness --> + + <owl:ObjectProperty rdf:about="#hasEffectiveness"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasEventOccuringDuring --> + + <owl:ObjectProperty rdf:about="#hasEventOccuringDuring"> + <rdfs:subPropertyOf rdf:resource="#InverseTemporalAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasExistence --> + + <owl:ObjectProperty rdf:about="#hasExistence"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ExistentialModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasExpectedLevelState --> + + <owl:ObjectProperty rdf:about="#hasExpectedLevelState"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasState"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasExposureTo --> + + <owl:ObjectProperty rdf:about="#hasExposureTo"> + <rdfs:subPropertyOf rdf:resource="#FunctionalAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFeature --> + + <owl:ObjectProperty rdf:about="#hasFeature"> + <rdfs:subPropertyOf rdf:resource="#FeatureStateAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFinishTime --> + + <owl:ObjectProperty rdf:about="#hasFinishTime"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#TemporalModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFrameOfReference --> + + <owl:ObjectProperty rdf:about="#hasFrameOfReference"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFrequency --> + + <owl:ObjectProperty rdf:about="#hasFrequency"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#TemporalModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFunction --> + + <owl:ObjectProperty rdf:about="#hasFunction"> + <rdfs:subPropertyOf rdf:resource="#ProcessLocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasFunctionalComponent --> + + <owl:ObjectProperty rdf:about="#hasFunctionalComponent"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#FunctionalAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasGammaConnection --> + + <owl:ObjectProperty rdf:about="#hasGammaConnection"> + <rdfs:subPropertyOf rdf:resource="#connects"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasGoal --> + + <owl:ObjectProperty rdf:about="#hasGoal"> + <rdfs:subPropertyOf rdf:resource="#FunctionalAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasGradeOfExperience --> + + <owl:ObjectProperty rdf:about="#hasGradeOfExperience"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasGravidity --> + + <owl:ObjectProperty rdf:about="#hasGravidity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#OrganismModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasInSuspensionWithin --> + + <owl:ObjectProperty rdf:about="#hasInSuspensionWithin"> + <rdfs:subPropertyOf rdf:resource="#hasMixedThroughout"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasInnerOuterSelector --> + + <owl:ObjectProperty rdf:about="#hasInnerOuterSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPositionalSelector"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasIntensity --> + + <owl:ObjectProperty rdf:about="#hasIntensity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasIntrinsicAbnormalityStatus --> + + <owl:ObjectProperty rdf:about="#hasIntrinsicAbnormalityStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StatusAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasIntrinsicPathologicalStatus --> + + <owl:ObjectProperty rdf:about="#hasIntrinsicPathologicalStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StatusAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasIntrinsicPattern --> + + <owl:ObjectProperty rdf:about="#hasIntrinsicPattern"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StatusAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLateralPosition --> + + <owl:ObjectProperty rdf:about="#hasLateralPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasAbsolutePosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLayer --> + + <owl:ObjectProperty rdf:about="#hasLayer"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralPartitiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLeftRightDiplacement --> + + <owl:ObjectProperty rdf:about="#hasLeftRightDiplacement"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDisplacement"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLeftRightSelector --> + + <owl:ObjectProperty rdf:about="#hasLeftRightSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPositionalSelector"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLength --> + + <owl:ObjectProperty rdf:about="#hasLength"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLevel --> + + <owl:ObjectProperty rdf:about="#hasLevel"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLinearDivision --> + + <owl:ObjectProperty rdf:about="#hasLinearDivision"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#HasDivision"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasLocation --> + + <owl:ObjectProperty rdf:about="#hasLocation"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#AnatomicalLocativeAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMagnitude --> + + <owl:ObjectProperty rdf:about="#hasMagnitude"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#QuantityAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMass --> + + <owl:ObjectProperty rdf:about="#hasMass"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMedialLateralDisplacement --> + + <owl:ObjectProperty rdf:about="#hasMedialLateralDisplacement"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDisplacement"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMedialLateralPosition --> + + <owl:ObjectProperty rdf:about="#hasMedialLateralPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasAbsolutePosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMedialLateralSelector --> + + <owl:ObjectProperty rdf:about="#hasMedialLateralSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPositionalSelector"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMixedThroughout --> + + <owl:ObjectProperty rdf:about="#hasMixedThroughout"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#ContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasMultiplicity --> + + <owl:ObjectProperty rdf:about="#hasMultiplicity"> + <rdfs:subPropertyOf rdf:resource="#InverseCollectionAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasNumeratorUnit --> + + <owl:ObjectProperty rdf:about="#hasNumeratorUnit"> + <rdfs:subPropertyOf rdf:resource="#UnitAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasOneEndAt --> + + <owl:ObjectProperty rdf:about="#hasOneEndAt"> + <rdfs:subPropertyOf rdf:resource="#isLinearStructureWithEndAt"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasOrdinalPosition --> + + <owl:ObjectProperty rdf:about="#hasOrdinalPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralPositionModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasOtherEndAt --> + + <owl:ObjectProperty rdf:about="#hasOtherEndAt"> + <rdfs:subPropertyOf rdf:resource="#isLinearStructureWithEndAt"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasOutcome --> + + <owl:ObjectProperty rdf:about="#hasOutcome"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#FunctionalAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasParallelToIt --> + + <owl:ObjectProperty rdf:about="#hasParallelToIt"> + <rdf:type rdf:resource="&owl;TransitiveProperty"/> + <rdfs:subPropertyOf rdf:resource="#LinearContainmentAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPathologicalStatus --> + + <owl:ObjectProperty rdf:about="#hasPathologicalStatus"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StatusAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPersonPerforming --> + + <owl:ObjectProperty rdf:about="#hasPersonPerforming"> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPhysicalMeans --> + + <owl:ObjectProperty rdf:about="#hasPhysicalMeans"> + <rdfs:subPropertyOf rdf:resource="#HasCausalLinkTo"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPhysicalState --> + + <owl:ObjectProperty rdf:about="#hasPhysicalState"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#SubstanceModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPosition --> + + <owl:ObjectProperty rdf:about="#hasPosition"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralPositionModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPositionalSelector --> + + <owl:ObjectProperty rdf:about="#hasPositionalSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#StructuralSelectorModifier"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPresenceAbsence --> + + <owl:ObjectProperty rdf:about="#hasPresenceAbsence"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ExistentialModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasPressure --> + + <owl:ObjectProperty rdf:about="#hasPressure"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#SubstanceModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProcessActivity --> + + <owl:ObjectProperty rdf:about="#hasProcessActivity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProcessActivityLevel --> + + <owl:ObjectProperty rdf:about="#hasProcessActivityLevel"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProcessPattern --> + + <owl:ObjectProperty rdf:about="#hasProcessPattern"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#TemporalModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProcessSpecificationLevel --> + + <owl:ObjectProperty rdf:about="#hasProcessSpecificationLevel"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#SpecificationLevelAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProximalDistalDisplacement --> + + <owl:ObjectProperty rdf:about="#hasProximalDistalDisplacement"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDisplacement"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProximalDistalSelector --> + + <owl:ObjectProperty rdf:about="#hasProximalDistalSelector"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasPositionalSelector"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasProximity --> + + <owl:ObjectProperty rdf:about="#hasProximity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasAbsolutePosition"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasQuality --> + + <owl:ObjectProperty rdf:about="#hasQuality"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasDimension"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasQuantity --> + + <owl:ObjectProperty rdf:about="#hasQuantity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#hasState"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasRange --> + + <owl:ObjectProperty rdf:about="#hasRange"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasReference --> + + <owl:ObjectProperty rdf:about="#hasReference"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ConstructiveAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasRelationshipToWhole --> + + <owl:ObjectProperty rdf:about="#hasRelationshipToWhole"> + <rdfs:subPropertyOf rdf:resource="#InverseCollectionAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasScope --> + + <owl:ObjectProperty rdf:about="#hasScope"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasSensitivity --> + + <owl:ObjectProperty rdf:about="#hasSensitivity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasSeverity --> + + <owl:ObjectProperty rdf:about="#hasSeverity"> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> + <rdfs:subPropertyOf rdf:resource="#ProcessModifierAttribute"/> + </owl:ObjectProperty> + + + + <!-- http://www.co-ode.org/ontologies/galen#hasSexDimorphicFormFor --> + + <owl:ObjectProperty rdf:about="#hasSexDimorphicFormFor"> + <rdf:type rdf:resource="&owl;FunctionalP... [truncated message content] |
From: <jen...@us...> - 2010-08-07 08:15:44
|
Revision: 2253 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2253&view=rev Author: jenslehmann Date: 2010-08-07 08:15:37 +0000 (Sat, 07 Aug 2010) Log Message: ----------- updated manual + small fixes Modified Paths: -------------- trunk/bin/dllearner trunk/bin/dllearner.bat trunk/bin/gui trunk/bin/gui.bat trunk/bin/quickstart trunk/bin/quickstart.bat trunk/bin/ws trunk/bin/ws.bat trunk/doc/manual/bibliography.bib trunk/doc/manual/manual.tex trunk/src/dl-learner/org/dllearner/Info.java trunk/src/dl-learner/org/dllearner/examples/Alzheimer.java Modified: trunk/bin/dllearner =================================================================== --- trunk/bin/dllearner 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/dllearner 2010-08-07 08:15:37 UTC (rev 2253) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file Modified: trunk/bin/dllearner.bat =================================================================== --- trunk/bin/dllearner.bat 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/dllearner.bat 2010-08-07 08:15:37 UTC (rev 2253) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file Modified: trunk/bin/gui =================================================================== --- trunk/bin/gui 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/gui 2010-08-07 08:15:37 UTC (rev 2253) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file Modified: trunk/bin/gui.bat =================================================================== --- trunk/bin/gui.bat 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/gui.bat 2010-08-07 08:15:37 UTC (rev 2253) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file Modified: trunk/bin/quickstart =================================================================== --- trunk/bin/quickstart 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/quickstart 2010-08-07 08:15:37 UTC (rev 2253) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/quickstart.bat =================================================================== --- trunk/bin/quickstart.bat 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/quickstart.bat 2010-08-07 08:15:37 UTC (rev 2253) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/ws =================================================================== --- trunk/bin/ws 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/ws 2010-08-07 08:15:37 UTC (rev 2253) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file Modified: trunk/bin/ws.bat =================================================================== --- trunk/bin/ws.bat 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/bin/ws.bat 2010-08-07 08:15:37 UTC (rev 2253) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file Modified: trunk/doc/manual/bibliography.bib =================================================================== --- trunk/doc/manual/bibliography.bib 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/doc/manual/bibliography.bib 2010-08-07 08:15:37 UTC (rev 2253) @@ -7,10 +7,13 @@ } @article{2009_ijswis, - title = "Learning of {OWL} Class Descriptions on Very Large Knowledge Bases", - author = "Sebastian Hellmann and Jens Lehmann and Sören Auer", - journal = "International Journal On Semantic Web and Information Systems", - year = "2009", + author = {Sebastian Hellmann and Jens Lehmann and S{\"o}ren Auer}, + title = {Learning of {OWL} Class Descriptions on Very Large Knowledge Bases}, + journal = {Int. J. Semantic Web Inf. Syst.}, + volume = {5}, + number = {2}, + year = {2009}, + pages = {25-48} } @inproceedings{2008_dbpedia, @@ -71,3 +74,36 @@ pages = {147--160}, note = {Best Student Paper} } + +@Article{dllearner_jmlr, + author = "Jens Lehmann", + title = "{DL-Learner:} Learning Concepts in Description Logics", + journal = "Journal of Machine Learning Research (JMLR)", + year = "2009", + volume = "10", + pages = "2639--2642" +} + +@article{mlj, + author = {Jens Lehmann and Pascal Hitzler}, + journal = {Machine Learning journal}, + title = {Concept Learning in Description Logics Using Refinement Operators}, + publisher = {Springer}, + pages = {203--250}, + year = {2010}, + volume = {78}, + number = {1-2} +} + +@InProceedings{ property_analysis, + author = "Jens Lehmann and Pascal Hitzler", + title = "Foundations of Refinement Operators for Description Logics", + booktitle = "Inductive Logic Programming, 17th International Conference, ILP 2007, Corvallis, OR, USA, June 19-21, 2007", + year = "2007", + editor = "Hendrik Blockeel and Jan Ramon and Jude W. Shavlik and Prasad Tadepalli", + publisher = "Springer", + series = "Lecture Notes in Computer Science", + note = "Best Student Paper Award", + volume = "4894", + pages = "161--174" +} Modified: trunk/doc/manual/manual.tex =================================================================== --- trunk/doc/manual/manual.tex 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/doc/manual/manual.tex 2010-08-07 08:15:37 UTC (rev 2253) @@ -69,7 +69,7 @@ \emph{Conf files}, e.g. \verb|examples/father.conf| in this case, describe the learning problem and specify which algorithm you want to use to solve it. In the simplest case they just say where to find the background knowledge to use (in the OWL file \verb|examples/father.owl| in this case) and the positive and negative examples (marked by ``+'' and ``-'', respectively). When running the above command, you should get something similar to the following: \begin{verbatim} -DL-Learner 2010-08-04 command line interface +DL-Learner 2010-08-07 command line interface starting component manager ... OK (157ms) initialising component "OWL file" ... OK (0ms) initialising component "fast instance checker" ... OK (842ms) @@ -95,7 +95,7 @@ \section{DL-Learner Architecture} -DL-Learner consists of core functionality, which provides Machine Learning algorithms for solving the learning problem, support for different knowledge base formats, an OWL library, and reasoner interfaces. There are several interfaces for accessing this functionality, a couple of tools which use the DL-Learner algorithms, and a set of convenience scripts. The general structure is illustrated in Figure \ref{fig:structure}. +DL-Learner (see also~\cite{dllearner_jmlr}) consists of core functionality, which provides Machine Learning algorithms for solving the learning problem, support for different knowledge base formats, an OWL library, and reasoner interfaces. There are several interfaces for accessing this functionality, a couple of tools which use the DL-Learner algorithms, and a set of convenience scripts. The general structure is illustrated in Figure \ref{fig:structure}. \begin{figure} \includegraphics[width=\textwidth]{../../resources/structure_print} @@ -138,12 +138,12 @@ \subsection{Reasoner Components} -Several reasoner components are implemented, which can be interfaces to concrete reasoner implementations. To select a component in a conf file, use \verb|reasoner=$value;|, where \verb|$value| is one of \verb|digReasoner|, \verb|fastInstanceChecker|, or \verb|owlAPIReasoner|, which are explained below. +Several reasoner components are implemented, which can be interfaces to concrete reasoner implementations. To select a component in a conf file, use \verb|reasoner=$value;|, where \verb|$value| is one of \verb|digReasoner|, \verb|fastInstanceChecker|, or \verb|owlAPIReasoner|, which are explained below. Note that OWLlink reasoners can be attached via the OWL API interface. \begin{description} - \item[OWL API] The OWL API reasoner interface can be used in conjunction with the Pellet and FaCT++ reasoners. The only option allows to switch between both: + \item[OWL API] The OWL API reasoner interface can be used in conjunction with the Pellet, FaCT++, HermiT and OWLlink reasoners. The only option allows to switch between them: \begin{itemize} - \item reasonerType: Selects the desired reasoner. By default, Pellet is used. Usage: \verb|owlAPIReasoner.reasonerType = fact;|. Note that FaCT++ is written in C++ and we currently ship the 32 bit version of the JNI layer. This may change to 64 bit in the future. + \item reasonerType: Selects the desired reasoner. By default, Pellet is used. Usage: \verb|owlAPIReasoner.reasonerType = fact;|. Pellet, FaCT++ and HermiT are already included in DL-Learner. Note that for FaCT++, you need to add -Djava.library.path=lib/fact/64bit (or 32bit) to the Java command. You can also use an external OWLlink reasoner by setting the reasoner type to \verb|owllink|. You can then use the option \verb|owlLinkURL| to specify the URL of the OWLlink reasoner (http://localhost:8080/ by default). \end{itemize} \item[DIG] DIG 1.1\footnote{\dig} is an interface to description logic reasoners and supported by a large variety of reasoners including Pellet, FaCT++, KAON2, and Racer Pro. The major drawback is that the current version DIG 1.1 is not aligned with the OWL specification and therefore lacks several features, which are crucial to the more recent learning algorithms in DL-Learner. If you still want to use the DIG interface, you have to download a DIG capable reasoner and start the DIG server there. DL-Learner communicates with the reasoner using the XML based protocol over HTTP. \item[Fast Instance Checker] Instance checks, i.e.~testing whether an individual is instance of a class, is the major reasoner task in many learning algorithms. This reasoner is a self-development of the DL-Learner project. It remedies some problems related to Machine Learning and the Open World Assumption in OWL and therefore is not correct w.r.t.~OWL semantics. (See \cite{cheng00} Section 4 for an explanation.) Furthermore, it provides an improved performance for instance checks by precomputing some inferences and keeping them in memory. The fast instance checker is build on top of Pellet and the default reasoner component in DL-Learner. @@ -161,7 +161,7 @@ \subsection{Learning Algorithms} -The implemented algorithms vary from very simple (and usually inappropriate) algorithms to sophisticated ones. You can switch between the different algorithms using \verb|algorithm=$value;|, where \verb|$value| is one of \verb|bruteForce|, \verb|random|, \verb|gp|, \verb|refinement|, \verb|refinement2|, and \verb|celoe|. The default is \verb|refinement2|. +The implemented algorithms vary from very simple (and usually inappropriate) algorithms to sophisticated ones. You can switch between the different algorithms using \verb|algorithm=$value;|, where \verb|$value| is one of \verb|bruteForce|, \verb|random|, \verb|gp|, \verb|refinement|, \verb|refexamples|, \verb|celoe|, \verb|el| and \verb|disjunctiveEL|. The default is \verb|refexamples|. \begin{description} \item[Brute Force]: This algorithm tests all class expressions up to a specified length, which you can set using e.g.~\verb|bruteForce.maxlength = 7|. @@ -172,25 +172,26 @@ \item refinement probability: This is used to specify how likely the usage of the genetic refinement operator should be, e.g.~\verb|gp.refinementProbability = 0.6| means that it will be selected 60\% of the time. \end{itemize} The GP algorithm has 15 more options documented in \verb|doc/configOptions.txt|. - \item[Refinement] This is a top down refinement operator approach, which is described in \cite{alc_learning_algorithm}. Some options include: + \item[Refinement] This is a top down refinement operator approach, which is described in \cite{alc_learning_algorithm} and based on insights in \cite{property_analysis}. Some options include: \begin{itemize} \item target language: The standard target language of this algorithm is $\mathcal{ALCN(D)}$. However, you can change the language, i.e.~you can exclude the $\forall$ constructor by using \verb|refinement.useAllConstructor = false;|. Similar options exist for $\exists$, $\neg$, cardinality restrictions, and boolean datatypes. \item maximum execution time: If there is no perfect solution of a given problem, the algorithm can potentially run forever (in practice it will run out of memory). It is therefore often interesting to limit the execution time. You can use e.g.~\verb|refinement.maxExecutionTimeInSeconds = 100| to say that the algorithm should run for at most 100 seconds. Often, it will run slightly longer than the maximum execution time since it waits for the next internal loop of the algorithm to stop gracefully. \end{itemize} The algorithm supports a range of further options. For instance, one can specify which classes and properties must not occur in resulting class expressions. - \item[Refinement II] The previous algorithm has been extended to make more sophisticated use of background knowledge and therefore run more efficiently on many problems. It also supports double datatypes and hasValue restrictions (which again can be turned on or off as desired). It also includes explicit noise handling through the \verb|noisePercentage| option. This is currently the default and recommend algorithm for learning from positive and negative examples. More than 30 options can be set to control its behaviour. However, apart from the target language the most important setting is noise, which should be optimised for the given problem. - \item[Class Expression Learning for Ontology Engineering (CELOE)] Currently CELOE is the best class learning algorithm available within DL-Learner. It uses the same refinement operator as Refinement II, but a completely different heuristics. Furthermore, it guarantees that the returned class expressions are minimal in the sense that one cannot remove parts of them without getting an inequivalent expression. Furthermore, it makes use of existing background knowledge in coverage checks. Statistical methods are used to improve the efficiency of the algorithm such that it scales to large knowledge bases. While it was originally designed for ontology engineering, it can also be used for other learning problems and might even be superior to the other algorithms in many cases (not well-tested yet). Note that many configuration options of Refinement II were dropped for the sake of simplicity, but might be introduced if needed. + \item[Refexamples (OCEL)] The previous algorithm has been extended to make more sophisticated use of background knowledge~\cite{mlj} and therefore run more efficiently on many problems. It also supports double datatypes and hasValue restrictions (which again can be turned on or off as desired). It also includes explicit noise handling through the \verb|noisePercentage| option. This is currently the default and recommend algorithm for learning from positive and negative examples. More than 30 options can be set to control its behaviour. However, apart from the target language the most important setting is noise, which should be optimised for the given problem. + \item[Class Expression Learning for Ontology Engineering (CELOE)] Currently CELOE is the best class learning algorithm available within DL-Learner. It uses the same refinement operator as OCEL, but a completely different heuristics. Furthermore, it guarantees that the returned class expressions are minimal in the sense that one cannot remove parts of them without getting an inequivalent expression. Furthermore, it makes use of existing background knowledge in coverage checks. Statistical methods are used to improve the efficiency of the algorithm such that it scales to large knowledge bases. While it was originally designed for ontology engineering, it can also be used for other learning problems and might even be superior to the other algorithms in many cases (not well-tested yet). Note that many configuration options of OCEL were dropped for the sake of simplicity, but may be introduced if needed. + \item[EL Tree Learner (ELTL)] This algorithm has EL as its target language, i.e. is specialized for this relatively simple language. There are two algorithms: \verb|el| learns EL concepts and \verb|disjunctiveEL| learns disjunctions of EL concepts. \end{description} Please note that while components are interchangeable, it is not possible to arbitrarily combine them. For instance, the newer learning algorithms do not work with the DIG interface, since it does not provide the necessary inference tasks. Furthermore, a learning algorithm can specify which learning problems it can solve, i.e.~we do not require it to be able to solve each learning problem. Table \ref{tab:la_lp_comp} provides a compatibility matrix. Note that this can change in future releases, because algorithms may be extended to support new learning problems or drop support for them. \begin{table}[htb] \centering -\begin{tabular}{c|cccccc} -learning problem & BF & RG & GP & Ref & Ref II & CELOE \\\hline -pos only & x & x & & & & x \\ -pos neg & x & x & x & x & x & x \\ -class learning & x & x & & & & x +\begin{tabular}{c|ccccccc} +learning problem & BF & RG & GP & Ref & OCEL & CELOE & ELTL \\\hline +pos only & x & x & & & & x & \\ +pos neg & x & x & x & x & x & x & x \\ +class learning & x & x & & & & x & \end{tabular} \caption{Learning problem - learning algorithm compatibility matrix in DL-Learner. Legend: BF = brute force, RG = random guesser, Ref = Refinement} \label{tab:la_lp_comp} Modified: trunk/src/dl-learner/org/dllearner/Info.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Info.java 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/src/dl-learner/org/dllearner/Info.java 2010-08-07 08:15:37 UTC (rev 2253) @@ -3,6 +3,6 @@ package org.dllearner; public class Info { - public static final String build = "2010-08-04"; + public static final String build = "2010-08-07"; } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/examples/Alzheimer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/examples/Alzheimer.java 2010-08-06 19:49:34 UTC (rev 2252) +++ trunk/src/dl-learner/org/dllearner/examples/Alzheimer.java 2010-08-07 08:15:37 UTC (rev 2253) @@ -678,11 +678,11 @@ } } else if(subs.startsWith("double_alk")) { if(subs.contains("1")) { - subs = "CH2\x96CH3"; + subs = "CH2-CH3"; } else if (subs.contains("2")) { - subs = "(CH2\x96CH3)2"; + subs = "(CH2-CH3)2"; } else if (subs.contains("3")) { - subs = "(CH2\x96CH3)3"; + subs = "(CH2-CH3)3"; } } else if(subs.startsWith("aro")) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2010-08-07 09:28:37
|
Revision: 2255 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2255&view=rev Author: jenslehmann Date: 2010-08-07 09:28:30 +0000 (Sat, 07 Aug 2010) Log Message: ----------- modified build script such that FaCT++ 64bit version works in release Modified Paths: -------------- trunk/bin/dllearner trunk/bin/dllearner.bat trunk/bin/gui trunk/bin/gui.bat trunk/bin/quickstart trunk/bin/quickstart.bat trunk/bin/ws trunk/bin/ws.bat trunk/build.xml Modified: trunk/bin/dllearner =================================================================== --- trunk/bin/dllearner 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/dllearner 2010-08-07 09:28:30 UTC (rev 2255) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.Start $@ \ No newline at end of file Modified: trunk/bin/dllearner.bat =================================================================== --- trunk/bin/dllearner.bat 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/dllearner.bat 2010-08-07 09:28:30 UTC (rev 2255) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.Start %* \ No newline at end of file Modified: trunk/bin/gui =================================================================== --- trunk/bin/gui 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/gui 2010-08-07 09:28:30 UTC (rev 2255) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.gui.StartGUI $@ \ No newline at end of file Modified: trunk/bin/gui.bat =================================================================== --- trunk/bin/gui.bat 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/gui.bat 2010-08-07 09:28:30 UTC (rev 2255) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.gui.StartGUI %* \ No newline at end of file Modified: trunk/bin/quickstart =================================================================== --- trunk/bin/quickstart 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/quickstart 2010-08-07 09:28:30 UTC (rev 2255) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/quickstart.bat =================================================================== --- trunk/bin/quickstart.bat 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/quickstart.bat 2010-08-07 09:28:30 UTC (rev 2255) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.cli.QuickStart \ No newline at end of file Modified: trunk/bin/ws =================================================================== --- trunk/bin/ws 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/ws 2010-08-07 09:28:30 UTC (rev 2255) @@ -1,2 +1,2 @@ #!/bin/bash -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .:./lib/ant_latex.jar:./lib/db/h2-1.2.131.jar:./lib/db/mysql-connector-java-5.1.6-bin.jar:./lib/db/postgresql-8.4-701.jdbc4.jar:./lib/dig1.1-xmlbeans.jar:./lib/fact/FaCTpp-OWLAPI-v1.4.0.1.jar:./lib/hermit/org.semanticweb.HermiT.jar:./lib/ini4j-0.3.2.jar:./lib/jamon-2.7.jar:./lib/jena/antlr-2.7.5.jar:./lib/jena/arq.jar:./lib/jena/commons-logging-1.1.1.jar:./lib/jena/concurrent.jar:./lib/jena/icu4j_3_4.jar:./lib/jena/iri.jar:./lib/jena/jena.jar:./lib/jena/json.jar:./lib/jena/xercesImpl.jar:./lib/jopt-simple-3.1.jar:./lib/junit-4.4.jar:./lib/log4j.jar:./lib/lucene-core-3.0.1.jar:./lib/ore-tool/BrowserLauncher2-all-1_3.jar:./lib/ore-tool/looks-2.3.0.jar:./lib/ore-tool/swingx-1.6.jar:./lib/owlapi/owlapi-bin.jar:./lib/owllink/owllink-bin.jar:./lib/pellet/aterm-java-1.6.jar:./lib/pellet/jgrapht-jdk1.5.jar:./lib/pellet/pellet-core.jar:./lib/pellet/pellet-datatypes.jar:./lib/pellet/pellet-el.jar:./lib/pellet/pellet-explanation.jar:./lib/pellet/pellet-modularity.jar:./lib/pellet/pellet-owlapiv3.jar:./lib/pellet/pellet-query.jar:./lib/pellet/pellet-rules.jar:./lib/pellet/relaxngDatatype.jar:./lib/pellet/xsdlib.jar:./lib/protege/org.protege.editor.core.application.jar:./lib/protege/org.protege.editor.owl.jar:./lib/secondstring-20060615.jar:./lib/xbean.jar:./lib/dllearner.jar org.dllearner.server.DLLearnerWSStart $@ \ No newline at end of file Modified: trunk/bin/ws.bat =================================================================== --- trunk/bin/ws.bat 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/bin/ws.bat 2010-08-07 09:28:30 UTC (rev 2255) @@ -1 +1 @@ -java -Xmx1024m -Djava.library.path=lib/fact/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file +java -Xmx1024m -Djava.library.path=lib/fact/64bit/ -cp .;.\lib\ant_latex.jar;.\lib\db\h2-1.2.131.jar;.\lib\db\mysql-connector-java-5.1.6-bin.jar;.\lib\db\postgresql-8.4-701.jdbc4.jar;.\lib\dig1.1-xmlbeans.jar;.\lib\fact\FaCTpp-OWLAPI-v1.4.0.1.jar;.\lib\hermit\org.semanticweb.HermiT.jar;.\lib\ini4j-0.3.2.jar;.\lib\jamon-2.7.jar;.\lib\jena\antlr-2.7.5.jar;.\lib\jena\arq.jar;.\lib\jena\commons-logging-1.1.1.jar;.\lib\jena\concurrent.jar;.\lib\jena\icu4j_3_4.jar;.\lib\jena\iri.jar;.\lib\jena\jena.jar;.\lib\jena\json.jar;.\lib\jena\xercesImpl.jar;.\lib\jopt-simple-3.1.jar;.\lib\junit-4.4.jar;.\lib\log4j.jar;.\lib\lucene-core-3.0.1.jar;.\lib\ore-tool\BrowserLauncher2-all-1_3.jar;.\lib\ore-tool\looks-2.3.0.jar;.\lib\ore-tool\swingx-1.6.jar;.\lib\owlapi\owlapi-bin.jar;.\lib\owllink\owllink-bin.jar;.\lib\pellet\aterm-java-1.6.jar;.\lib\pellet\jgrapht-jdk1.5.jar;.\lib\pellet\pellet-core.jar;.\lib\pellet\pellet-datatypes.jar;.\lib\pellet\pellet-el.jar;.\lib\pellet\pellet-explanation.jar;.\lib\pellet\pellet-modularity.jar;.\lib\pellet\pellet-owlapiv3.jar;.\lib\pellet\pellet-query.jar;.\lib\pellet\pellet-rules.jar;.\lib\pellet\relaxngDatatype.jar;.\lib\pellet\xsdlib.jar;.\lib\protege\org.protege.editor.core.application.jar;.\lib\protege\org.protege.editor.owl.jar;.\lib\secondstring-20060615.jar;.\lib\xbean.jar;.\lib\dllearner.jar org.dllearner.server.DLLearnerWSStart %* \ No newline at end of file Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2010-08-07 09:07:00 UTC (rev 2254) +++ trunk/build.xml 2010-08-07 09:28:30 UTC (rev 2255) @@ -283,14 +283,14 @@ <map from="${removeprefix}" to="."/> </pathconvert> - <echo file="bin/quickstart.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.cli.QuickStart"/> - <echo file="bin/dllearner.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.cli.Start %*"/> - <echo file="bin/ws.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.server.DLLearnerWSStart %*"/> - <echo file="bin/gui.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.gui.StartGUI %*"/> - <echo file="bin/quickstart" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.cli.QuickStart"/> - <echo file="bin/dllearner" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.cli.Start $@"/> - <echo file="bin/ws" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.server.DLLearnerWSStart $@"/> - <echo file="bin/gui" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.gui.StartGUI $@"/> + <echo file="bin/quickstart.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringWin} org.dllearner.cli.QuickStart"/> + <echo file="bin/dllearner.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringWin} org.dllearner.cli.Start %*"/> + <echo file="bin/ws.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringWin} org.dllearner.server.DLLearnerWSStart %*"/> + <echo file="bin/gui.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringWin} org.dllearner.gui.StartGUI %*"/> + <echo file="bin/quickstart" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringUnix} org.dllearner.cli.QuickStart"/> + <echo file="bin/dllearner" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringUnix} org.dllearner.cli.Start $@"/> + <echo file="bin/ws" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringUnix} org.dllearner.server.DLLearnerWSStart $@"/> + <echo file="bin/gui" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringUnix} org.dllearner.gui.StartGUI $@"/> </target> <!-- generate manual --> @@ -529,8 +529,8 @@ <copy toDir="${release_ore_dir}/examples"> <fileset dir="examples/ore"/> </copy> - <echo file="${release_ore_dir}/ore.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringWin} org.dllearner.tools.ore.OREApplication"/> - <echo file="${release_ore_dir}/ore" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/ -cp ${pathStringUnix} org.dllearner.tools.ore.OREApplication $@"/> + <echo file="${release_ore_dir}/ore.bat" message="java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringWin} org.dllearner.tools.ore.OREApplication"/> + <echo file="${release_ore_dir}/ore" message="#!/bin/bash${line.separator}java -Xmx${max_memory}m -Djava.library.path=lib/fact/64bit/ -cp ${pathStringUnix} org.dllearner.tools.ore.OREApplication $@"/> <!-- create file containing the build info --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2010-08-12 16:43:21
|
Revision: 2260 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2260&view=rev Author: kurzum Date: 2010-08-12 16:43:15 +0000 (Thu, 12 Aug 2010) Log Message: ----------- Added Paths: ----------- trunk/lib/makePOM.sh trunk/lib/pomBegin.xml trunk/lib/pomEnd.xml trunk/lib/rdbtoonto/ trunk/pom.xml Added: trunk/lib/makePOM.sh =================================================================== --- trunk/lib/makePOM.sh (rev 0) +++ trunk/lib/makePOM.sh 2010-08-12 16:43:15 UTC (rev 2260) @@ -0,0 +1,28 @@ +#!/bin/sh + +#~ for i in $(ls -1) ; do echo $i ; done + +rm -v pom.xml +cp -v pomBegin.xml pomtmp.xml + + +for filepath in $(find . -name "*.jar") +do + +artifactid=$(echo $filepath | sed 's/.*\///') + +#~ mvn deploy:deploy-file -Dfile=$filepath -DrepositoryId=archiva.snapshots -Durl=http://db0.aksw.org:8081/archiva/repository/snapshots -DartifactId=$artifactid -DgroupId=dllearnerDependency -Dversion=snapshot -Dpackaging=jar + +echo "writing to "$PWD"/pomtmp.xml" +echo "<dependency> <groupId>dllearnerDependency</groupId> <artifactId>"$artifactid"</artifactId> <version>snapshot</version> </dependency>" >> pomtmp.xml +echo "<dependency> <groupId>dllearnerDependency</groupId> <artifactId>"$artifactid"</artifactId> <version>snapshot</version> </dependency>" +done + +cat pomEnd.xml >> pomtmp.xml + +mv pomtmp.xml ../pom.xml + + +echo "in case the script fails with 401 you need to update credentials in ~/.m2/settings.xml" +echo "YOU MIGHT need to uncomment the line that uploads the jars to the server ;)" +echo "done" Property changes on: trunk/lib/makePOM.sh ___________________________________________________________________ Added: svn:executable + * Added: trunk/lib/pomBegin.xml =================================================================== --- trunk/lib/pomBegin.xml (rev 0) +++ trunk/lib/pomBegin.xml 2010-08-12 16:43:15 UTC (rev 2260) @@ -0,0 +1,63 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.dllearner</groupId> + <artifactId>dllearner</artifactId> + <version>snapshot</version> + <properties> + <!-- tell the compiler we can use 1.5 --> + <maven.compiler.source>1.5</maven.compiler.source> + <maven.compiler.target>1.5</maven.compiler.target> + + </properties> + <distributionManagement> + <repository> + <id>archiva.internal</id> + <name>Internal Release Repository</name> + <url> http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> + <snapshotRepository> + <id>archiva.snapshots</id> + <name>Internal Snapshot Repository</name> + <url>http://db0.aksw.org:8081/archiva/repository/snapshots/</url> + </snapshotRepository> + </distributionManagement> + + <repositories> +<!-- + <repository> + <id>some_stuff_such_as_pellet</id> + <url>http://on.cs.unibas.ch/maven/repository</url> + </repository> + <repository> + <id>java sun maven</id> + <url>http://download.java.net/maven/2</url> + </repository> +--> + <repository> + <id>our archiva</id> + <url>http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> +<!-- + <repository> + <id>Jamon 2.7</id> + <url>http://maven.jahia.org/maven2</url> + </repository> + <repository> + <id>browserlauncher2</id> + <url>http://www.laughingpanda.org/maven2</url> + </repository> +--> + </repositories> + + + <build> + <directory>target</directory> + <outputDirectory>target/classes</outputDirectory> + <finalName>${artifactId}-${version}</finalName> + <testOutputDirectory>target/test-classes</testOutputDirectory> + <sourceDirectory>src/dl-learner</sourceDirectory> + <scriptSourceDirectory>bin</scriptSourceDirectory> + <!-- <testSourceDirectory>src/test/java</testSourceDirectory> --> + </build> + + <dependencies> Added: trunk/lib/pomEnd.xml =================================================================== --- trunk/lib/pomEnd.xml (rev 0) +++ trunk/lib/pomEnd.xml 2010-08-12 16:43:15 UTC (rev 2260) @@ -0,0 +1,5 @@ + + </dependencies> + + +</project> Added: trunk/pom.xml =================================================================== --- trunk/pom.xml (rev 0) +++ trunk/pom.xml 2010-08-12 16:43:15 UTC (rev 2260) @@ -0,0 +1,117 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.dllearner</groupId> + <artifactId>dllearner</artifactId> + <version>snapshot</version> + <properties> + <!-- tell the compiler we can use 1.5 --> + <maven.compiler.source>1.5</maven.compiler.source> + <maven.compiler.target>1.5</maven.compiler.target> + + </properties> + <distributionManagement> + <repository> + <id>archiva.internal</id> + <name>Internal Release Repository</name> + <url> http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> + <snapshotRepository> + <id>archiva.snapshots</id> + <name>Internal Snapshot Repository</name> + <url>http://db0.aksw.org:8081/archiva/repository/snapshots/</url> + </snapshotRepository> + </distributionManagement> + + <repositories> +<!-- + <repository> + <id>some_stuff_such_as_pellet</id> + <url>http://on.cs.unibas.ch/maven/repository</url> + </repository> + <repository> + <id>java sun maven</id> + <url>http://download.java.net/maven/2</url> + </repository> +--> + <repository> + <id>our archiva</id> + <url>http://db0.aksw.org:8081/archiva/repository/internal/</url> + </repository> +<!-- + <repository> + <id>Jamon 2.7</id> + <url>http://maven.jahia.org/maven2</url> + </repository> + <repository> + <id>browserlauncher2</id> + <url>http://www.laughingpanda.org/maven2</url> + </repository> +--> + </repositories> + + + <build> + <directory>target</directory> + <outputDirectory>target/classes</outputDirectory> + <finalName>${artifactId}-${version}</finalName> + <testOutputDirectory>target/test-classes</testOutputDirectory> + <sourceDirectory>src/dl-learner</sourceDirectory> + <scriptSourceDirectory>bin</scriptSourceDirectory> + <!-- <testSourceDirectory>src/test/java</testSourceDirectory> --> + </build> + + <dependencies> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-el.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-datatypes.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-modularity.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-owlapiv3.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-rules.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-core.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>xsdlib.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-explanation.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>jgrapht-jdk1.5.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>pellet-query.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>relaxngDatatype.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>aterm-java-1.6.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>ant_latex.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>jopt-simple-3.1.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>BrowserLauncher2-all-1_3.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>swingx-1.6.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>looks-2.3.0.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>owlapi-bin.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>dig1.1-xmlbeans.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>lucene-core-3.0.1.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>ini4j-0.3.2.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>converter.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>commons-lang-2.3.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>rdbtoonto.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>mysql-connector-java-5.1.6-bin.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>commons-collections-3.2.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>commons-configuration-1.4.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>org.protege.editor.core.application.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>org.protege.editor.owl.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>org.semanticweb.HermiT.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>jamon-2.7.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>junit-4.4.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>postgresql-8.4-701.jdbc4.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>mysql-connector-java-5.1.6-bin.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>h2-1.2.131.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>secondstring-20060615.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>json.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>commons-logging-1.1.1.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>icu4j_3_4.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>concurrent.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>xercesImpl.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>jena.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>arq.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>iri.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>antlr-2.7.5.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>FaCTpp-OWLAPI-v1.4.0.1.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>owllink-bin.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>xbean.jar</artifactId> <version>snapshot</version> </dependency> +<dependency> <groupId>dllearnerDependency</groupId> <artifactId>log4j.jar</artifactId> <version>snapshot</version> </dependency> + + </dependencies> + + +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |