關於RDQL 自己的一些解釋

2021-08-25 06:14:04 字數 2467 閱讀 7173

研究了研究 發現 rap 有乙個跟 sql 語法很相似的東西

在sql: $query="select siren from table where 1"

在rdql 中

$query = 'select ?siren

where (?x ,,?siren)

using v for

';<?xml version='1.0' encoding='utf-8'?> 測試ns22222222222輸出來的東西 測試ns222222輸出來的東西 測試ns3333333輸出來的東西 測試ns4444輸出來的東西

下面是 自己的 index.php 檔案

<?php /** * @author [斯人] * @date 2010/6/1/10:16 * @ * */ define("rdfapi_include_dir", "e:/siren/rdfapi-php/api/"); include (rdfapi_include_dir . "rdfapi.php"); // filename of an rdf document $base = "employees.rdf"; // create a new memmodel $model = modelfactory::getdefaultmodel(); // load and parse document $model->load($base); // query string //$rdql_query = ' //select ?siren,?age //where (?x, , ?siren), // (?a,,?age) //using vcard for // v for '; $rdql_query = 'select ?siren where (?x ,,?siren) using v for '; //query model, get rdqlresultiterator $rdqliter = $model->rdqlqueryasiterator($rdql_query); //get different result labels as array $result_labels = $rdqliter->getresultlabels(); echo "

result label names:"; for ($i = 0; $i < count($result_labels); $i++) echo $result_labels[$i] . " "; echo "

number of results:" . $rdqliter->countresults(); //serialize result to string; echo "

result objects, serialized to string:

"; while ($rdqliter->hasnext()) ; ?>

在上面的語句中 執行的結果就是

我們把 $rdql_query改一下...

$rdql_query = 'select ?siren where (?x ,,?siren) using v for ';

執行結果是

literal("測試ns2輸出來的東西")

我們在改一下..

$rdql_query = 'select ?siren where (?x ,,?siren) using v for ';

執行結果為

literal("測試ns4444輸出來的東西");

有沒有發現上面規律???

下面說說我個人的理解..

以 $rdql_query = 'select ?siren where (?x ,,?siren) using v for ';

為例select 不用說 ..跟sql 同意

後面的 ?siren 應該就是乙個變數 它必須要跟 where 語句裡面的 第三個引數對應..多個 可以用 逗號","隔開

例如$rdql_query = 'select ?siren,?google where (?x ,,?siren) ,where (?x ,,?google) using v for ';

where括號裡面的 引數 就是 主語,謂語,賓語,,第乙個是主語..隨便設定但前面必須要加 "?"問號,

中間的 就是 rdf中的命名空間..這裡為什麼是v 而不是 呢?

這是因為後面的 using v for 語句的關係..

在 rd檔案裡面 是這樣的語句

xmlns:ns4=""

using v for 語句就是 用v 代替 值為 的 乙個變數吧..

跟 sql 語句中 select user as v 類似..

目的應該就是把乙個長的 名字空間 用乙個值代替...

然後 rap 就會根據 這個語法 去從rdf中取出資料來...

有的時候可以 加上 from 就是

$rdql_query = 'select ?siren from where (?x ,,?siren) using v for ';

它用來告訴 rap 源 是哪個檔案...因為 程式裡面已經定義了檔案 所以這裡就不用寫了

關於xmpp的一些解釋

一 定義 xmpp 是一種很類似於http協議的一種資料傳輸協議,它的過程就如同 解包裝 包裝 的過程,使用者只需要明白它接受的型別,並理解它返回的型別,就可以很好的利用xmpp來進行資料通訊。xmpp的核心協議的定義使得xmpp能夠在乙個比以往網路通訊協議更規範的平台上。借助於xml易於解析和閱讀...

寫一些關於自己的

我的大學四年就快結束了,再過幾個月就要離開這所大學了。慶幸的是自己又考上了研究生,還能夠繼續在校園裡讀3年的書,也可以算是一件幸福的事情吧。這次讀研的專業是學計算機了,算是自己選擇的,也是自己喜歡的。不用再像本科那時,選了乙個自己不喜歡的,還整天混日子。導師選好了,做的是圖形影象處理。目前,自己的專...

關於自己的一些思考

說真的最近有些迷茫,一天恍恍惚惚,天天在期盼什麼,卻又什麼也沒有期盼到,乙個朋友說,讓我去學校,可我覺得還是離家太遠,也許生活就是這樣,總不會那麼如意,人到一定階段後,就沒有那麼衝動,沒有那麼著迷,開始走向理性,從目前的形式來看,外面的環境不是太好,就業形式比較緊張,目前聯絡的地方都還沒有回音,看來...