2012-06-21 5 views
5

dotnetrdfを使用してSPARQLエンドポイントを作成しました。私はSPARQLに関連すると初心者です。日付フィールドは、文字列としてMM/DD/YYYYの形式で格納されています。現在、SPARQLクエリで文字列をxsd:datetimeまたはxsd:dateに変換する必要がある日付比較(> <)の要件があります。これを行う方法はありますか?他の選択肢?SPARQLの日付変換

dotnetrdfに日付に関するSPARQLクエリの良い例はありますか?

ありがとうございました。

+1

dotNetRDFは、SPARQL仕様に従って日付ベースのSPARQLクエリをサポートしているため、データはxsd:dateTimeまたはxsd:date形式でなければなりません – RobV

+0

datetimeを文字列リテラルとしてstringとして追加しましたdatetimeを追加するメソッドを見つけます。 – Sandhya

+0

追加に使用するコードは次のとおりです。ILiteralNode Datelit = g.CreateLiteralNode(SampleDateValue); IUriNode DateUri = g.CreateUriNode(UriFactory.Create(http:// url/sampledate ")); g.Assert(新しいトリプル(dotNetRDF、DateUri、Datelit)); xsdにデータを追加する方法は何ですか: – Sandhya

答えて

4

私は答えがあなただと思いますが、おそらくしたくない!

concatstrdtと一緒にSPARQL 1.1 SUBSTR functionと一緒に実行できるはずです。 ?xがあなたのMM/DD/YYYY日付値にバインドされている

strdt(concat(substr(?x, 7, 4), '-', substr(?x, 1, 2), '-', substr(?x, 4, 2), 'T00:00:00'), xsd:dateTime) 

の線に沿って

何か。その関数の戻り値は、正規のxsd:dateTimeであり、タイプミスがないと仮定します。

私がいた場合は、MM/DD/YYYYのデータをすべて抽出し、外部で処理し、追加のデータをxsd:datesまたはxsd:dateTimesとして追加します。