2015-11-10 35 views
4

我想知道如果它是更好/正確引用使用片段標識符格式的實體 - 基本上由名稱之前插入散列結構化數據>微數據&JSON-LD>實體ID>片段標識符

[url] + # + [name] = >http://example.com/page/#webPage

編輯:

在從不斷的慷慨和巨大@Unor一種答案,我已經加入此編輯試圖限制我的查詢的範圍和澄清,我在獲得的主要問題。我也刪除了大部分原來的問題(大約95%),我認爲這有損於我的觀點: 1.我的核心問題;和 2.對未來讀者的好處。

這是我的問題,簡而言之就是:

是在微觀的開始在哈希手動鍵入實踐爲itemid和JSON-LD的@id值是否有效?

這裏更詳細表達了我的問題:

我可以插入一個HASH符號(#)到微觀的爲itemid值和JSON-LD的@id值,來創建一個適當和有效的有效產生的URI使用片段標識符?

因此,如果這是在網頁上:

<div itemscope itemtype="http://www.schema.org/Person" itemid="#joe"></div> 

或者,如果這也是網頁:

{"@context":"http://schema.org", 
"@type":"Person", 
"@id":"#Joe"} 

我知道他們將被讀作這樣的URI (假設消費者像谷歌的結構化數據測試工具那樣進行相對構建):

http://www.example.com/page#joe 

是那個uri:

  1. 一個有效的uri;和

  2. 它是否正確使用片段標識符(HASH)?

+0

我不確定你指的是Google的工具究竟是什麼(它應該是一個單獨的問題,如果它很重要),但我認爲你的意思是該工具爲具有'id'屬性的元素生成URI? AFAIK這樣做不正確(即Microdata/RDFa沒有指定),我不知道他們爲什麼這樣做。 – unor

回答

6

這是一個很好的做法,使檢索有關請求的URI時(見Cool URIs for the Semantic Web: 1. Be on the Web.)的實體描述。

通過使用哈希的URI,你免費得到這個功能:

  • http://example.com/flower代表約花
  • http://example.com/flower#this代表花
  • →檢索http://example.com/flower#this時,你得到的文檔的文檔

通過使用斜線的URI,你必須實現一個重定向(with status code 303)自己:

  • http://example.com/flower代表約花
  • http://example.com/flower/this文件代表了花
  • →檢索http://example.com/flower/this時,你會得到303 (see an example

因此,如果不瞭解有關後端的更多信息,我會建議使用Hash URI,因爲它通常更易於設置。

(我不知道究竟你的意思「網頁實體」,而只是爲了確保:哈希URI應該是「現實世界對象」,而不是文件)


Edit(對於您的問題更新):

是的,你可以通過指定唯一的片段組成部分(從一#)提供的哈希URI在itemid@idexample)。

等都與URL http://example.com/foobar的文件,這四個語句生成相同的哈希URI(http://example.com/foobar#this):

<article itemscope itemtype="http://voc.example.net/Example" itemid="#this"> 
</article> 

<article itemscope itemtype="http://voc.example.net/Example" itemid="http://example.com/foobar#this"> 
</article> 

<script type="application/ld+json"> 
{ 
    "@context": "http://voc.example.net/", 
    "@type": "Example", 
    "@id": "#this" 
} 
</script> 

<script type="application/ld+json"> 
{ 
    "@context": "http://voc.example.net/", 
    "@type": "Example", 
    "@id": "http://example.com/foobar#this" 
} 
</script> 

(是的,你的榜樣URI是有效的,這裏的which characters the fragment component may contain。)

備註:

  • 該片段區分大小寫,因此您的itemid="#joe""@id":"#Joe"解析爲不同的UR是(jJ)。
  • 未指定絕對哈希URI時,必須確保當前文檔的URL是規範的。例如,尾部斜槓很重要(/page/#joe/page#joe);查詢組件很重要(頁面/page?foo=bar將創建哈希URI /page?foo=bar#joe,而不是/page#joe);如果主機有www.或不重要; URI方案很重要(httphttps);等等
+1

無法拯救......再次!我將編輯該問題以澄清您確定的一些觀點。 – TBB

+0

嗨@unor。我編輯了這個問題。如果您能夠根據此澄清更新您的答案,我會很高興地將其標記爲正確。 – TBB

+0

@TBB:我添加了一個關於如何在'itemid' /'@ id'中指定哈希URI的部分。這是否回答您更新的問題,還是我誤解了某些內容? – unor