RDF(Resource Description Framework)是W3C用來描述數位資源的一種規範,是採取以XML型式做為描述數位資源的一種方式,常見的RSS也有其中一個版本是採取RDF,不過因為RDF的規範有些難懂,所以也有另一種描述RDF的方式,叫做RDF Triples,以三元描述的型式來呈現,今天要介紹的Ruby套件-RDF就是用來以程式的方式來實作RDF Triples, 不過今天先簡單的以網址剖析的例子來說明數位資源的部份.
首先不外乎的,要先用gem來安裝RDF的套件
sudo gem install rdf
或是採用git下載的方式也可以,不過個人還是比較偷懶,能少打字就少打字
git clone git://github.com/bendiken/rdf.git
接下來我們也要記得宣告,雖然現在要記得宣告rubygems是一種常識,但是常常還是會忘記,以為沒有安裝好gems,其實只是忘了宣告而已.
require 'rubygems'
require 'rdf'
接下來簡單描述一下什麼是RDF triples,基本上來說RDF的理解就像是我們說話的時候,會有主詞、動詞、受詞,所以一個資源的描述就是不外乎用這種最基本最簡單的方式來描述,而RDF triples,就是用這樣的三個部份進行描述,下面我們用一個描述網址的例子來描述
比方我們拿鐵人賽的網址http://ithelp.ithome.com.tw/event/ironmangame3為例
首先我們用RDF::URI.new來做宣告
uri = RDF::URI.new("http://ithelp.ithome.com.tw/event/ironmangame3")
接著我們可以透過RDF套件的剖析知道網址的結構
puts "鐵人賽網址的通訊協定: " + uri.scheme
puts "鐵人賽網址的主機: " + uri.host
puts "鐵人賽網址的路徑: " + uri.path
puts "鐵人賽網址的基本名稱:" + uri.basename
結果顯示
鐵人賽網址的通訊協定: http
鐵人賽網址的主機: ithelp.ithome.com.tw
鐵人賽網址的路徑: /event/ironmangame3
鐵人賽網址的基本名稱: ironmangame3
這樣的剖析的方式,可以把一個網址拆成多個部份進行描述,
就以ironmangame3來說,為鐵人賽實際的目錄,而我們要知道怎麼從it邦幫忙進入之後的路徑,答案就是從/event/再到ironmangame3,至於主機名稱就是ithelp.ithome.com.tw,以此類推,其使用的通訊協定就是http.
這樣的例子只是幫助我們理解,一項數位資源如果透過剖析的方式拆解它原有的部份,加上說明之後,是否更容易讓人理解,而這個部分也是語意網路(Semantic Web)的基礎.