2014-01-20 56 views
3

我有一個名爲hasContent的數據屬性的OWL類Verse。屬性的範圍是字符串。使用DL查詢,例如詩歌和hasContent「詩句的完整文本」,我可以找到包含指定文本的詩句。我現在想要找到包含某個詞的所有經文的實例。可以在Protege OWL查詢中使用正則表達式嗎?

可以在Protege OWL查詢中使用正則表達式嗎?有沒有例子?或者我需要使用更復雜的查詢語言SPARQL?

回答

0

SPARQL是RDF的查詢語言,這是有原因的。如果使用普通正則表達式(使用SPARQL),則無法定義目標(實例,類,屬性等),也不會利用使用本體的好處。正則表達式適用於純文本,但本體不是純文本,您不應該如此處理。 我強烈建議使用SPARQL,在涉及到restricting string values時,已經包含正則表達式。

另一個解決方案(我不會推薦它)是將目標本體導出爲RDF/XML文檔,並對其應用正則表達式搜索,就好像它是一個簡單的文檔。

希望我幫了忙!

+0

要使用SPARQL查詢OWL本體,您必須知道OWL如何在RDF中進行編碼,並且可能會有一些變化。能夠使用Protégé中提供的DL查詢或使用OWL特定的API(例如OWLAPI)真的非常有用。正如[loopasam的答案](http://stackoverflow.com/a/21231025/1281433)指出的那樣,xsd方面可以使用模式構造,因此可以在不需要使用SPARQL的情況下進行正則表達式查詢。 –

2

您可以直接在OWL曼徹斯特語法中使用XSD facet(您在Protege中使用的語法)。通過方面,您可以通過pattern構造實現一些正則表達式,您可以使用正則表達式完成一些操作。實現是推理特定的,有些可能有時有有時無法正常工作: -/ 秒的 一些鏈接,瞭解更多關於它:

相關問題