2012-02-07 5 views
5

「RDF(Resource Description Framework):概念と抽象構文」ドキュメントSection 6.4は、「RDFグラフ内のURI参照(RDF URI参照)...」が有効なURI文字列を生成すると述べています(RFC2396 )は、任意のフラグメント識別子 ... "RDFで使用されるURIで「クエリ文字列」が許可されていますか?

RFC 2396で表され、セクション2.1では個々の文字のエンコーディングについてのみ説明しています。 RDF内で標準URIのどのセクションが許可されているかについては言及していません。

「絶対URI」という用語はURIのdomain.tld/path/name#optionalFragment形式を指しているようですが、クエリ文字列(?key1 = value1 & key2 = value2)(CGIデータとも呼ばれます)は許可されているか許可されていません。他のRDF文書では、相対URI(/ just/a/path)とは対照的に、「絶対URI」という用語のみが使用されています。

「RDF URIクエリ文字列」を検索すると、SPARQLなどのヒット数が多くなります。

私の質問は次のとおりです。RDFまたはRDFaで使用されているURIに標準のHTMLクエリ文字列を使用できますか?

そうでない場合、どうしてですか? URIはURLではなく、サーバーからWebページを取得するために必ずしも使用されるとは限りません。しかし、RDFプロセッサはそれらのURIを読み取り、これらの "クエリ"文字列を介して渡すことができる追加のメタデータの形で何らかの助けを得ることができると考えています。

[2012/02/09更新]私の質問のポイントは次のとおりです。接続の「強さ」を示す方法を探しています。たとえば、誰もがfoaf:誰も同じようによく知っているわけではありません。会議でちょうど数分間会ったかもしれません。あるいは私は何年も人と一緒に住んでいたかもしれません。 FAOFと全く同じです。しかし、もし私がfoaf:knowows?strength = + 50と書くことができたら、強さキーをどうするか分からないプロセッサーはそれを無視することができますが、強度認識型のプロセッサーは貴重な追加メタデータを持っています。私は、用語 "agreesWith"を含む語彙を作成してから、強さ=キー値を0〜100(合意のパーセンテージを示す)にすることができます。それから、私は1つの語彙用語で全範囲の合意をカバーします。 {注:範囲を-100から+100にして、不一致の範囲をカバーすることを考えました。しかし、下位互換性を保つためには、「強意を持たない」プロセッサーが「agreeWith」と不一致の違いを知るように、「不一致」という用語が必要です。」

今のところ、 RDFの推論者が、「かろうじて満たされている」と「自分が知っているよりもよく知っている」との違いを知る方法はありません。キーと値のペア内の異なる値を持つそれぞれの異なる述語URIを完全に独立した完全に無関係の述語は、コード書き込みと高速処理を容易にするために、接続に関する最も有益な情報のほとんどを投げ捨てているようです。

他の有用なキー - クエリ文字列の作成以外nは、件名、述語、またはオブジェクトを完全に分離します。これらは、共同編集された.RDFファイルに特定のエンティティを追加した人を示すために使用できます。それが立てば、RDFの推論家は、どこかでトリプルが存在することを知っていますか?推論の根拠となる追加情報はありません。暗号化されたパスフレーズは、単にドメイン全体を信頼するかどうかを決定するのではなく、ソースの信頼性を検証するために使用できます。

答えて

7

はい。

(もっとお望みですか?)

RDFは、「URL」と呼ばれるものを使用しているものを指します。より正確にするには、IRI(基本的にURLにascii以上の文字を含める方法があります。そのため、ブラウザバーでエキゾチックな文字を使用することができます)。最も正確な答えは関連するのが面倒なので、IRIを想定してください。

RDFは絶対参照を使用します。その構文は相対参照(例えば、foo/bar)を使用することがありますが、それらは絶対になるようにドキュメントベースに対して解決されます。実際、htmlリンクとまったく同じです。

RDFは構文を超えて、これらの参照の内部には関係しません。あなたは文字で文字を比較するだけです。そうしない

  • http://example.com/foo/bar == http://example.com/foo/bar
  • http://example.com/foo/bar?query=x == http://example.com/foo/bar?query=x
  • http://example.com/foo/bar != http://example.com/foo/bar?query=x
  • http://example.com/foo/bar#x == http://example.com/foo/bar#x
  • http://example.com/foo/bar != http://example.com/foo/bar#x
  • http://example.com/%66oo/bar != http://example.com/foo/bar

注:結果として、正規化さえ得ます。

特に、RDFではクエリ部分が特別なものとして認識されません。

+0

同じdomainName.tld/path/name /部分を持つURIをすべて同じエンティティとして処理したRDFプロセッサを作成し、クエリ文字列を特定の接続に関するメタデータとして扱うと、そのRDFプロセッサ仕様外でしょうか? このように動作するRDFプロセッサに興味があると思いますか?私はexample.com/foo/barをexample.com/foo/bar#xとまったく無関係なものとして扱うというロジックは、プログラミング・プロセッサを簡単にするだけではないということ以外には見当たりません。 RDFは、このシステムよりもはるかに豊かである可能性があります。 – GrantRobertson

+0

ある程度の正規化を適用した場合は、議論の余地があります。しかし、クエリ文字列を無視するのは間違いです。 'http://example.com/?personid = xxx'はすべての' xxx'に対して同じであることが示唆されます。しかし、関係を明示的にすることができます: 'http:// example.com /'へのリレーション(つまりトリプル)リンクを挿入します。カスタムSPARQL等価関数 'ex:sameIgnoringQuery(x、y)'を作成することもできます。 – user205512

+0

OK、私は今私の秘密の計画を明らかにすることができると思います。 :^)詳細については私のオリジナルの記事を見てください。 – GrantRobertson

4

上記の答えを確認するには、はい。

URIは純粋に構文的なので、上記のルールが適用されます。

URIがフラグメントを使用しているのは逆参照ではなく、エージェントが逆参照しようとすると、そのフラグメントを削除することによって別のURI(URL)に解決されます。

最後に、それはあなたの代わりにIRIさん(国際化リソース識別子)を使用することをお勧めします。これは、異なるsyntatic制約や制限をspecificies可能

http://www.ietf.org/rfc/rfc3987.txt

URIさん。

+0

ありがとうございました。このフォーラムではなかったら、IRIは聞こえませんでした。私は明日読んでいることを知っている。 – GrantRobertson

関連する問題