F# を使用して基本的な .NET コレクション クラスを使用してメモリ内セマンティック Web トリプル ストアを実装する効果的な手段は何ですか?
既にこれを行っている F# の例またはプロジェクトはありますか?
F# を使用して基本的な .NET コレクション クラスを使用してメモリ内セマンティック Web トリプル ストアを実装する効果的な手段は何ですか?
既にこれを行っている F# の例またはプロジェクトはありますか?
独自の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をバッキングストアとしてサポートしています。
シンプルな 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);
}
Aduna の Sesame フレームワークは .NET に移植されています。これは、F# を使用して Sesame Http リポジトリに接続する方法を示すサンプル コードです: http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/309-Using-F-to-connect-to -a-ゴマ-repository.html
これがあなたの質問に直接答えないことはわかっていますが、独自のトリプルストアを開発する代わりに、安定した実績のあるトリプルストアである 4store を使用して、.Net でクライアントを作成することができます。
関連する質問