2016-02-13 91 views
0

我們正試圖通過添加一個新的操作符來擴展jena ARQ。然而,現在我們不想從一開始就這樣做,即從查詢分析到查詢執行的所有步驟。我們正在考慮手動重寫執行計劃,然後讓ARQ執行重寫的計劃。我在網上做了一些搜索,但是,我找不到手動編輯執行計劃的任何信息。我想知道是否有方法將計劃寫入文件並手動編輯文件,然後讓ARQ從磁盤讀取文件並執行它。這甚至有可能嗎?任何人都可以給我一個關於如何開始這個問題的提示嗎?Jena ARQ查詢執行擴展

+0

這對StackOverflow來說相當模糊。請使它更具體,例如運營商是什麼?你有什麼嘗試? – AndyS

+0

如果運營商是一個改進執行的運營商,那麼在OpExt中有一個擴展點。如果操作符是不能寫入標準SPARQL的東西,那麼您也可以將它添加到那裏。但是,只需正確添加運算符,然後修改OpExecutor可能會更容易。這樣,您可以編寫SPARQL代數並使用SSE函數讀取它,並執行查看QueryExecUtils。這些是內部類,你應該檢查代碼。 https://jena.apache.org/documentation/query/extension.html – AndyS

+0

非常感謝您的建議,AndyS!是的,我們要添加的操作符不能寫入std SPARQL中。據我所知,查詢引擎會爲給定的代數表達式生成一個執行計劃並執行它。因此,通過添加新的操作符並修改OpExecutor,我們是否需要觸摸Plan類? – sgao

回答

1

一個起點是用SSE.parseOp來閱讀和編寫代數,並用QueryExecUtils執行。

OpExecutor是執行SPARQL代數的機制,並且如果添加新的Op類型,那就是添加執行的位置。

+0

非常感謝。這有很大幫助。 – sgao