1. 程式人生 > >利用jena API查詢OWL本體

利用jena API查詢OWL本體

public class SearchFamily {
private final static String FATHER="father";
private final static String MOTHER="mother";
private final static String DAUGHTER="daughter";
private final static String SON="son";
private final static String SISTER="sister";
private final static String BROTHER="brother";
private final static String ANCESTOR="ancestor";
private final static String OFFSPRING="offSpring";
private final static String GRANDPA="grandPa";
private final static String rulePath="E:\\programming\\workspace\\OWLTest\\WebRoot\\WEB-INF\\family.rules";


private final static String pre="http://zhumzhu.com/family#";
public final static String fileSchema="E:\\programming\\workspace\\OWLTest\\WebRoot\\WEB-INF\\familySchema.xml";
public final static String fileData="E:\\programming\\workspace\\OWLTest\\WebRoot\\WEB-INF\\familyData.xml";


public static String getSearchString(String keyWords){
     StringBuffer sb=new StringBuffer("PREFIX fa: <
http://zhumzhu.com/family
#>" +
             " PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>" +
               " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
   );
     sb.append(" SELECT ?father ?mother ?son ?daughter ?sister ?brother ?ancestor ?offSpring ?grandPa ");
     sb.append("WHERE { ");
    
     sb.append(" OPTIONAL { ");
     sb.append(keyWords+" fa:hasFather ?father ");
     sb.append(" }. ");
     sb.append(" OPTIONAL { ");
     sb.append(keyWords+" fa:hasMother ?mother ");
     sb.append(" }. ");
     sb.append(" OPTIONAL { ");
    sb.append(keyWords+" fa:hasSon ?son ");
    sb.append(" }. ");
     sb.append(" OPTIONAL { ");
    sb.append(keyWords +" fa:hasDaughter ?daughter ");
    sb.append(" }. ");
     sb.append(" OPTIONAL { ");
     sb.append(keyWords+" fa:hasSister ?sister ");
     sb.append(" }. ");
     sb.append(" OPTIONAL { ");
     sb.append(keyWords +" fa:hasBrother ?brother ");
     sb.append(" }. ");
     sb.append(" OPTIONAL { ");
     sb.append(keyWords+" fa:hasAncestor ?ancestor ");
     sb.append(" }. ");
     sb.append(" OPTIONAL { ");
    sb.append(keyWords +" fa:hasOffSpring ?offSpring ");
    sb.append(" }. ");
    sb.append(" OPTIONAL { ");
    sb.append(keyWords +" fa:hasGrandPa ?grandPa ");
    sb.append(" } ");

     sb.append(" }");
     System.out.println(sb);
   return sb.toString();
}

相關推薦

利用jena API查詢OWL本體

public class SearchFamily { private final static String FATHER="father"; private final static String MOTHER="mother"; private final static String DAUGHTER=

Jena APIOWL中應用的體會

為了更好的使用Jena API,我們應該對OWL有個大致的瞭解。OWL核心是圍繞三元組的,即我們在很多資料中看到的陳述(Statement),它的組成為:Statement=(Subject,Property,Object),其中Subject我們熟成為主體,Property

利用百度API查詢手機號歸屬地

利用百度Api查詢手機號歸屬地 開啟網址可以看到好幾個號碼歸屬地的查詢,有些是收費的,有些免費,如果呼叫不是特別頻繁,需要的資訊量不是特別多的話,免費的就足夠了。我開始看的是第一個介面:http://apistore.baidu.com/apiworks/

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

利用JavaCSV API來讀寫csv文件

pro 如果 att ron maven style stat println 實現 http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/

利用zabbix api 帶入 組ID 和 監控項目鍵值 獲取所有主機的值

api 調用 zabbix def chaxun(groupid,items_value): 是自己寫的,帶入組ID 和 監控項目鍵值,返回 主機和值的結果。 做了判斷,如果這個主機沒有想要的監控項目,就去除掉。#!/usr/bin/env python #coding=utf-8 impo

利用pyusb來查詢當前所以usb設備

python idv use usr stdout == span inf 情況 具體代碼如下 #!/usr/bin/python import sys import usb.core # find USB devices dev = usb.core.find(find

百度地圖api-查詢周邊

circle htm idt var result 靜態頁 tid cli ng- 利用百度地圖api接口實現周邊配套設施查詢 1. 靜態頁面部分: 1               <div class="row"> 2

利用JAVA API遠程進行HDFS的相關操作

測試 call 文件重命名 spa getname created ces 一段時間 action 學習HDFS有一段時間了,現在把自己總結的HDFS的相關操作代碼展示給大家。 主要有HDFS的增刪改查,文件的追加,windows本地文件的上傳,hdfs文件的下載,文件重命

利用Google API快速生成QR二維碼

int char 利用 utf return 包含 尺寸 ret pre //laravel public function index(){ $urlToEncode="http://www.baidu.com"; $this ->

利用SQL語句查詢數據庫中所有表

結果集 sel clas 使用 創建 ref 註意 目錄 tails Oracle: SELECT * FROM ALL_TABLES;--系統裏有權限的表 SELECT * FROM DBA_TABLES;-- 系統表 SELECT * FROM USER_TA

Elasticsearch Java API 查詢

tty pan prepare fault 統計 建立 rep clas ase 一.查詢的時候,需要建立一個SearchRequestBuilder,這裏面將給出對於哪一個index或者type進行查詢,並且所有的設置都可以在這裏面進行實現,例如模糊查詢,範圍查詢,前綴查

django— json模塊api查詢(5)

django1.修改收集腳本#/usr/bin/env python #coding: utf-8 from subprocess import PIPE,Popen import urllib,urllib2 import pickle import json def getIfconfig():

python利用zabbix API添加監控

地方 sat int 用戶 現在 使用 pip htm 3.1 首先說一下坑的地方就是python2和python3的模塊改變問題,當然精通python的可以略過。這個在網上百度一下吧,第二個是導入xlsx文件的時候需要xlrd模塊,而這個模塊最好跟著我下面的方法走,那個p

Python 利用二分法查詢數據

end 相等 form spa app 循環多少次 想是 一個數 函數 一. 二分法的適用條件  二分法查找適用於數據量較大時, 但是數據需要先排好順序.  優點: 二分法查找效率特別高  缺點: 二分法只適用於有序序列二. 二分法的主要思想是:設查找的數組區間為array

Atiitt 圖片影象驗證碼生成法原理 目錄 1.1. 常見的最簡單圖片驗證碼是利用影象api把隨機數文字轉影象 1 1.2. 常見較為複雜圖片驗證碼的方法 ( 鏤空文字 打散 干擾線 文字扭曲

Atiitt 圖片影象驗證碼生成法原理   目錄 1.1. 常見的最簡單圖片驗證碼是利用影象api把隨機數文字轉影象 1 1.2. 常見較為複雜圖片驗證碼的方法 ( 鏤空文字  打散 干擾線 文字扭曲 粘連  膨脹,填充 ) 1 1.3. 實現 2

利用hbase api在本地訪問並操作伺服器的hbase資料庫

最近因為實驗室專案需要,開始研究了hbase。然後想一次性往叢集伺服器上寫入大量的資料,並存到hbase中,考慮到在hbase shell下只能單個數據put,這樣對於批量插入資料的要求完全不合適。於是就研究起hbase的java api,然後去大量填充資料到hbase以測試查詢的效能。於是,故事開

利用Cloudflare API批量新增域名至Cloudflare賬戶

在Cloudflare中其實是有提供API的,可以利用其功能進行批量新增域名,在這篇文章中,我將嘗試看看如何解決這個問題。 第一、準備工作 1、擁有一個Cloudflare賬戶 2、需要執行指令碼的Linux或者本機MacOS 3、申請到 Cloudflare API&nb

zabbix:利用zabbix api獲取指定組中的主機的名字並將其修改

思路講解:首先利用hostgroup.get方法獲取zabbix組的id與名字,然後檢索獲得指定組的id,再利用host.get獲取該指定組下的所有主機的id與名字,最後利用host.update根據主機的id更新主機的名字。 程式碼如下: #!/usr/bin/env python

Windows利用WTS API獲取鎖屏狀態

下面的這個函式可以獲取Windows是否處於鎖屏狀態: 程式碼來自stackoverflow,C++: check if computer is locked。 #include <Windows.h> #include <WtsApi32.h> boo