4

F# を使用して基本的な .NET コレクション クラスを使用してメモリ内セマンティック Web トリプル ストアを実装する効果的な手段は何ですか?

既にこれを行っている F# の例またはプロジェクトはありますか?

4

5 に答える 5

4

独自のSQLベースのトリプルストアを提供するC#ライブラリであるSemWebもあります-http: //razor.occams.info/code/semweb/

私はdotNetRDFと呼ばれるRDF用の新しいC#ライブラリに取り組んでおり、最新のAlphahttp://www.dotnetrdf.orgをリリースしたばかりです

これは、spoon16が示したものと同等のプログラムです。

open System
open VDS.RDF
open VDS.RDF.Parsing
open VDS.RDF.Query

//Get a Graph and fill it from a file
let g = new Graph()
let parser = new TurtleParser()
parser.Load(g, "test.ttl")

//Place into a Triple Store and query
let store = new TripleStore()
store.Load(g)
let results = store.ExecuteQuery("SELECT ?s ?p ?o WHERE {?s ?p ?o} LIMIT 10") :?> SparqlResultSet

//Output the results
Console.WriteLine(results.Count.ToString() ^ " Results")
for result in results.Results do
  Console.WriteLine(result.ToString())
done

//Wait for user to hit enter so they can see the results
Console.ReadLine() |> ignore

私のライブラリは現在、自分のSQLデータベース、AllegroGraph、4store、Joseki、Sesame、Talis、Virtuosoをバッキングストアとしてサポートしています。

于 2009-09-28T10:57:34.890 に答える
3

シンプルな VS.NET ホステッド モデリング ツールに加えて、インメモリ データベースを処理する際に完全な LINQ クエリ プロバイダーとラウンドトリップ データを提供するLinqToRdfを確認してください。

var ctx = new MusicDataContext(@"http://localhost/linqtordf/SparqlQuery.aspx");
var q = (from t in ctx.Tracks
     where t.Year == "2006" &&
           t.GenreName == "History 5 | Fall 2006 | UC Berkeley"
     orderby t.FileLocation
     select new {t.Title, t.FileLocation}).Skip(10).Take(5);

foreach (var track in q)
{
   Console.WriteLine(track.Title + ": " + track.FileLocation);
} 
于 2009-10-12T03:07:28.153 に答える
1

Aduna の Sesame フレームワークは .NET に移植されています。これは、F# を使用して Sesame Http リポジトリに接続する方法を示すサンプル コードです: http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/309-Using-F-to-connect-to -a-ゴマ-repository.html

于 2010-12-27T19:39:06.720 に答える
0

これがあなたの質問に直接答えないことはわかっていますが、独自のトリプルストアを開発する代わりに、安定した実績のあるトリプルストアである 4store を使用して、.Net でクライアントを作成することができます。

関連する質問

于 2009-09-06T21:55:54.713 に答える