2013-10-15 79 views
0

我寫在Java中的DL查詢分析器。當我給出一個類名稱作爲輸入時,該代碼給出了正確的輸出,但當我給出諸如「hasColor value Red」或「hasSugar value Dry」之類的查詢時,它將不返回任何結果。我正在使用OWLAPI。DL查詢分析器返回空與特定查詢

+1

你可能會考慮提出新問題之前回應澄清一些你前面的問題請求(但沒有要求)從......除此之外,我希望那是因爲沒有人有顏色紅,或有糖幹。除非我們能夠看到您的數據,否則我們無法分辨。我們可以看到你的數據嗎?畢竟,「關於您編寫​​的代碼問題的問題必須在問題本身中描述具體問題 - 幷包含有效代碼以再現問題。」 –

+0

上述問題的可能來源太多,無法給出有意義的答案。可能性包括:'hasColor'或'Red'沒有在本體中聲明,或者沒有這些類的實例。您需要提供您編寫的用於消除歧義的一些代碼。 – Ignazio

回答

1

假設你正在使用this code爲例。

看來你使用的是默認結構推理。您應該啓用更復雜的推理器,例如HermiT。通過

OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();

它應該工作

OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();

首先,下載和jar添加到類路徑,然後更換線178!看看this answer有關此解決方案的詳細信息,如@Joshua在評論中提到。

+0

@DipinAzhikodan沒有提及任何特定的源代碼。你在哪裏看到關於「178線」的任何內容?它可能是基於[這裏]引用的代碼(http://stackoverflow.com/a/14356151/1281433)? –

+0

噢,抱歉,基於我認爲OP面臨這個問題(看過很多次,當你發現正確的 - 因此,我編輯的答案)的症狀。 – loopasam

+0

在這種情況下,這是一個合理的假設。由於在OWLAPI郵件列表中彈出的示例中留下了StructuralReasoner,所以我看到了類似的問題 - 雖然沒有設法找到一個鏈接。我會嘗試向OWLAPI wiki添加一個示例並將其鏈接。 – Ignazio