2013-06-13 31 views
0

在RESTful服務,您可以定義資源的鏈接像這樣:REST/HATEOAS微格式/ FOAF /架構特定領域的混亂

<next xmlns="http://example.org/state-machine" 
    rel="http://mydomain.example.org/user" 
    url="http://mydomain.example.com/user/1234" 
    type="application/xml"/> 

還是一個JSON-LD舉例:

{ 
    "@context": { 
    "name": "http://xmlns.com/foaf/0.1/name", 
    "homepage": { 
     "@id": "http://xmlns.com/foaf/0.1/homepage", 
     "@type": "@id" 
    } 
    }, 
    "name": "Manu Sporny", 
    "homepage": "http://manu.sporny.org/" 
} 

或者電子名片例如:

<address id="hcard" class="vcard"> 
<p class="fn n"> 
<span class="given-name">First</span> 
<span class="additional-name">M</span>. 
<span class="family-name">Last</span> 

隨着rel屬性指向一個模式/微格式/微數據/ RDFa的DESCR該域內的自由提供對象的iption。說我有一個字段名和主頁的用戶對象,

  1. 在上面的例子,因爲它是域特定用戶或我應該使用這樣的事情從FOAF將rel="http://mydomain.example.org/user"更合適?

    "name": "http://xmlns.com/foaf/0.1/name",@id": http://xmlns.com/foaf/0.1/homepage" 
    
  2. 我很困惑與這些RDFa的,微格式,微數據模式,電子名片,hcards,FOAF,http://www.productontology.org/id/,www.schema.org/name,http://rdf.data-vocabulary.org/#name,JSON模式,等等。當創建我自己的微格式/模式,以及我何時使用在這些不同領域(vCards,hcards,foaf,productontology,schema.org)中定義的公共模式?我瞭解RDFa,微格式等是真正的關於數據的公共元數據,但我可以在哪裏找到要使用的完整列表?

  3. 如果我要創建自己的rel,如rel="http://mydomain.example.org/user",定義用戶對象,我該如何記錄它?有我可以遵循的標準嗎?有些地方建議用戶可讀的發現文檔,或者在描述合同和版本的地方提供JSON/XML模式?

  4. 一個建議是讓http://mydomain.example.com/v1/user/1234的不同版本與服務規範的不同版本對話,以便現有客戶端不會因版本更改而中斷。

請幫我繪製出這樣的困惑,或者條件我應該使用,關於微格式,RDF,微觀數據,架構等

+0

我在這個網站找到了答案很有用http://answers.semanticweb.com/questions/2918/why-is-rdf-so-old-complicated-unpopular-and-still-not-discarded – Joshscorp

回答

1

當剛開始學習RDF /本體論,我已經同樣的困惑。 有許多來自許多不同組織的詞彙。關鍵是要用那些已經很好建立並被別人採納的;但更重要的是,確保使用代表您意圖表達的「語義」的「術語」。
回答您的具體問題: 1)您可以'創建自己的條款,但重點是當其他應用程序解析您的條款時,應用程序需要知道您的條款的真正含義。如果你使用FOAF:主頁,所有的應用程序都知道它的語義和它引用的內容,也就是說,無論誰是FOAF主頁的主題(主題是rdf tripple):主頁是FOAF:Person。還有就是打開鏈接的數據進來。 http://linkeddata.org/

2)我自己沒有很多用RDFa/Microfromat的經驗,我的理解是,這些技術要在HTML層提供機器可以理解的語義方面。我想如果有現有的,你可能不想創建你自己的,但除了那些東西外,你還可以定義自己的術語。

3)您可以定義使用OWL或RDFS 剛看到這一點,它可能是有用的術語.. https://code.google.com/p/tdwg-rdf/wiki/Beginners7OWL

但在我的光路的項目,我們只是通過指定命名空間的名稱,創造條件您可以按照以下方式來定義您的條款: http://dublincore.org/documents/dcmi-terms/

JSON/XML/N3 ...只是不同的序列化格式,並且可以使用許多不同的格式序列化相同的術語。要記住的重要一點是,您要定義術語的語義,並將它們序列化爲不同的格式。格式並不重要,但所有格式都指向相同的術語和意義。

4)Myself version vocabs ..但我對最佳實踐沒有多少見解。

希望這個幫助!

+0

是的,我包裝我的頭在附近,並感謝真棒鏈接...我想我會有更多的閱讀去做。 – Joshscorp

0

有此在RDFa的一個衆所周知的表達式:

<html><body vocab="http://purl.org/dc/terms/"> 
<div typeof="foaf:Person"> 
<span property="creator">manu sporny</span> 
<span property="foaf:age" content="66"/> 
<span property="foaf:homepage" resource="http://x.com"/> 
</div> 
</body></html> 

的 「FOAF」 前綴由RDFa的缺省值。沒有上下文來定義。 「dc」前綴是默認的,「創建者」不需要前綴。

這是標準,忘了其他一切。

可直接使用的前綴列表由 http://www.w3.org/2011/rdfa-context/rdfa-1.1 提供您可能會發現這裏有很多可用的概念,實際上是所有的公共架構。

請注意「模式」前綴,對於此處定義的詞彙表: http://schema.org/ 它特別豐富且被廣泛使用。 還要注意它試圖定義一個微格式來與RDFa表示法競爭。放棄這一點,並使用RDFa的詞彙。