2013-05-29 11 views
5

Gnome技術を使用してデスクトップアプリケーションを作成していて、 に達しました。セマンティックデスクトップのサポートを計画しました。RDFリソースにURIを割り当てる

多くのブレーンストーミング、アイデアやモデルのスケッチ、ノート の作成、RDFと関連トピックに関する多くの記事を読んだ後、私は最終的に プランドラフトを考え出しました。

最初にやることは、私がURIを リソースに与える方法を定義することです。これがあなたのアドバイスを聞いています。

私のプログラムは、2つの部分から構成:

1)より低いレベルでは、RDFスキーマが定義されています。 のクラスとプロパティーの標準セットで、より多くのオプションを希望するユーザーによって拡張される可能性があります。 (RDFに翻訳された定義言語を使用)。

2)ユーザーは、上位レベルで、これらのクラスと のプロパティを使用してリソースを定義します。

データモデルが であるため、下位レベルで問題はありません。ユーザーが新しいコンテンツを追加することを決定した場合でも、 を共有して他のユーザーのアプリにもっと機能が追加されることを大変歓迎します。問題は と2番目の部分です。より高いレベルでは、ユーザはタスク、 会議、予定、計画およびスケジュールを定義する。これらはプライベートなものでもよく、ユーザは URIの任意の情報を持って、その情報のソース を明らかにすることを好むかもしれません。

1)URIスキームは、私が使用する必要があります。だからここ

は、私は私の心に持っている質問ですか?私はウェブサイトやウェブを持っていません ページなので、httpを使うのは意味がありません。他の標準IANA登録URIを使用する意味も とは思われません。 このように、何かを 公共資源のためのいくつかのカスタム、私自身、URIのスキーム名を使用し、プライベートなもののために裸のURNを使用します:私は には2つの選択肢を検討してきた

urn : random_name_i_made_up : some_private_resource_uuid 

しかし、私はかどうかを疑問に思いましたカスタムURIスキームは良い決定です、私は あなたからアイデアを聞いて開いています:)

2)私的資源を隠すには?一方では、特に仕事が人の間で共有され、委任されているときに、タスクがどこから来たのかを伝えるためにURIのために非常に役に立つかもしれません。 一方、 プライバシーを考慮していません。次に、ユーザーの設定に応じて異なる2種類のURIスタイルを使用することはできますか?これにより、一致しないものがあるかもしれません。 私はここで何をすべきか分かりません。なぜなら私は URIの経験がないからです。うまくいけば、私のためにいくつかのアドバイスがあります。

答えて

3

1)どのURIスキームを使用しますか?

私は標準urn:uuid:にあなたのリソースUUIDをアドバイスします。標準を使用することは、一般的に自家製のソリューションよりも好まれるでしょう!

2)プライベートリソースを非表示にするにはどうすればよいですか?

異なる識別子スキームを使用しないでください。アイデンティティ・スキームへの認可とアクセス制御を試みることは、将来あなたの苦痛を引き起こすような方法でレイヤーを混在させることです。たとえば、ユーザーが現在非公開のコンテンツ(ドラフトなど)を公開している場合(公開可能な形式になっている場合)はどうなりますか?

単一の一意のソリューションを用意し、コンテキスト(ユーザーID、コンテンツ自体に関するメタデータなど)に応じて、特定の識別子をドキュメントに解決するかどうかを示す1つ以上のサービスを提供します。はい、これはHTTPサーバーに似ていますので、アーキテクチャにHTTPサービスを組み込むかどうか再考する必要があります。そうでない場合、必要なサービスはHTTPと多くの点で似ていますが、識別子が文書に解決される可能性があること、許可されていない、または許可されていない場合にどうなるかなどを明示する必要があります。

また、最も価値を増やす場所を検討することもできます。基本的なサービスアクセスプロトコルを再発明するのは面白いかもしれませんが、基本サービスレベルで標準コンポーネントを再利用すると、ユーザーはより価値を得ることができます。コンテンツオブジェクト。

+0

ありがとうございます、私はあなたのようにUUIDを使用します。 URI自体にはロケーションデータは含まれませんが、リソースの共有は引き続き可能です。 HTTP/XMPPでは、ユーザーは互いに接続し、プロトコルを使用して互いにリソースを送信できます。次に、リソースには、詳細なアクセスが可能な詳細が設定されています。したがって、プライベートリソースはまだ他の人と共有されていなければプライベートなままです:) – cfa45ca55111016ee9269f0a52e771