2015-05-02 141 views
0

回答後編輯:這是一個主要由於IDE問題而引起的問題。如果你不熟悉eclipse或java編程,同時也學習OWL,這更有用。OWL API入門

我對OWL來說一般都很陌生,並且需要熟悉我正在使用的項目的OWL API。我的Java有點生疏,所以也許我的問題在那裏,但我不這麼認爲。

問題:我一直在玩OWL API幾天,並且無法找到任何必要的兼容版本庫來做任何事情。這是一個非常基本的操作的一些示例代碼,我試圖執行:

package converter; 

import org.semanticweb.owlapi.apibinding.OWLManager; 
import org.semanticweb.owlapi.model.OWLOntologyManager; 

public class OWL_Converter { 

    OWLOntologyManager m = OWLManager.createOWLOntologyManager(); 
} 

當我嘗試建立在Eclipse這會因我到底11362錯誤。前50個這樣的錯誤說「AbstractAnnotatedAxiomRoundTrippingTestCase無法解析爲類型」。請有人幫我弄清楚我做錯了什麼。在過去的三天裏,我一直在用OWL和OWL API進行非常緩慢的進步,現在我碰壁了,看起來無論我導入多少OWL api類,我仍然沒有解決類型問題類等間接引用...

堆棧跟蹤顯示如下:

Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException 
    at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:189) 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:112) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:105) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:235) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:208) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:221) 
    at org.semanticweb.owlapi.OWLAPIServiceLoaderModule.<clinit>(OWLAPIServiceLoaderModule.java:50) 
    at org.semanticweb.owlapi.apibinding.OWLManager.<clinit>(OWLManager.java:42) 
    at owl_converter.Converter.main(Converter.java:115) 
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 9 more 
+1

你究竟在做什麼?過去3年來我一直在使用OWL api,並認爲它有最好的入門指南。另外,你寫的代碼完全沒問題。請添加堆棧跟蹤,以便我們可以看到什麼是錯誤的。 – Artemis

+0

@Artemis,感謝您的回覆。很高興聽到有人對貓頭鷹進行了更順利的流程 - 這讓我希望我也可以。對於我自己,除了我看到的這些bizzare錯誤之外,我也遇到了有關文檔的問題。在我篩選出的每個示例中,似乎至少有一個函數自創建以來已被棄用,然後我似乎無法找到有關它被替換的信息。當我剛剛開始時,它變得有點過分了:/另外,編輯原始帖子以包含堆棧跟蹤。謝謝! – Dude

+0

您需要添加apache記錄器才能正常工作。您缺少slf4j日誌api。添加它,然後重新發佈下一個問題。通常這行代碼是完全正確的。 – Artemis

回答

0

你編譯OWL API源? 你可以跳過具有所有依賴手工填寫在兩個方面:

  • 導入現有的Eclipse中的Maven項目(這將採用POM文件所確定的依賴)

  • 看在classpath文件antbuild文件夾並確保你的.classpath文件匹配。

您可能需要做一個maven測試版本來確保庫被下載。

+0

謝謝Ignazio - 我想我現在已經成立了Maven,但現在我正在嘗試更好地理解這個Ant Build業務。另外,我無法從maven更新中找到antbuild文件夾。我更新了原始帖子,以包含迄今爲止的進度。有什麼建議麼? – Dude

+0

如果你已經通過maven設置了依賴關係,你可以忽略我提到的類路徑文件 - 這兩個是獲得相同結果的替代方法。你仍然得到你報告的堆棧跟蹤? – Ignazio

+0

Ignazio,原來Maven構建做到了!謝謝!我用我的兩個最終「建立」相關問題更新了我的原始帖子。再次感謝您的幫助! – Dude