Jena 本體推理
一,使用Jena對OWL本體進行查詢推理
使用sparql對本體進行查詢
1)InfModel是對常規Model的擴充套件,支援任何相關的推理能力
2)QueryExecution 執行sparql查詢
3)ResultSetFormatter 獲取查詢結果集
4)例項中使用了本體檔案Experts.owl
二,下面是一個簡單的例子:
- publicclass ReasonerImpl implements IReasoner {
- private InfModel inf = null;
-
/**
- * 獲取一個推理介面
- * @param path
- * @return
- * @throws RulesetNotFoundException
- */
- private GenericRuleReasoner getReasoner(String path) throws RulesetNotFoundException {
- List<Rule> rules = Rule.rulesFromURL(path); //"file:./family/family.rules"
-
GenericRuleReasoner reasoner = new
- reasoner.setOWLTranslation(true);
- reasoner.setDerivationLogging(true);
- reasoner.setTransitiveClosureCaching(true);
- return reasoner;
- }
- /**
- * 獲取推理的本體
- * @param path
- * @return
- */
-
private
- Model model = ModelFactory.createDefaultModel();
- model.read(path); //"file:./family/family.owl"
- OntModel ont = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF,
- model);
- Resource configuration = ont.createResource(); //a new anonymous resource linked to this model
- configuration.addProperty(ReasonerVocabulary.PROPruleMode
- , "hybrid");
- return ont;
- }
- /**
- * InfModel是對常規Model的擴充套件,支援任何相關的推理能力
- * @param ontPath
- * @param rulePath
- * @return
- */
- public InfModel getInfModel(String rulePath, String ontPath) {
- this.inf = ModelFactory.createInfModel(getReasoner(rulePath), getOntModel(ontPath));
- returnthis.inf;
- }
-
相關推薦
Jena 本體推理
一,使用Jena對OWL本體進行查詢推理 使用sparql對本體進行查詢 1)InfModel是對常規Model的擴充套件,支援任何相關的推理能力 2)QueryExecution 執行sparql查詢 3)ResultSetFo
Jena 本體推理規則介紹
本體的推理規則庫是有一條條規則組成的。每條規則由主體(body)和頭(head)組成,一條規則可以有一個主體和一個頭,例如規則:[rule1:(?a fa:hasHusband ?b)(?a fa:isMotherOf ?c)->(?b fa:isFatherOf
本體(ontology)學習之我見——Jena規則編寫——中文顯示與owl:inverseOf推理結果不全
本體建立以後,接下來就是考慮怎樣去使用本體。之前已經說過,我的主要用途就是找出本體例項中的衝突(inconsistent)以及推匯出新的關係,而這兩者都要用到規則。筆者主要運用運用Jena提供的基於自定義規則的推理機來實現以上兩點,當然你也可以使用Jena+pell
本體(ontology)學習之我見——Jena操作本體遇到的問題
很多人在照葫蘆畫瓢式的建好自己的本體後又要迷茫了,建的本體有什麼用?這就需要把本體融入到你的Java程式中,我就是用Jena來操作本體的~具體jena環境怎樣搭建,以及具體怎樣操作本體就不說了,網上搜Jena簡介或jena教程應該會有很多,其實都是一樣的,可能都來自IBM實驗
使用Protege建立本體、進行推理
1 前言 本文是小象學院的王昊奮老師的《知識圖譜》課程的第二講小結,即使用Protege軟體來建立本體,並進行簡單的推理。 Protégé軟體是斯坦福大學醫學院生物資訊研究中心基於Java語言開發的本體編輯和知識獲取軟體,或者說是本體開發工具,也是基於知識的編輯器,屬於開放原始碼
利用jena API查詢OWL本體
public class SearchFamily { private final static String FATHER="father"; private final static String MOTHER="mother"; private final static String DAUGHTER=
我遇到的Myeclipse 實現Jena推理時出現的問題及解決辦法
錯誤提示:Exception in thread "main" java.lang.NoClassDefFoundError: EDU/oswego/cs/dl/util/concurrent/WriterPreferenceReadWriteLock at com.hp.h
jena fuseki 自定義推導規則(OWLFBRuleReasoner推理機)
訪問請移步至,這裡有能“擊穿”平行宇宙的亂序並行位元組流… 造成該問題,主要兩大緣由: 其一,推導規則(rules.ttl)需要用逗號隔開。 @prefix : <http://www.kgdemo.com#> . @prefix rdf: &l
jena 簡單查詢(不帶推理,直接讀取owl檔案)
//用的是protege 裡面的people demo import com.hp.hpl.jena.rdf.model.*; import com.hp.hpl.jena.ontology.*; import com.hp.hpl.jena.query.Que
Jena讀取Ontology本體到Mysql資料庫
前面我已經介紹瞭如何使用D2RQ平臺來生成我們jean可以解析和推理的RDF文字,這裡我來介紹下如何通過jena操作把RDF存到Mysql資料庫。 先介紹下整體流程:①載入資料庫JDBC驅動。②建立資料庫連線。③為資料庫建立一個ModelMaker。④為本體建立
jena構建本體,讀取owl檔案,輸出owl檔案相關知識
官方文件是最需要學習的 一種輸出方式: 最後貼上我的程式碼: @Test public void testJena() throws Exception{ //讀取本體 final String SOURCE = "http://ist.sjtu.edu
知識圖譜推理與實踐 (2) -- 基於jena實現規則推理
本章,介紹 基於jena的規則引擎實現推理,並通過兩個例子介紹如何coding實現。 規則引擎概述 jena包含了一個通用的規則推理機,可以在RDFS和OWL推理機使用,也可以單獨使用。 推理機支援在RDF圖上推理,提供前向鏈、後向鏈和二者混合執行模式。包含RETE engine 和 one tabled d
法的本體
結構 原則 規則 模式 一是 暴力 約束 條件 主體 五個法定 主體法定 權限法定 內容法定 程序法定 責任法定 國家強制力是唯一合法的暴力 規範:針對不特定主體反復適用的普遍約束力 法律的特征:規範性:不是技術規範,是社會規範國家意誌性:不是道德,國家
(zst的博弈) 【推理+找規律】
size one img 參考 每次 blog 給定 style int 題目: 甲乙兩人玩一個遊戲: 一張卡片上有個數字,甲乙兩人輪流操作, 若當前卡片上的數字為x, 每次操作可以把它變為x+1或2x, 且不能超過n (例如n=8,x=6,只能變為7而不能變為12),
邏輯是“必然的得出”,是“推理的有效性”
找到 最好 教學 詳細 第一章 邏輯 多看 邏輯與 進行 輯是“必然的得出”,是“推理的有效性”,是“從前提真保證得出結論真”。通俗的說是研究推理形式(有效性)而不是其負載內容的。對應的功效是刻畫思維中演繹推理這一基本領域的工具。王路《邏輯的觀念》中有個定義(好像是李小五的
機器不學習:用神經模塊網絡學習推理
model tensor 作用 參考 我們 arr 生成 人工 相關 機器不學習 jqbxx.com-機器學習好網站 假設我們正在建造一個家用機器人,並希望它能夠回答與它周圍的一些問題。我們可能會它問這樣的問題: 我們如何確保機器人可以正確回答這些問題?深度學習的標準
<圖像理解> 2-空間推理和基於模型的圖像理解
rac right 基於 位置 時間段 對象 emp box 意思 1 - 關於空間實體和空間關系的知識表示和推理: 在AI領域 - 主要是拓撲關系 - formal 邏輯 meretopology - 推理 在圖像解釋方面欠發達 - 需要不精確的只是表示
2018年刑偵科推理試題 python實現
HR lag OS python 真的 bit continue image flag 這題越推越覺得應該用程序寫,所以就用python寫了一個,為什麽用python,因為真的很方便。 先看看理論上是否可行,10道題,每題4個選項,也就是4的10次冪,2的20次冪,也
2018行政科推理試題
stream chch div getchar() 生成 -m problem nas finall 最近很火的刑偵推理題,我也試了一下,答案是BCACA CDABA 如果直接推理很難,還要不斷試錯。既然這樣不如借助計算機暴力出結果(因為只有4^9=262144種情況,可
近幾年難得一見的一道好推理題
相同 分享 趣味性 建議 blog 難點 矛盾 嘗試 根據 要改變世界的程序猿,是用代碼邏輯來解決各種問題,編程就是與各種問題鬥智鬥勇的過程,沒有嚴謹的推理能力,是很難通過九九八十一難取得真經的。這是本程序猿近兩三年來看到的最好的一道推理題。 這題的最大難點在於無從下