<?xml version="1.0" encoding="UTF-8" ?>




<!--  RSS generated by JIRA 108 at Thu May 23 07:45:07 CEST 2013 -->
<rss version="0.92">





<channel>
    <title>openRDF.org Issue Tracker</title>
    <link>http://www.openrdf.org/issues</link>
    <description>This file is an XML representation of some issues</description>
    <language>en</language>

    
<item>

    







<title>[ALI-18] OWL compiler: FileNotFoundException on Windows for FOAF</title>
<link>http://www.openrdf.org/issues/browse/ALI-18</link>

    
        <description>If compiling an ontology that imports FOAF 0.1, the compilation fails on Windows, but works on Linux.&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/stain/alibaba-bug-con-person&quot;&gt;https://github.com/stain/alibaba-bug-con-person&lt;/a&gt; is a Maven project that involves org.openrdf.repository.object.compiler.Compiler and then unpacks the JAR to include it in a Maven module.&lt;br/&gt;
&lt;br/&gt;
On Windows 7/x64 with Java 1.7 this fails with a FileNotFoundException exception. On Linux this works.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
{code]&lt;br/&gt;
main:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mkdir] Created dir: C:\Users\stain\src\alibaba-bug-con-person\target\generated-sources&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mkdir] Created dir: C:\Users\stain\src\alibaba-bug-con-person\target\generated-sources\alibaba&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: Failed to load class &amp;quot;org.slf4j.impl.StaticLoggerBinder&amp;quot;.&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: Defaulting to no-operation (NOP) logger implementation&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: See &lt;a href=&quot;http://www.slf4j.org/codes.html#StaticLoggerBinder&quot;&gt;http://www.slf4j.org/codes.html#StaticLoggerBinder&lt;/a&gt; for further details.&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] Exception in thread &amp;quot;main&amp;quot; org.openrdf.repository.RepositoryException: java.io.FileNotFoundException: C:\Users\stain\AppData\Local\Temp\OWLCompiler1586987051381015229\con\package-info.java (The system cannot find the path specified)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.OWLCompiler.createJar(OWLCompiler.java:363)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.Compiler.main(Compiler.java:167)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] Caused by: java.io.FileNotFoundException: C:\Users\stain\AppData\Local\Temp\OWLCompiler1586987051381015229\con\package-info.java (The system cannot find the path specified)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at java.io.FileOutputStream.open(Native Method)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at java.io.FileOutputStream.&amp;lt;init&amp;gt;(Unknown Source)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at java.io.FileOutputStream.&amp;lt;init&amp;gt;(Unknown Source)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at java.io.PrintWriter.&amp;lt;init&amp;gt;(Unknown Source)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.source.JavaClassBuilder.&amp;lt;init&amp;gt;(JavaClassBuilder.java:84)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.source.JavaAnnotationBuilder.&amp;lt;init&amp;gt;(JavaAnnotationBuilder.java:73)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.source.JavaMessageBuilder.&amp;lt;init&amp;gt;(JavaMessageBuilder.java:55)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.model.RDFOntology.generatePackageInfo(RDFOntology.java:60)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.OWLCompiler.buildJavaFiles(OWLCompiler.java:471)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.OWLCompiler.compile(OWLCompiler.java:379)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	at org.openrdf.repository.object.compiler.OWLCompiler.createJar(OWLCompiler.java:353)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] 	... 1 more&lt;br/&gt;
[INFO] ------------------------------------------------------------------------&lt;br/&gt;
{code}&lt;br/&gt;
&lt;br/&gt;
On Linux:&lt;br/&gt;
&lt;br/&gt;
[INFO] Executing tasks&lt;br/&gt;
&lt;br/&gt;
main:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mkdir] Created dir: /home/stain/src/alibaba-bug-con-person/target/generated-sources&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mkdir] Created dir: /home/stain/src/alibaba-bug-con-person/target/generated-sources/alibaba&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: Failed to load class &amp;quot;org.slf4j.impl.StaticLoggerBinder&amp;quot;.&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: Defaulting to no-operation (NOP) logger implementation&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[java] SLF4J: See &lt;a href=&quot;http://www.slf4j.org/codes.html#StaticLoggerBinder&quot;&gt;http://www.slf4j.org/codes.html#StaticLoggerBinder&lt;/a&gt; for further details.&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[unzip] Expanding: /home/stain/src/alibaba-bug-con-person/target/ontology.jar into /home/stain/src/alibaba-bug-con-person/target/generated-sources/alibaba&lt;br/&gt;
[INFO] Executed tasks&lt;br/&gt;
&lt;br/&gt;
And the con/Person file is there:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&apos;mailto:stain@rpc268&apos;&gt;stain@rpc268&lt;/a&gt;:~/src/alibaba-bug-con-person/target/generated-sources/alibaba$ ls con/Person.java  -al&lt;br/&gt;
-rw-rw-r-- 1 stain stain 137 Sep 19 18:17 con/Person.java&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Linux&lt;br/&gt;
</description>
    
    
        <environment>Windows 7/x64&lt;br/&gt;
Oracle JDK Java 1.7&lt;br/&gt;
&lt;br/&gt;
PS C:\Users\stain\Downloads&amp;gt; java -version&lt;br/&gt;
java version &amp;quot;1.7.0_03&amp;quot;&lt;br/&gt;
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)&lt;br/&gt;
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Linux environment:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&apos;mailto:stain@rpc268&apos;&gt;stain@rpc268&lt;/a&gt;:~$ lsb_release -a&lt;br/&gt;
No LSB modules are available.&lt;br/&gt;
Distributor ID: Ubuntu&lt;br/&gt;
Description:    Ubuntu 12.04.1 LTS&lt;br/&gt;
Release:        12.04&lt;br/&gt;
Codename:       precise&lt;br/&gt;
&lt;a href=&apos;mailto:stain@rpc268&apos;&gt;stain@rpc268&lt;/a&gt;:~$ java -version&lt;br/&gt;
java version &amp;quot;1.7.0_03&amp;quot;&lt;br/&gt;
OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3)&lt;br/&gt;
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)&lt;br/&gt;
</environment>
    
        <key id="14100">ALI-18</key>
        <summary>OWL compiler: FileNotFoundException on Windows for FOAF</summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="soilandreyes">Stian Soiland-Reyes</reporter>
        
    

        
        <created>Wed, 19 Sep 2012 19:21:53 +0200 (CEST)</created>
    <updated>Tue, 30 Oct 2012 18:34:58 +0100 (CET)</updated>

    
        
        
            
            
                
                    <version>2.0rc</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0rc</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 19:25:23 +0200 (CEST)" level="">It can also be recreated on command line:&lt;br/&gt;
