我對SPARQL,OWL和Jena很新,所以請原諒我是否問完全愚蠢的問題。自從幾天以來,我遇到了一個讓我瘋狂的問題。我使用下面的字符串作爲一個耶拿QueryFactory.create(queryString)
查詢,SPARQL - 找到本體需要什麼?
queryString = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"+
"PREFIX ho: <http://www.flatlandfarm.de/fhtw/ontologies/2010/5/22/helloOwl.owl#>" +
"SELECT ?name ?person ?test ?group "+
"WHERE { ?person foaf:name ?name ; "+
" a ho:GoodPerson ; "+
" ho:isMemberOf ?group ; "+
"}";
直到今天早上,它的工作,只要我只要求從FOAF命名空間屬性。只要我從我自己的命名空間請求屬性,我總是得到空的結果。雖然我在這裏發佈這個問題,並做了一些最終測試,以便能夠儘可能準確地發佈它,但它突然發揮作用。因此,我不知道究竟要問什麼,我在發佈之前刪除了我的問題。幾個小時後,我使用Protege的Pellet插件創建並導出推斷的模型。我把它叫做helloOwlInferred.owl,並將它上傳到我的服務器上helloWl.owl所在的目錄中。我調整了我的方法來加載推斷的本體,並更改了上面的查詢,以便前綴ho:也被分配給推斷的本體。立刻,沒有任何工作了。確切地說,它不再是什麼工作,但它是我一直到今天早上與我的原始查詢相同的症狀。我的前綴不再工作。我做了一個簡單的測試:將所有helloWorldInferred.owl文件(我的服務器上的前綴和我加載的本地副本)重命名爲helloWorld.owl。奇怪的是,修復了一切。
將其重命名爲helloWorldInferred.owl再次打破了一切。等等。那裏發生了什麼?我是否需要等待幾周,直到我的本體被「註冊爲有效前綴」?
非常感謝。你的回答讓我走上了正軌。 – Tom 2010-07-02 08:41:51