Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RDF与C的集成#_C#_Uri_Rdf_Semantics_Semantic Web - Fatal编程技术网

C# RDF与C的集成#

C# RDF与C的集成#,c#,uri,rdf,semantics,semantic-web,C#,Uri,Rdf,Semantics,Semantic Web,我正在做一个项目,我被要求做语义搜索。该场景是一个数据库,其表包含3条信息:医生姓名、患者姓名和就诊日期。我被要求创建一个包含3个字段的表单:医生、患者和日期。因此,当用户想要搜索患者的对应医生或对应患者的医生或他们的日期时,他们只需输入任意字段即可从数据库中检索信息。我用C语言编写代码,使用正则表达式进行字符串操作和信息检索。但主要任务是搜索应该使用RDF和URI 既然我已经完成了大部分的编码工作,有人能帮助我如何使用RDF和URI创建搜索吗?有什么解决方案吗?我如何将RDF集成到C#中?有什

我正在做一个项目,我被要求做语义搜索。该场景是一个数据库,其表包含3条信息:医生姓名、患者姓名和就诊日期。我被要求创建一个包含3个字段的表单:医生、患者和日期。因此,当用户想要搜索患者的对应医生或对应患者的医生或他们的日期时,他们只需输入任意字段即可从数据库中检索信息。我用C语言编写代码,使用正则表达式进行字符串操作和信息检索。但主要任务是搜索应该使用RDF和URI

既然我已经完成了大部分的编码工作,有人能帮助我如何使用RDF和URI创建搜索吗?有什么解决方案吗?我如何将RDF集成到C#中?有什么文档吗

但根据我的主管的要求,他要求我建立一个与RDF一起工作的搜索,我的意思是患者的详细信息(例如患者姓名)、医生姓名和日期将以URI的形式存在,该URI可以定位患者的详细信息,数据库中的医生和日期信息,因此,如果任何人试图搜索任何信息,如医生或患者,只需在相应字段中输入他们的姓名并检索信息。我附上2个我的代码快照供您理解

图1:
图2:

第一个图像是我将所有细节输入数据库的地方,第二个图像是搜索

这是关于我的项目的总体想法,你能建议我如何做到这一点吗


如果有人能尽快帮助我,我将非常感谢。

进行基于RDF和URI的搜索首先取决于您的数据是否在RDF中。如果不是,您必须动态或永久地将其从当前形式转换为RDF。要即时完成这项工作,您可以使用D2R之类的技术,将关系数据库映射到RDF

还有一些关于语义Web C#的东西,比如Rowlex,它更基于OWL,或者有我自己的dotNetRDF库,但这只是第一个Alpha版本,所以我还不推荐它用于任何生产系统。Alex提到的SemWeb非常好,可扩展性特别好——唯一的缺点是它是.NET2.0,所以如果您想使用它进行LINQ,您需要一个单独的库

关于你的问题的一个问题

你的问题不清楚语义搜索是什么意思,你确定你真的想做RDF搜索,还是有人只是在规范中指定了“语义搜索”,然后你在谷歌上搜索并得到了关于RDF的文章?语义搜索并不一定意味着需要RDF,它可能是您实际上想要进行自然语言搜索

我的意思是,您可能希望能够搜索“Smith医生的患者”,并且您的搜索引擎应该能够将其解释为搜索医生字段对应于Smith医生的患者

同样,我也可能是错的,你可能确实试图构建一些听起来非常像TimBL 2001年在语义网上发表的《科学美国人》文章中的例子

编辑

因此,如果您确实希望进行适当的RDF搜索,那么我建议您将数据放入三重存储而不是数据库,最好使用提供SPARQL查询的三重存储,以便您可以将查询表单上的输入转换为SPARQL查询,并用它查询三重存储

也许可以看看塔利斯或大师


如果您决定使用SemWeb,那么您可以使用它提供的三重存储。

执行基于RDF和URI的搜索首先取决于您的数据是否在RDF中。如果不是,您必须动态或永久地将其从当前形式转换为RDF。要即时完成这项工作,您可以使用D2R之类的技术,将关系数据库映射到RDF

还有一些关于语义Web C#的东西,比如Rowlex,它更基于OWL,或者有我自己的dotNetRDF库,但这只是第一个Alpha版本,所以我还不推荐它用于任何生产系统。Alex提到的SemWeb非常好,可扩展性特别好——唯一的缺点是它是.NET2.0,所以如果您想使用它进行LINQ,您需要一个单独的库

关于你的问题的一个问题

你的问题不清楚语义搜索是什么意思,你确定你真的想做RDF搜索,还是有人只是在规范中指定了“语义搜索”,然后你在谷歌上搜索并得到了关于RDF的文章?语义搜索并不一定意味着需要RDF,它可能是您实际上想要进行自然语言搜索

我的意思是,您可能希望能够搜索“Smith医生的患者”,并且您的搜索引擎应该能够将其解释为搜索医生字段对应于Smith医生的患者

同样,我也可能是错的,你可能确实试图构建一些听起来非常像TimBL 2001年在语义网上发表的《科学美国人》文章中的例子

编辑

因此,如果您确实希望进行适当的RDF搜索,那么我建议您将数据放入三重存储而不是数据库,最好使用提供SPARQL查询的三重存储,以便您可以将查询表单上的输入转换为SPARQL查询,并用它查询三重存储

也许可以看看塔利斯或大师


如果您决定使用SemWeb,那么您可以只使用它提供的三重存储。

在您描述的场景中使用语义web技术是过分的。但是,如果您对使用.NET和SQL中的语义Web标准的成熟.NET库感兴趣
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);
}