日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shader weaver_具有自定义汇编程序,Weaver和运行时的可插拔知识

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shader weaver_具有自定义汇编程序,Weaver和运行时的可插拔知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shader weaver

作為貝葉斯工作的一部分,我對Kie進行了很多重構,使其具有清晰的擴展點。 我想確保可以完成貝葉斯系統的所有工作部件,而無需在現有內核中添加任何代碼。

因此,現在每種知識類型都可以擁有自己的包,匯編器,編織器和運行時。 知識不再直接添加到KiePackage中,而是添加到該域的封裝知識包中,然后再添加到KiePackage中。 解析和組裝知識定義時使用匯編器階段。 編織階段是將這些知識定義編織到現有的KieBase中。 最后,運行時封裝并為知識提供運行時。

drools-beliefs包含貝葉斯積分和了解其工作原理的良好起點: https : //github.com/droolsjbpm/drools/tree/beliefs/drools-beliefs/

為此,您需要一個META-INF / kie.conf文件,并將其發現并使用: https : //github.com/droolsjbpm/drools/blob/beliefs/drools-beliefs/src/main/resources/ META-INF / kie.conf

該文件使用MVEL語法并指定一項或多項服務:

[ 'assemblers' : [ new org.drools.beliefs.bayes.assembler.BayesAssemblerService() ], 'weavers' : [ new org.drools.beliefs.bayes.weaver.BayesWeaverService() ], 'runtimes' : [ new org.drools.beliefs.bayes.runtime.BayesRuntimeService() ] ]

Github鏈接到軟件包和服務實現:

貝葉斯包
組裝服務
韋弗服務 運行時服務

這是一個快速的單元測試,顯示了端到端的工作,請注意如何查找和訪問運行時。 它在測試中使用的是舊版api,但也可以與聲明性kmodule.xml一起使用。 仍然是硬編碼的唯一位是ResourceType.Bayes。 由于ResourceTypes是一個枚舉。 我們可能會將其重構為標準類,以便對其進行硬編碼。

查找運行時的代碼:

StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl) kbase.newStatefulKnowledgeSession(); BayesRuntime bayesRuntime = ksession.getKieRuntime(BayesRuntime.class);

單元測試:

KnowledgeBuilder kbuilder = new KnowledgeBuilderImpl(); kbuilder.add( ResourceFactory.newClassPathResource("Garden.xmlbif", AssemblerTest.class), ResourceType.BAYES );KnowledgeBase kbase = getKnowledgeBase(); kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl) kbase.newStatefulKnowledgeSession();BayesRuntime bayesRuntime = ksession.getKieRuntime(BayesRuntime.class); BayesInstance instance = bayesRuntime.getInstance( Garden.class ); assertNotNull( instance );

jBPM已經從內核和編譯器中重構出來,盡管它為此使用了自己的接口。 我們計劃將現有的jBPM方式移植到此,實際上所有Drools的東西最終也將以這種方式完成。 這將創建一個干凈的KIE核心,并將規則,進程,貝葉斯或任何其他用戶知識類型的編譯器全部添加為插件。

社區人士也已經在開發一種新的類型聲明系統,該系統將利用這些擴展。 這是這種新型系統的示例: https : //github.com/sotty/metaprocessor/blob/master/deklare/src/test/resources/test1.ktd

翻譯自: https://www.javacodegeeks.com/2014/09/pluggable-knowledge-with-custom-assemblers-weavers-and-runtimes.html

shader weaver

總結

以上是生活随笔為你收集整理的shader weaver_具有自定义汇编程序,Weaver和运行时的可插拔知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。