3

私の質問は単純ですが、ナンセンスかもしれません。(その場合、理由を説明するために時間を費やす人には申し訳ありません) (ここではすべてのリソース宣言を表示しません) のようなリソースを作成したいと思います。

<owl:DatatypeProperty rdf:about="relation:isPartOf">
    <rdfs:domain rdf:resource="http://www.w3.org/2004/02/skos/core#note"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#anyURI"/>
</owl:DatatypeProperty>

<rdf:Description rdf:about="resource:context:sc#c1">
<skos:note rdf:datatype="relation:isPartOf" rdf:resource="resource:context:sc#c2">
    </skos:note>
</rdf:Description>

重要なのは、skos:note 関係
Subject : c1 a uri に関するトリプルです。Predicate : a skos:note , Object : a typed URI 私の URI は直接の URI ではなく、"relation;isPartOf" uri です。そのためにカスタムの typedUri クラスを作成します。自家製のトリプル ストアを使用したので、独自のクラスを使用できます。これらの例を出力するために RDFXMWritter を少し変更します。だから「効く」。私の質問はもっと: URI をこのように入力できますか? ゴマopenrdfがTypedURIクラスを提供しないのはなぜですか? 私は正当な理由があると確信していますか?どんな助け、アイデア、または答えもいいでしょう。

TypedURi クラスを作成するという私の考えはどこか間違っていると確信しています。しかしここで ?:-) ありがとうございました

EDIT : TypedURI は実際には新しい種類のリソースではありません。私のコンテキストでの URI は、依然として URI です。skos:note ステートメント内で、 c1 の場合、ステートメントのオブジェクトは "relation:isPartOf" 型のデータであり、データの範囲は anyURI であると宣言するだけです。... typedURI は、そのような範囲でデータ型を実装するのに役立ちます。

4

1 に答える 1

5

まず第一に: いいえ、RDF では URI をこのように入力することはできません。これは、2 番目の質問にも答えます。OpenRDF Sesame は、RDF モデルの一部ではないため、この機能を提供しません。

URI (より正確には、URI を使用して識別されるリソース) の型付けはrdf:type、リソース URI をクラス URI にリンクするリレーションを使用して行われます。たとえば、ex:p1タイプのリソースを作成するにはfoaf:Person、(RDF の Turtle 構文を使用して) 次のようにします。

ex:p1 rdf:type foaf:Person .

RDF には別の種類の型付け、つまりデータ型付けがあります。これはリテラル値にのみ適用されるため、URI では使用できません。リテラル値を文字列、整数、日付などにするために使用されます。

はRDFxsd:anyURIで有効なデータ型であり、(XML スキーマでは) URI の型として定義されているため、混乱が生じる可能性があります。ただし、RDF でデータ型を使用する場合、その字句空間は常にリテラルです (単純に、仕様ではリテラルが実際にデータ型を持つことしか許可されていないためです)。したがって、実際には次のようなことができます (リテラル表記に Turtle 構文を使用):

"http://www.example.org/some/uri"^^xsd:anyURI  

しかし、RDF モデルの観点からは、これは URI ではなく、リテラル文字列 ( datatype を使用xsd:anyURI) です。したがって、ある意味では、はい、RDF の URI にタイプを追加できますが、最初にそれらをリテラルに「変換」することによってのみこれを行うことができます。

于 2014-01-20T10:57:35.597 に答える