1. 程式人生 > >Jena 本體推理

Jena 本體推理

一,使用Jena對OWL本體進行查詢推理

 使用sparql對本體進行查詢

1)InfModel是對常規Model的擴充套件,支援任何相關的推理能力

2)QueryExecution 執行sparql查詢

3)ResultSetFormatter 獲取查詢結果集

4)例項中使用了本體檔案Experts.owl

二,下面是一個簡單的例子:

  1. publicclass ReasonerImpl implements IReasoner {  
  2.     private InfModel inf = null;  
  3.     /**
     
  4.      * 獲取一個推理介面 
  5.      * @param path 
  6.      * @return 
  7.      * @throws RulesetNotFoundException 
  8.      */
  9.     private GenericRuleReasoner getReasoner(String path) throws RulesetNotFoundException {  
  10.         List<Rule> rules = Rule.rulesFromURL(path);  //"file:./family/family.rules"
  11.         GenericRuleReasoner reasoner = new
     GenericRuleReasoner(rules);  
  12.         reasoner.setOWLTranslation(true);  
  13.         reasoner.setDerivationLogging(true);  
  14.         reasoner.setTransitiveClosureCaching(true);  
  15.         return reasoner;  
  16.     }  
  17.     /** 
  18.      * 獲取推理的本體 
  19.      * @param path 
  20.      * @return 
  21.      */
  22.     private
     OntModel getOntModel(String path) {  
  23.         Model model = ModelFactory.createDefaultModel();  
  24.         model.read(path);  //"file:./family/family.owl"
  25.         OntModel ont = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF,  
  26.                 model);  
  27.         Resource configuration = ont.createResource(); //a new anonymous resource linked to this model
  28.         configuration.addProperty(ReasonerVocabulary.PROPruleMode  
  29.                 , "hybrid");  
  30.         return ont;  
  31.     }  
  32.     /** 
  33.      * InfModel是對常規Model的擴充套件,支援任何相關的推理能力 
  34.      * @param ontPath 
  35.      * @param rulePath 
  36.      * @return 
  37.      */
  38.     public InfModel getInfModel(String rulePath, String ontPath) {  
  39.         this.inf = ModelFactory.createInfModel(getReasoner(rulePath), getOntModel(ontPath));  
  40.         returnthis.inf;  
  41.     }  
  42. 相關推薦

    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 難點 矛盾 嘗試 根據 要改變世界的程序猿,是用代碼邏輯來解決各種問題,編程就是與各種問題鬥智鬥勇的過程,沒有嚴謹的推理能力,是很難通過九九八十一難取得真經的。這是本程序猿近兩三年來看到的最好的一道推理題。 這題的最大難點在於無從下