0

セマンティック検索を依頼されたプロジェクトに取り組んでいます。このシナリオは、医師名、患者名、および受診日の 3 つの情報を含むテーブルを含むデータベースです。Doctor、Patient、Date の 3 つのフィールドを含むフォームを作成するように依頼されました。そのため、ユーザーが患者に対応する医師を検索したい場合、または対応する患者またはその日付の医師を検索したい場合、フィールドのいずれかに入力するだけで、データベースから情報を取得できます。文字列操作と情報検索に正規表現を使用して、C# でコーディングを行いました。しかし、主なタスクは、検索が RDF と URI を使用して機能することです。

コーディングの大部分に取り組んできたので、誰かが RDF と URI を使用して検索を作成する方法を手伝ってくれませんか?これに対する解決策はありますか?RDF を C# に統合するにはどうすればよいですか?ドキュメントはありますか?

しかし、上司の要件に従って、RDF で動作する検索を作成するように依頼されました。つまり、患者の詳細 (患者の名前など)、医師の名前、および日付は、患者、医師の詳細を特定する URI の形式になります。およびデータベース内の日付情報なので、誰かが医師や患者などの情報を検索しようとしている場合は、対応するフィールドに自分の名前を入力するだけで情報を取得できます。ご理解いただくために、私のコードの 2 つのスナップショットを添付します。

画像 1: http://img29.imageshack.us/i/15035706.jpg
画像 2: http://img31.imageshack.us/img31/1117/86105845.jpg

最初の画像はデータベースにすべての詳細を入力する場所で、2 番目の画像は検索です。

これが私のプロジェクトの全体的なアイデアです。これを行う方法を教えてもらえますか?

誰かがこれについてできるだけ早く私を助けてくれたら、本当に感謝しています。

4

5 に答える 5

2

LinqToRdfを使用して、必要なことを実行できる場合があります。LinqToRdfは、標準に準拠したSPARQLクエリを生成するプロバイダーを含む2つのLINQクエリプロバイダー(つまり、.NET 3.5以降が必要)を公開します。

これが典型的なLinqToRdfクエリです。これは、LINQ to SQLに精通している場合は、完全に自然なはずです。

MusicDataContext 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-12T02:41:17.647 に答える
2

RDF および URI ベースの検索を行うことは、データが最初に RDF であるかどうかに依存します。そうでない場合は、現在の形式からオンザフライで、または永続的に RDF に変換する必要があります。その場でそれを行うには、リレーショナル データベースを RDF http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/にマップする D2R のようなテクノロジを使用できます。

より OWL ベースの Rowlex http://rowlex.nc3a.nato.int/のようなセマンティック Web C# のものがいくつかあります。または、独自の dotNetRDF ライブラリhttp://www.dotnetrdf.orgがありますが、それはちょうど最初のアルファ リリースなので、まだ実稼働システムにはお勧めしません。アレックスが言及しているように、SemWeb はかなり優れており、特にうまくスケーリングします。唯一の欠点は、.Net 2.0 であるため、LINQ を実行する場合は別のライブラリが必要なことです。

あなたの質問についての質問...

あなたの質問は、セマンティック検索の意味が不明です。実際に RDF 検索を行うつもりですか、それとも誰かが仕様で「セマンティック検索」を指定しただけで、Google で検索して RDF に関する記事を入手したのですか? セマンティック検索は必ずしも RDF の必要性を意味するわけではありません。実際に自然言語検索を実行したい場合もあります。

つまり、「Dr Smith の患者」などを検索する機能が必要であり、検索エンジンはこれを、医師フィールドが Dr Smith に対応する患者の検索として解釈できる必要があるということです。

同様に、私が間違っている可能性もあり、セマンティック Web に関する 2001 年の Scientific American の記事からの TimBL の例と非常によく似たものを作成しようとしている可能性もあります。

編集

したがって、適切な RDF 検索を行いたい場合は、データをデータベースではなく Triple Store に配置し、できれば SPARQL クエリを提供する Triple Store を使用して、クエリ フォームの入力を SPARQL に変換できるようにすることをお勧めします。それを使用してトリプルストアをクエリおよびクエリします。

Talis http://www.talis.comまたは Virtuoso http://www.openlinksw.com/virtuoso/をご覧ください。

SemWeb を使用する場合は、SemWeb が提供する Triple Store を使用できます。

于 2009-07-29T10:42:42.840 に答える
1

RDFSharp ( http://rdfsharp.codeplex.com/ )を試すことをお勧めします。なぜなら、あなたの質問から理解できる限り、SUBJECT=" のような基本的なトリプル ベースの検索を実行できる RDF アプリケーションをすばやくセットアップする必要があるからです。 xxx";PREDICATE=NULL;OBJECT="yyy".
もちろん、もっと強力なツールがありますが、あなたのシナリオでは、それが最も簡単に適用できると思います。

于 2012-10-31T16:32:01.473 に答える
0

LinqToRDF のコミュニティで人気が高まっていると思われる RDF 用の AC# ライブラリ。このプロジェクトは Andrew Matthews によって開始され、2007b から続いていると思います。ソフトウェアは Google COde にアップされており、ここで見つけることができます。

LinkToRDF

ライブラリとともに、Visual Studio に適合し、RDF をグラフィカルにモデル化できる「LinqToRDF デザイナー」と呼ばれるものもあります。

于 2009-07-31T14:14:50.343 に答える
0

あなたが説明するシナリオにセマンティック Web テクノロジを使用するのはやり過ぎです。ただし、.NET および SQL でセマンティック Web 標準を操作するための成熟した .NET ライブラリに興味がある場合は、Intellidimension の製品をぜひご覧ください。

于 2009-07-31T13:45:36.000 に答える