&lt;br/&gt;
PS C:\Users\stain\Downloads\openrdf-alibaba-2.0-rc5&amp;gt; .\bin\owl-compiler.bat -j ontology.jar &lt;a href=&quot;http://xmlns.com/foaf/0.1/&quot;&gt;http://xmlns.com/foaf/0.1/&lt;/a&gt;&lt;br/&gt;
Exception in thread &amp;quot;main&amp;quot; org.openrdf.repository.RepositoryException: java.io.FileNotFoundException: C:\Users\stain\AppData\Local\Temp\OWLCompiler3675442043089622315\con\package-info.java (The system cannot find the path specified)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.OWLCompiler.createJar(OWLCompiler.java:363)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.Compiler.main(Compiler.java:167)&lt;br/&gt;
Caused by: java.io.FileNotFoundException: C:\Users\stain\AppData\Local\Temp\OWLCompiler3675442043089622315\con\package-info.java (The system cannot find the path specified)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.io.FileOutputStream.open(Native Method)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.io.FileOutputStream.&amp;lt;init&amp;gt;(FileOutputStream.java:212)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.io.FileOutputStream.&amp;lt;init&amp;gt;(FileOutputStream.java:165)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.io.PrintWriter.&amp;lt;init&amp;gt;(PrintWriter.java:263)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.source.JavaClassBuilder.&amp;lt;init&amp;gt;(JavaClassBuilder.java:84)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.source.JavaAnnotationBuilder.&amp;lt;init&amp;gt;(JavaAnnotationBuilder.java:73)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.source.JavaMessageBuilder.&amp;lt;init&amp;gt;(JavaMessageBuilder.java:55)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.model.RDFOntology.generatePackageInfo(RDFOntology.java:60)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.OWLCompiler.buildJavaFiles(OWLCompiler.java:471)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.OWLCompiler.compile(OWLCompiler.java:379)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.openrdf.repository.object.compiler.OWLCompiler.createJar(OWLCompiler.java:353)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;... 1 more&lt;br/&gt;
Sep 19, 2012 6:24:47 PM org.openrdf.repository.object.compiler.OWLCompiler$ConceptBuilder run&lt;br/&gt;
SEVERE: Error processing &lt;a href=&quot;http://www.w3.org/2000/10/swap/pim/contact#Person&quot;&gt;http://www.w3.org/2000/10/swap/pim/contact#Person&lt;/a&gt;</comment>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 19:26:56 +0200 (CEST)" level="">Also reproduciable in rc4:&lt;br/&gt;
&lt;br/&gt;
PS C:\Users\stain\Downloads\openrdf-alibaba-2.0-rc4&amp;gt; .\bin\owl-compiler.bat -j ontology.jar &lt;a href=&quot;http://xmlns.com/foaf/0.1/&quot;&gt;http://xmlns.com/foaf/0.1/&lt;/a&gt;&lt;br/&gt;
Exception in thread &amp;quot;main&amp;quot; org.openrdf.repository.RepositoryException: java.io.FileNotFoundException: C:\Users\stain\AppData\Local\Temp\OWLCompiler1542923240009158423\con\package-info.java (The system cannot find the path specified)</comment>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 19:48:24 +0200 (CEST)" level="">Seems to be caused by reserved filenames on Windows:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\taverna-prov\prov-taverna-owl-bindings\target\generated-sources\alibaba&amp;gt;mkdir con&lt;br/&gt;
The directory name is invalid.&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\taverna-prov\prov-taverna-owl-bindings\target\generated-sources\alibaba&amp;gt;mkdir prn&lt;br/&gt;
The directory name is invalid.&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\taverna-prov\prov-taverna-owl-bindings\target\generated-sources\alibaba&amp;gt;mkdir lpt1&lt;br/&gt;
The directory name is invalid.&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\taverna-prov\prov-taverna-owl-bindings\target\generated-sources\alibaba&amp;gt;mkdir com1&lt;br/&gt;
The directory name is invalid.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
EVIL I tell you! :&apos;((</comment>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 20:00:26 +0200 (CEST)" level="">&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa561308.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/aa561308.aspx&lt;/a&gt; Describes the reserved names:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
You cannot use the following reserved device names in the file path: CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9.</comment>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 20:18:12 +0200 (CEST)" level="">Not tested yet:&lt;br/&gt;
&lt;br/&gt;
Patching org.openrdf.repository.object.compiler.OWLCompiler.packageName(String)&lt;br/&gt;
&lt;br/&gt;
	List&amp;lt;String&amp;gt; invalidOnWindows = Arrays.asList(&amp;quot;CON&amp;quot;, &amp;quot;PRN&amp;quot;, &amp;quot;AUX&amp;quot;, &amp;quot;CLOCK$&amp;quot;, &amp;quot;NUL&amp;quot;, &amp;quot;COM1&amp;quot;, &amp;quot;COM2&amp;quot;, &amp;quot;COM3&amp;quot;, &amp;quot;COM4&amp;quot;, &amp;quot;COM5&amp;quot;, &amp;quot;COM6&amp;quot;, &amp;quot;COM7&amp;quot;, &amp;quot;COM8&amp;quot;, &amp;quot;COM9&amp;quot;, &amp;quot;LPT1&amp;quot;, &amp;quot;LPT2&amp;quot;, &amp;quot;LPT3&amp;quot;, &amp;quot;LPT4&amp;quot;, &amp;quot;LPT5&amp;quot;, &amp;quot;LPT6&amp;quot;, &amp;quot;LPT7&amp;quot;, &amp;quot;LPT8&amp;quot;, &amp;quot;LPT9&amp;quot;);&lt;br/&gt;
	&lt;br/&gt;
	private String packageName(String pkgName) {&lt;br/&gt;
		pkgName =  pkgName.replaceAll(&amp;quot;\\.([^a-zA-Z])&amp;quot;, &amp;quot;._$1&amp;quot;);&lt;br/&gt;
		if (!Character.isLetter(pkgName.charAt(0) &amp;amp;&amp;amp; invalidOnWindows.contains(pkgName))) {&lt;br/&gt;
			pkgName = &amp;quot;_&amp;quot; + pkgName;&lt;br/&gt;
		}&lt;br/&gt;
	}&lt;br/&gt;
</comment>
            
            <comment author="soilandreyes" created="Wed, 19 Sep 2012 20:20:21 +0200 (CEST)" level="">Duh - not &amp;amp;&amp;amp; !&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
&amp;nbsp;	List&amp;lt;String&amp;gt; invalidOnWindows = Arrays.asList(&amp;quot;CON&amp;quot;, &amp;quot;PRN&amp;quot;, &amp;quot;AUX&amp;quot;, &amp;quot;CLOCK$&amp;quot;, &amp;quot;NUL&amp;quot;, &amp;quot;COM1&amp;quot;, &amp;quot;COM2&amp;quot;, &amp;quot;COM3&amp;quot;, &amp;quot;COM4&amp;quot;, &amp;quot;COM5&amp;quot;, &amp;quot;COM6&amp;quot;, &amp;quot;COM7&amp;quot;, &amp;quot;COM8&amp;quot;, &amp;quot;COM9&amp;quot;, &amp;quot;LPT1&amp;quot;, &amp;quot;LPT2&amp;quot;, &amp;quot;LPT3&amp;quot;, &amp;quot;LPT4&amp;quot;, &amp;quot;LPT5&amp;quot;, &amp;quot;LPT6&amp;quot;, &amp;quot;LPT7&amp;quot;, &amp;quot;LPT8&amp;quot;, &amp;quot;LPT9&amp;quot;);&lt;br/&gt;
	&lt;br/&gt;
	private String packageName(String pkgName) {&lt;br/&gt;
		pkgName =  pkgName.replaceAll(&amp;quot;\\.([^a-zA-Z])&amp;quot;, &amp;quot;._$1&amp;quot;);&lt;br/&gt;
		if (!Character.isLetter(pkgName.charAt(0) || invalidOnWindows.contains(pkgName))) {&lt;br/&gt;
			pkgName = &amp;quot;_&amp;quot; + pkgName;&lt;br/&gt;
		}&lt;br/&gt;
	}</comment>
            
            <comment author="soilandreyes" created="Thu, 25 Oct 2012 10:43:56 +0200 (CEST)" level="">I&apos;ve made a patch for solving this. Unlike the comment above, the patch also handles funny device names if there is a package prefix, and includes test for the existing behavior and the new behaviour needed to solve this bug.&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/stain/alibaba/compare/ALI-18&quot;&gt;https://github.com/stain/alibaba/compare/ALI-18&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/stain/alibaba/compare/ALI-18.diff&quot;&gt;https://github.com/stain/alibaba/compare/ALI-18.diff&lt;/a&gt; is attached to this bug.</comment>
            
            <comment author="soilandreyes" created="Thu, 25 Oct 2012 12:32:47 +0200 (CEST)" level="">Patch confirmed to fix problem on Windows:&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\alibaba\target&amp;gt;bin\owl-compiler.bat  -j ontology.jar &lt;a href=&quot;http://xmlns.com/foaf/0.1/&quot;&gt;http://xmlns.com/foaf/0.1/&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
C:\Users\stain\src\alibaba\target&amp;gt;unzip -t ontology.jar |grep con&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testing: META-INF/org.openrdf.concepts   OK&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testing: _con/package-info.class   OK&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testing: _con/package-info.java   OK&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testing: _con/Person.class        OK&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testing: _con/Person.java         OK&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
(It should make _con even on Linux/Mac - so the source code using this should not depend on the build)</comment>
            
            <comment author="james" created="Tue, 30 Oct 2012 18:34:58 +0100 (CET)" level="">Resolved in JavaNameResolver at revision 11988.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-16] OWLCompiler: Handling of RDF URIs with mixed case</title>
<link>http://www.openrdf.org/issues/browse/ALI-16</link>

    
        <description>Consider the following extract from our OWL:&lt;br/&gt;
&lt;br/&gt;
&amp;lt;rdf:Description rdf:about=&amp;quot;#UnitSymbol&amp;quot;&amp;gt;&lt;br/&gt;
	&amp;lt;owl:oneOf rdf:nodeID=&amp;quot;Xd2X26cfd7d5Xa3X12e4f66a852Xa3X-346&amp;quot;/&amp;gt;&lt;br/&gt;
	&amp;lt;rdfs:label&amp;gt;UnitSymbol&amp;lt;/rdfs:label&amp;gt;&lt;br/&gt;
	&amp;lt;rdf:type rdf:resource=&amp;quot;&lt;a href=&quot;http://www.w3.org/2002/07/owl#Class&quot;&gt;http://www.w3.org/2002/07/owl#Class&lt;/a&gt;&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:Description&amp;gt;&lt;br/&gt;
&amp;lt;rdf:Description rdf:nodeID=&amp;quot;Xd2X26cfd7d5Xa3X12e4f66a852Xa3X-346&amp;quot;&amp;gt;&lt;br/&gt;
	&amp;lt;rdf:rest rdf:nodeID=&amp;quot;Xd2X26cfd7d5Xa3X12e4f66a852Xa3X-347&amp;quot;/&amp;gt;&lt;br/&gt;
	&amp;lt;rdf:first rdf:resource=&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H/&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H/&lt;/a&gt;&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:Description&amp;gt;&lt;br/&gt;
&amp;lt;rdf:Description rdf:nodeID=&amp;quot;Xd2X26cfd7d5Xa3X12e4f66a852Xa3X-347&amp;quot;&amp;gt;&lt;br/&gt;
	&amp;lt;rdf:rest rdf:resource=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#nil&quot;&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#nil&lt;/a&gt;&amp;quot;/&amp;gt;&lt;br/&gt;
	&amp;lt;rdf:first rdf:resource=&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&lt;/a&gt;&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:Description&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;lt;rdf:Description rdf:about=&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&lt;/a&gt;&amp;quot;&amp;gt;&lt;br/&gt;
	&amp;lt;rdfs:label&amp;gt;H&amp;lt;/rdfs:label&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:Description&amp;gt;&lt;br/&gt;
&amp;lt;rdf:Description rdf:about=&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&lt;/a&gt;&amp;quot;&amp;gt;&lt;br/&gt;
	&amp;lt;rdfs:label&amp;gt;h&amp;lt;/rdfs:label&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:Description&amp;gt;&lt;br/&gt;
&lt;br/&gt;
Using the OWLCompiler to generate Java sources, this generates a Java interface that does not compile (with the Java compiler) - because of duplicate field definitions. According to my understanding, RDF URIs are case-sensitive, so the construct above seems valid to me.&lt;br/&gt;
&lt;br/&gt;
I&apos;ve had a look at the source code, and the problem originates from the method org.openrdf.repository.object.compiler.model.RDFClass#constants(org.openrdf.repository.object.compiler.source.JavaMessageBuilder)&lt;br/&gt;
&lt;br/&gt;
One solution could be to remove the toUpperCase() in the method referenced above, but I do not know if that can have other implications.</description>
    
    
        <environment></environment>
    
        <key id="13280">ALI-16</key>
        <summary>OWLCompiler: Handling of RDF URIs with mixed case</summary>
        <type id="1">Bug</type>
    
        <priority id="1">Blocker</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="egb">Erik Godding Boye</reporter>
        
    

        
        <created>Tue, 13 Mar 2012 11:06:27 +0100 (CET)</created>
    <updated>Wed, 6 Jun 2012 15:23:44 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.0-rc1</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-rc2</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Thu, 22 Mar 2012 16:06:06 +0100 (CET)" level="">Fixed in revision 11670.</comment>
            
            <comment author="egb" created="Mon, 21 May 2012 13:43:06 +0200 (CEST)" level="">Thank you so much for the fix, James.&lt;br/&gt;
I have tested the fix in trunk (2.0-SNAPSHOT), and it solves the immediate problem. &lt;br/&gt;
&lt;br/&gt;
But still, information (contained in the case of the URI) is lost in the generated concept model. Let me explain:&lt;br/&gt;
&lt;br/&gt;
In the ontology (which I am not the author):&lt;br/&gt;
&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&lt;/a&gt; refers to &amp;quot;Inductance in henry&amp;quot;&lt;br/&gt;
&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&lt;/a&gt; refers to &amp;quot;Time in hours&amp;quot;&lt;br/&gt;
&lt;br/&gt;
In the generated Java concept model, with your fix in place, this generates a Java interface with two constants (UNITSYMBOL_H and UNITSYMBOL_H_1). (Actually three constants are generated, but I do not consider the URIS constants.) There is no way to know which constant relates to H/h, except looking at the constant value. When writing functional code around the generated concept model, this gets really messy....&lt;br/&gt;
&lt;br/&gt;
I would prefer that the case in the RDF URI is preserved in the generated concept model - even if it may violate general Java coding conventions. To summarize, I would prefer the following constants being generated:&lt;br/&gt;
&lt;br/&gt;
{code}&lt;br/&gt;
public interface UnitSymbol {&lt;br/&gt;
	public static final URI UnitSymbol_H = new URIImpl(&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.H&lt;/a&gt;&amp;quot;);&lt;br/&gt;
	public static final URI UnitSymbol_h = new URIImpl(&amp;quot;&lt;a href=&quot;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&quot;&gt;http://iec.ch/TC57/2010/CIM-schema-cim15#UnitSymbol.h&lt;/a&gt;&amp;quot;);&lt;br/&gt;
	public static final URI[] URIS = new URI[]{UnitSymbol_H, UnitSymbol_h};&lt;br/&gt;
}&lt;br/&gt;
{code}&lt;br/&gt;
&lt;br/&gt;
Reopen issue?</comment>
            
            <comment author="james" created="Wed, 6 Jun 2012 15:23:44 +0200 (CEST)" level="">Version 2.0-rc3 behaves as described above.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-15] OWLCompiler: Ability to disable the use of NamespacePrefixService</title>
<link>http://www.openrdf.org/issues/browse/ALI-15</link>

    
        <description>I am sitting behind a proxy server. This makes the NamespacePrefixService fail if I do not set the JVM http proxy settings.&lt;br/&gt;
It would be nice if it was possible to set a property on OWLCompiler that disables the use of NamespacePrefixService.</description>
    
    
        <environment></environment>
    
        <key id="13260">ALI-15</key>
        <summary>OWLCompiler: Ability to disable the use of NamespacePrefixService</summary>
        <type id="4">Improvement</type>
    
        <priority id="4">Minor</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="egb">Erik Godding Boye</reporter>
        
    

        
        <created>Fri, 9 Mar 2012 13:01:24 +0100 (CET)</created>
    <updated>Thu, 22 Mar 2012 16:17:50 +0100 (CET)</updated>

    
        
        
            
            
                
                    <version>2.0-rc1</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-rc2</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Thu, 22 Mar 2012 16:17:50 +0100 (CET)" level="">Fixed in revision 11671.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-14] remove and add one statement in one transcation</title>
<link>http://www.openrdf.org/issues/browse/ALI-14</link>

    
        <description>If a statement is removed and added in the same transaction, then this statement is twice in the MemoryStore until the transaction is committed.&lt;br/&gt;
After commit everything is correct.&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Repository myRepository = new OptimisticRepository(new MemoryStore());&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myRepository.initialize();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ValueFactory f = myRepository.getValueFactory();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RepositoryConnection con = myRepository.getConnection();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.setAutoCommit(false);&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Statement s = f.createStatement(f.createURI(&amp;quot;&lt;a href=&quot;http://e.org/people/alice&quot;&gt;http://e.org/people/alice&lt;/a&gt;&amp;quot;), f.createURI(&amp;quot;&lt;a href=&quot;http://e.org/ontology/name&quot;&gt;http://e.org/ontology/name&lt;/a&gt;&amp;quot;), f.createLiteral(&amp;quot;Alice&amp;quot;));&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.add(s);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.commit();&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.remove(s);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.add(s);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;s twice: &amp;quot; + con.getStatements(null, null, null, true).asList());&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.commit();&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&amp;quot;s once: &amp;quot; + con.getStatements(null, null, null, true).asList());</description>
    
    
        <environment>sesame 2.6.3, openJDK 1.6.0_24, 64 Bit, openSuse 12.1</environment>
    
        <key id="13231">ALI-14</key>
        <summary>remove and add one statement in one transcation</summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="2">Won&apos;t Fix</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="lukas">Lukas Klausner</reporter>
        
    

        
        <created>Mon, 5 Mar 2012 18:36:00 +0100 (CET)</created>
    <updated>Thu, 22 Mar 2012 16:20:32 +0100 (CET)</updated>

    
        
        
            
            
                
                    <version>2.0-rc1</version>
                
            
        
    

    
        
        
    

    
        
        
            
            
                
                    <component>optimistic-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Mon, 5 Mar 2012 22:48:55 +0100 (CET)" level="">Is this a big deal for you? Can you provide a real business case?</comment>
            
            <comment author="lukas" created="Tue, 6 Mar 2012 00:11:57 +0100 (CET)" level="">It&apos;s not so important for me.&lt;br/&gt;
I&apos;m working on my thesis, where I&apos;m using Sesame with Optimistic Repository. I need to implement sub transactions. To rollback a sub transaction with a remove operation, the removed statement will be added again.&lt;br/&gt;
So I cannot provide a real business case.&lt;br/&gt;
Some versions of Alibaba before the error was not there.</comment>
            
            <comment author="james" created="Thu, 22 Mar 2012 16:20:32 +0100 (CET)" level="">This behaviour (some triples are duplicated) is within behaivour expectations of a Sesame Repository. AllegroGraph Sesame Repository may also issue duplicate triples in some cases.&lt;br/&gt;
&lt;br/&gt;
Use DISTINCT keyword in SPARQL to avoid duplicates.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-13] Local file loaded ontologies are not recognised as imports for other ontologies</title>
<link>http://www.openrdf.org/issues/browse/ALI-13</link>

    
        <description>If I download all of the ontologies and then try to compile them using a list of the files submitted to org.openrdf.repository.object.compiler.Compiler.main, the org.openrdf.repository.object.compiler.OntologyLoader will still try to fetch the ontologies, as they have been loaded from file: URL&apos;s, and not their http: equivalents.&lt;br/&gt;
&lt;br/&gt;
The bug may be fixed by modifying the following line in OntologyLoader.followImports():&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!model.contains(null, null, null, uri)) {&lt;br/&gt;
&lt;br/&gt;
so that it says:				&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!model.contains(null, null, null, uri) &amp;amp;&amp;amp; !model.contains(uri, RDF.TYPE, OWL.ONTOLOGY)) {&lt;br/&gt;
&lt;br/&gt;
With that modification, the locally loaded ontology, assuming the base URI was set correctly, will be recognised as a copy of the resource, and the URL will not attempt to be fetched.&lt;br/&gt;
&lt;br/&gt;
It would be nice in future if Alibaba supported something like LocationMapper from Jena or OWLOntologyIRIMapper from OWLAPI, but this change will fix my immediate issues. I am trying to update the SCUFL2 library that was previously using Elmo to use Alibaba.&lt;br/&gt;
&lt;br/&gt;
My test code is:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;String&amp;gt; argsList = new ArrayList&amp;lt;String&amp;gt;();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;-j&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;target/scufl2-ontology.jar&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;src/test/resources/skos-owl1-dl.rdf&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;src/test/resources/dcterms_od.rdf&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;src/test/resources/dcam.rdf&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsList.add(&amp;quot;src/test/resources/scufl2.rdf&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// run the compiler using the arguments given above&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;org.openrdf.repository.object.compiler.Compiler.main(argsList.toArray(new String[argsList.size()]));&lt;br/&gt;
&lt;br/&gt;
Right now it runs into issues trying to interpret one of the URLs as an RDF/XML document, which is another bug, but one that may not be as easy to fix as this one.</description>
    
    
        <environment></environment>
    
        <key id="13110">ALI-13</key>
        <summary>Local file loaded ontologies are not recognised as imports for other ontologies</summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="pansell">Peter Ansell</reporter>
        
    

        
        <created>Tue, 7 Feb 2012 05:36:52 +0100 (CET)</created>
    <updated>Wed, 29 Feb 2012 21:11:40 +0100 (CET)</updated>

    
        
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-rc1</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Wed, 29 Feb 2012 21:11:40 +0100 (CET)" level="">Fixed as suggested</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-12] Object repository compiler generates concepts with non-symmetric accessors for collection properties</title>
<link>http://www.openrdf.org/issues/browse/ALI-12</link>

    
        <description>The object repository compiler generates getter/setter with different generics for a collection property. The setter is generated with a generics wildcard, but the getter is not. I think the correct behavior should be to use a generics wildcard in both accessors.&lt;br/&gt;
&lt;br/&gt;
An example:&lt;br/&gt;
public interface NameType {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&amp;lt;Name&amp;gt; getNameType_Names();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;void setNameType_Names(Set&amp;lt;? extends Name&amp;gt; NameType_Names);&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
I think this should be:&lt;br/&gt;
public interface NameType {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&amp;lt;? extends Name&amp;gt; getNameType_Names();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;void setNameType_Names(Set&amp;lt;? extends Name&amp;gt; NameType_Names);&lt;br/&gt;
}</description>
    
    
        <environment></environment>
    
        <key id="12530">ALI-12</key>
        <summary>Object repository compiler generates concepts with non-symmetric accessors for collection properties</summary>
        <type id="1">Bug</type>
    
        <priority id="4">Minor</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="2">Won&apos;t Fix</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="egb">Erik Godding Boye</reporter>
        
    

        
        <created>Fri, 26 Aug 2011 10:51:34 +0200 (CEST)</created>
    <updated>Fri, 26 Aug 2011 15:07:02 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.0-beta11</version>
                
            
        
    

    
        
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Fri, 26 Aug 2011 15:07:02 +0200 (CEST)" level="">The getter return type does not use a bounded parameter to allow the returned set to be modified. Unfortunately in Java, you cannot use the add method of a collection with a bounded parameter. By returning a set with an explicit parameter the caller can add new items without casting the results. This code: obj.getNameType_Names().add(aName), would only be possible if the getter returned a set with an explicit parameter.&lt;br/&gt;
&lt;br/&gt;
In the setter, a bounded parameter (not explicit parameter) is declared to allow sets of subclass instances to be passed to the setter. If an explicit parameter was used in the setter Java would not allow a set to be passed if it was declared with a subclass parameter.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-11] Compilation of Java-Classes fails if the ontology specifies a property which is inferred by a subclass and restricted </title>
<link>http://www.openrdf.org/issues/browse/ALI-11</link>

    
        <description>The Problem is easy to understand with the following example. The Code of the OWL-file is attached.&lt;br/&gt;
&lt;br/&gt;
I think, the problem is in the restriction of the property for AlevelFormation Entity. In my example the entity Formation  is connected via hasPart to other Formation or VehicleThing. The ALevelFormation, which is a Formation restricts the hasPart property in that way, that only Object of the Type BLevelFormation can be addressed.  The compiler founds a Set BLevelFormation for getHasPart in the generated interface ALevelFormation because of the depth of inheritance ALevelFormation should specify V &lt;br/&gt;
&lt;br/&gt;
/var/folders/l5/4z_54rs55dx51dslmss40qpm0000gn/T/OWLCompiler1701491496037452730/testOnto/ALevelFormation.java:9: getTestOntoHasPart() in testOnto.ALevelFormation clashes with getTestOntoHasPart() in testOnto.Formation; attempting to use incompatible return type&lt;br/&gt;
found   : java.util.Set&amp;lt;testOnto.BLevelFormation&amp;gt;&lt;br/&gt;
required: java.util.Set&amp;lt;testOnto.FormationOrVehicleThing&amp;gt;&lt;br/&gt;
	Set&amp;lt;BLevelFormation&amp;gt; getTestOntoHasPart();&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Here is an Example file:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;lt;!DOCTYPE rdf:RDF [&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY owl &amp;quot;&lt;a href=&quot;http://www.w3.org/2002/07/owl#&quot;&gt;http://www.w3.org/2002/07/owl#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY xsd &amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema#&quot;&gt;http://www.w3.org/2001/XMLSchema#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY owl2xml &amp;quot;&lt;a href=&quot;http://www.w3.org/2006/12/owl2-xml#&quot;&gt;http://www.w3.org/2006/12/owl2-xml#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY rdfs &amp;quot;&lt;a href=&quot;http://www.w3.org/2000/01/rdf-schema#&quot;&gt;http://www.w3.org/2000/01/rdf-schema#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY rdf &amp;quot;&lt;a href=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!ENTITY testOnto &amp;quot;&lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&lt;/a&gt;&amp;quot; &amp;gt;&lt;br/&gt;
]&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;&lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xml:base=&amp;quot;&lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:rdfs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2000/01/rdf-schema#&quot;&gt;http://www.w3.org/2000/01/rdf-schema#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:owl2xml=&amp;quot;&lt;a href=&quot;http://www.w3.org/2006/12/owl2-xml#&quot;&gt;http://www.w3.org/2006/12/owl2-xml#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:owl=&amp;quot;&lt;a href=&quot;http://www.w3.org/2002/07/owl#&quot;&gt;http://www.w3.org/2002/07/owl#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema#&quot;&gt;http://www.w3.org/2001/XMLSchema#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:rdf=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&lt;/a&gt;&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:testOnto=&amp;quot;&lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#&lt;/a&gt;&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Ontology rdf:about=&amp;quot;&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:comment&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;Just a test ontology&amp;lt;/rdfs:comment&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Ontology&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///////////////////////////////////////////////////////////////////////////////////////&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Object Properties&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///////////////////////////////////////////////////////////////////////////////////////&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#hasPart&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#hasPart&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:ObjectProperty rdf:about=&amp;quot;#hasPart&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:domain rdf:resource=&amp;quot;#Formation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:range&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:unionOf rdf:parseType=&amp;quot;Collection&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdf:Description rdf:about=&amp;quot;#Formation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdf:Description rdf:about=&amp;quot;#VehicleThing&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:unionOf&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/rdfs:range&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:ObjectProperty&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///////////////////////////////////////////////////////////////////////////////////////&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Classes&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///////////////////////////////////////////////////////////////////////////////////////&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#ALevelFormation&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#ALevelFormation&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#ALevelFormation&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;#FBFormation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Restriction&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:onProperty rdf:resource=&amp;quot;#hasPart&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:allValuesFrom rdf:resource=&amp;quot;#BLevelFormation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Restriction&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/rdfs:subClassOf&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:disjointWith rdf:resource=&amp;quot;#BLevelFormation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#BLevelFormation&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#BLevelFormation&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#BLevelFormation&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;#FBFormation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#FBFormation&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#FBFormation&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#FBFormation&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;#Formation&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#Formation&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#Formation&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#Formation&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;#SARThing&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#SARThing&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#SARThing&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#SARThing&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- &lt;a href=&quot;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#VehicleThing&quot;&gt;http://www.uni-paderborn.de/ontologies/2011/7/testOnto.owl#VehicleThing&lt;/a&gt; --&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;owl:Class rdf:about=&amp;quot;#VehicleThing&amp;quot;&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;#SARThing&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/owl:Class&amp;gt;&lt;br/&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;lt;!-- Generated by the OWL API (version 2.2.1.1138) &lt;a href=&quot;http://owlapi.sourceforge.net&quot;&gt;http://owlapi.sourceforge.net&lt;/a&gt; --&amp;gt;&lt;br/&gt;
</description>
    
    
        <environment>mac os / windows 7</environment>
    
        <key id="12440">ALI-11</key>
        <summary>Compilation of Java-Classes fails if the ontology specifies a property which is inferred by a subclass and restricted </summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="moisun">Matthias Moi</reporter>
        
    

        
        <created>Fri, 5 Aug 2011 14:16:46 +0200 (CEST)</created>
    <updated>Wed, 10 Aug 2011 20:21:06 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.0-beta10</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta12</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Wed, 10 Aug 2011 20:21:06 +0200 (CEST)" level="">Property restrictions will be ignored in 2.0-beta12 unless the property is a owl:FunctionalProperty as of revision 11162.&lt;br/&gt;
&lt;br/&gt;
In the example provided the property #hasPart will always be compiled with Set&amp;lt;testOnto.FormationOrVehicleThing&amp;gt; regardless of what owl:Restrictions are used.&lt;br/&gt;
&lt;br/&gt;
Thanks for reporting this!</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-10] create and remove a Statement in the same transaction does not work</title>
<link>http://www.openrdf.org/issues/browse/ALI-10</link>

    
        <description>If I try to remove a Statement which I created in the same transaction, then the Statement is still there.&lt;br/&gt;
I tried it with MemoryStore and NativeStore.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
		Repository myRepository = new OptimisticRepository(new MemoryStore());&lt;br/&gt;
//		Repository myRepository = new OptimisticRepository(new NativeStore(new File(&amp;quot;store&amp;quot;)));&lt;br/&gt;
		myRepository.initialize();&lt;br/&gt;
		ValueFactory f = myRepository.getValueFactory();&lt;br/&gt;
		RepositoryConnection con = myRepository.getConnection();&lt;br/&gt;
		con.setAutoCommit(false);&lt;br/&gt;
		&lt;br/&gt;
		Statement s = f.createStatement(f.createURI(&amp;quot;&lt;a href=&quot;http://example.org/people/alice&quot;&gt;http://example.org/people/alice&lt;/a&gt;&amp;quot;), f.createURI(&amp;quot;&lt;a href=&quot;http://example.org/ontology/name&quot;&gt;http://example.org/ontology/name&lt;/a&gt;&amp;quot;), f.createLiteral(&amp;quot;Alice&amp;quot;));&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.add(s);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.remove(s);&lt;br/&gt;
&lt;br/&gt;
		RepositoryResult&amp;lt;Statement&amp;gt; stats = con.getStatements(null, null, null, true);&lt;br/&gt;
		System.out.println(&amp;quot;should be empty: &amp;quot; + stats.asList());&lt;br/&gt;
				                &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.close();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myRepository.shutDown();</description>
    
    
        <environment>ubuntu 11.04, 64 bit</environment>
    
        <key id="12170">ALI-10</key>
        <summary>create and remove a Statement in the same transaction does not work</summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="lukas">Lukas Klausner</reporter>
        
    

        
        <created>Mon, 16 May 2011 23:01:35 +0200 (CEST)</created>
    <updated>Tue, 17 May 2011 15:15:35 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.0-beta7</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta9</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>optimistic-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="lukas" created="Mon, 16 May 2011 23:23:03 +0200 (CEST)" level="">I tested it now with beta9 and the bug seems to be fixed with svn-revision 11002.&lt;br/&gt;
James Leigh thanks for the good work.</comment>
            
            <comment author="james" created="Tue, 17 May 2011 15:15:14 +0200 (CEST)" level="">Thanks for the confirmation</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-9] Be able to use classes as argument for @sparql annotated methods</title>
<link>http://www.openrdf.org/issues/browse/ALI-9</link>

    
        <description>It would be nice to be able to write something like:&lt;br/&gt;
&lt;br/&gt;
@sparql(&amp;quot;SELECT ?entity WHERE {?this &amp;lt;a:ref&amp;gt; ?entity . ?entity a ?type}&amp;quot;) &amp;lt;T extends BaseType&amp;gt; Set&amp;lt;T&amp;gt; getReferencedEntities(@name(&amp;quot;type&amp;quot;) Class&amp;lt;T&amp;gt; clazz);&lt;br/&gt;
&lt;br/&gt;
Where the query generator would deduce the possible type(s) from the @iri annotation(s) of the clazz.&lt;br/&gt;
&lt;br/&gt;
I currently write such queries as (with the disadvantages that I have to resolve @iri annotations on a class myself, and that I have to caset the result):&lt;br/&gt;
@sparql(&amp;quot;SELECT ?entity WHERE {?this &amp;lt;a:ref&amp;gt; ?entity . ?entity a ?type}&amp;quot;)  Set&amp;lt;? extends BaseType&amp;gt; getReferencedEntities(@name(&amp;quot;type&amp;quot;) String type);&lt;br/&gt;
</description>
    
    
        <environment></environment>
    
        <key id="12010">ALI-9</key>
        <summary>Be able to use classes as argument for @sparql annotated methods</summary>
        <type id="2">New Feature</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="pointbreak">Pointbreak</reporter>
        
    

        
        <created>Fri, 11 Mar 2011 16:57:02 +0100 (CET)</created>
    <updated>Fri, 11 Mar 2011 17:34:35 +0100 (CET)</updated>

    
        
        
            
            
                
                    <version>2.0-beta3</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta7</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Fri, 11 Mar 2011 17:34:35 +0100 (CET)" level="">Implemented in revision 10860. Thanks for the suggestion. Scheduled to be released in three weeks.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-6] Refactoring of OWLCompiler to facilitate creating a Maven plugin to compile OWL ontologies</title>
<link>http://www.openrdf.org/issues/browse/ALI-6</link>

    
        <description>I have created a simple Maven plugin that compiles OWL ontologies using OWLCompiler. The plugin is working, and is usable, but the current design of OWLCompiler is all-or-nothing, which doesn&apos;t allow me to create a proper Maven plugin. I will try to explain:&lt;br/&gt;
&lt;br/&gt;
Currently OWLCompiler has only one functional public method: compile; that performs everything:&lt;br/&gt;
- Generating Java sources&lt;br/&gt;
- Generating resources (that ends up in the META-INF folder of the resulting jar-file)&lt;br/&gt;
- Compiling the generated Java sources&lt;br/&gt;
- Creating the jar-file containing generated Java sources, compiled Java classes, generated resources and the original OWL-file(s)&lt;br/&gt;
&lt;br/&gt;
My Maven plugin currently contains only one goal (compile), that is typically bound to the package phase of the Maven default lifecycle (&lt;a href=&quot;http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html&quot;&gt;http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html&lt;/a&gt;). This has numerous drawbacks, i.e.:&lt;br/&gt;
- IDE integration; an OWL module is unable to co-exist in the same project as a Java module with compile-time dependency to the generated OWL Java classes/sources. Any proper Maven to Java IDE integration will typically run the Maven default lifecycle up to the generate-sources/process-resources phase prior to module/project import. This allows for any generated source to be generated, and the generated sources to be added to the source path of the project/module.&lt;br/&gt;
- Maven artifact conformance; to include pom.xml and pom.properties in the jar-file (as any Maven built module should have) of my OWL module, I have to re-pack the jar-file after OWL-compile.&lt;br/&gt;
- &amp;quot;Re-inventing the wheel&amp;quot;; in Maven you have plugins for common tasks like compiling Java Source (maven-compiler-plugin) and for creating jar-files (maven-jar-plugin). These may be configured in Maven for a dedicated purpose, and I want to use these plugins to compile the generated sources and to create the jar-file.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
While keeping the compile-method for backwards-compatibility, and for those not using Maven, I think it should be possible to make steps in the compile process publicly available (outside the OWLCompiler class). Referring to the Maven default lifecycle, I would like to create (at least) two goals in my plugin:&lt;br/&gt;
1) &amp;quot;generate-sources&amp;quot; (typically bound to the generate-sources phase); Generate the Java source code for the OWL ontologies. I would like to set the target directory for the generated sources.&lt;br/&gt;
2) &amp;quot;generate-resources&amp;quot; (typically bound to the generate-resources phase); Generate the resources (files) for the OWL ontologies (that will end up in the META-INF folder of the resulting jar-file). I would like to set the target directory for the generated resources.&lt;br/&gt;
&lt;br/&gt;
I have looked into the source code, and I think the changes that will have to be done is quite simple, but I would prefer that someone with depth knowledge of the codebase reviews my suggestion before I eventually move forward and suggest a patch.&lt;br/&gt;
&lt;br/&gt;
I would also be happy to share the Maven plugin with the community. Suggestions on how to do this is appreciated.</description>
    
    
        <environment></environment>
    
        <key id="11780">ALI-6</key>
        <summary>Refactoring of OWLCompiler to facilitate creating a Maven plugin to compile OWL ontologies</summary>
        <type id="4">Improvement</type>
    
        <priority id="4">Minor</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="egb">Erik Godding Boye</reporter>
        
    

        
        <created>Thu, 16 Sep 2010 11:21:07 +0200 (CEST)</created>
    <updated>Sun, 10 Oct 2010 02:18:09 +0200 (CEST)</updated>

    
        
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta4</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Sun, 10 Oct 2010 02:18:09 +0200 (CEST)" level="">The API of OWLCompiler in revision 10544 will be maintained for the rest of the beta cycle. However, in the RC release cycle the concepts and behaviours maybe compiled together and this would change the API of OWLCompiler. A maven plugin for OWLCompiler would be a welcome addition to the AliBaba project.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-2] ObjectCompileException when a namespace prefix contains a period</title>
<link>http://www.openrdf.org/issues/browse/ALI-2</link>

    
        <description>The FOAF ontology (&lt;a href=&quot;http://xmlns.com/foaf/spec/20100101.rdf&quot;&gt;http://xmlns.com/foaf/spec/20100101.rdf&lt;/a&gt;) compiles as expected but the Compiler throws the following exception when a period &apos;.&apos; is inserted in a namespace prefix, for instance by replacing the &amp;quot;foaf&amp;quot; prefix with &amp;quot;fo.af&amp;quot;.&lt;br/&gt;
&lt;br/&gt;
Exception in thread &amp;quot;main&amp;quot; org.openrdf.repository.object.exceptions.ObjectCompileException: Could not compile&lt;br/&gt;
	at org.openrdf.repository.object.compiler.source.JavaCompiler.compile(JavaCompiler.java:74)&lt;br/&gt;
	at org.openrdf.repository.object.compiler.OWLCompiler.compileConcepts(OWLCompiler.java:473)&lt;br/&gt;
	at org.openrdf.repository.object.compiler.OWLCompiler.compile(OWLCompiler.java:301)&lt;br/&gt;
	at org.openrdf.repository.object.compiler.Compiler.main(Compiler.java:151)</description>
    
    
        <environment></environment>
    
        <key id="11661">ALI-2</key>
        <summary>ObjectCompileException when a namespace prefix contains a period</summary>
        <type id="1">Bug</type>
    
        <priority id="4">Minor</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="alexandre.bouffard">Alexandre Bouffard</reporter>
        
    

        
        <created>Fri, 28 May 2010 22:03:26 +0200 (CEST)</created>
    <updated>Sat, 12 Jun 2010 21:35:57 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.0-alpha4</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta1</fixVersion>
                
            
        
    

    
        
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Sat, 12 Jun 2010 21:35:57 +0200 (CEST)" level="">Check for non-alphanumeric characters in the prefix as of revision 10379.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
<item>

    







<title>[ALI-1] NullPointerException when creating ObjectRepository on non-persistent MemoryStore</title>
<link>http://www.openrdf.org/issues/browse/ALI-1</link>

    
        <description>The following Java code:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemoryStore sail = new MemoryStore();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SailRepository repo = new SailRepository(new ForwardChainingRDFSInferencer(sail));&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObjectRepositoryFactory factory = new ObjectRepositoryFactory();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObjectRepository objectRepo = factory.createRepository(repo);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objectRepo.initialize();&lt;br/&gt;
&lt;br/&gt;
Yields the following exception: java.lang.NullPointerException&lt;br/&gt;
	at org.openrdf.repository.object.ObjectRepository.incrementRevision(ObjectRepository.java:500)&lt;br/&gt;
	at org.openrdf.repository.object.ObjectRepository.compileSchema(ObjectRepository.java:427)&lt;br/&gt;
	at org.openrdf.repository.object.ObjectRepository.compile(ObjectRepository.java:361)&lt;br/&gt;
	at org.openrdf.repository.object.ObjectRepository.init(ObjectRepository.java:248)&lt;br/&gt;
	at org.openrdf.repository.object.ObjectRepository.initialize(ObjectRepository.java:209)&lt;br/&gt;
	....&lt;br/&gt;
</description>
    
    
        <environment></environment>
    
        <key id="11620">ALI-1</key>
        <summary>NullPointerException when creating ObjectRepository on non-persistent MemoryStore</summary>
        <type id="1">Bug</type>
    
        <priority id="3">Major</priority>
    
        <status id="5">Resolved</status>
        
        <resolution id="1">Fixed</resolution>
        
    
        
        <assignee username="james">James Leigh</assignee>
        
    

    
        
        <reporter username="pointbreak">Pointbreak</reporter>
        
    

        
        <created>Mon, 29 Mar 2010 12:09:33 +0200 (CEST)</created>
    <updated>Sat, 3 Apr 2010 17:51:57 +0200 (CEST)</updated>

    
        
        
    

    
        
        
            
            
                
                    <fixVersion>2.0-beta1</fixVersion>
                
            
        
    

    
        
        
            
            
                
                    <component>object-repository</component>
                
            
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="james" created="Sat, 3 Apr 2010 17:51:57 +0200 (CEST)" level="">Will now use a tmp directory if there is no local dataDir in revision 10242.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
</channel>
</rss>  

