2013-05-29 111 views
5

我使用GNOME技術編寫桌面應用程序,我達到了 階段,我開始策劃語義桌面支持。分配URI來RDF資源

經過大量的頭腦風暴,素描思想和模型,寫作筆記 ,並閱讀了很多有關RDF和相關主題,我終於想出了一個 計劃草案。

我決定做的第一件事就是定義我給URI提供URI的方式,這就是我希望聽到你的建議的地方。

我的程序由兩個部分組成:

1)在較低的水平,RDF模式被定義。這是一組標準的 類和屬性,可能由需要更多選項的用戶擴展 (使用定義語言轉換爲RDF)。

2)在高電平時,用戶定義了使用的那些種類和性質 資源。

下級沒有問題,因爲數據模型爲 public:即使用戶決定添加新內容,她也非常歡迎 分享它,並讓其他人的應用具有更多功能。第二部分是問題 。在較高級別,用戶定義任務,會議,約會,計劃和日程安排。這些可能是私人的,並且用戶可能更喜歡在URI中具有任何信息以揭示信息的來源 。

因此,這裏有我的心裏也有疑問:

1)我應該使用哪一個URI方案?我沒有網站或任何網頁,因此使用http沒有任何意義。它似乎也沒有使用任何其他標準的IANA註冊的URI。我一直在考慮 兩種選擇:使用一些自定義的,我自己的,URI方案名稱 公共資源,並使用私立的裸URN,像這樣 :

urn : random_name_i_made_up : some_private_resource_uuid 

但我想知道是否一個自定義的URI方案是一個很好的決定,我 開放聽取你的想法:)

2)如何隱藏私人資源?一方面,URI可能非常有用,用於告知任務來自哪裏,特別是在人員之間共享和委託任務 時。另一方面, 考慮隱私。然後我想,根據用戶設置,我可以/應該使用兩種不同的 URI樣式嗎?這會造成一些不一致。我不知道該怎麼做,因爲我沒有任何關於URI的 經驗。希望你對我有一些建議。

回答

3

1)我應該使用哪種URI方案?

我會建議標準urn:uuid:,然後是您的資源UUID。使用標準通常比本地解決方案更受歡迎!

2)如何隱藏私有資源?

不要使用不同的標識方案。試圖將授權和訪問控制權融入身份驗證方案中,就是將這些圖層混合在一起,這種方式勢必會在未來造成您的痛苦。例如,如果用戶將一些當前私人內容(例如草稿)公開(現在是其可發佈形式),會發生什麼?

有一個單一的,均勻的標識符溶液,然後提供可以或可以不解決給定標識符的文件的,根據上下文的一個或多個服務(用戶身份,有關內容本身的,等等等等元數據)。是的,這很像HTTP服務器可以做的,因此您可能需要重新考慮是否在架構中使用嵌入式HTTP服務。如果沒有,你需要將有許多相似之處HTTP服務,你只需要明確其中標識符可以解析爲一個文檔的情況下,當要麼是不可能或不允許發生的事情,等

您可能還想考慮要增加哪些價值。重新發明基本服務接入協議可能是一個很有趣的事情,但如果你在基本服務水平再使用標準組件的用戶可能會獲得更多的價值,而不是專注於創新和增加功能,一旦用戶實際上可以訪問內容對象。

+0

謝謝你,像你這樣的建議,我將使用的UUID。 URI本身不包含任何位置數據,但是資源共享仍然是可能的:通過一些外部服務,例如HTTP/XMPP,用戶可以相互連接,並且可以使用該協議將資源發送給對方。然後,資源可以具有允許進一步訪問它的細節。因此,私人資源如果不與其他人分享,仍然很容易保持私密:) – cfa45ca55111016ee9269f0a52e771