我如何开始使用Sparql作为.NET开发人员?

时间:2010-12-05 01:14:37

标签: .net sparql

我正在尝试解析Project Gutenberg的大型RDF文件。我的团队的另一名成员非常困难,尝试过Semweb和python库。

对rdf有点天真,我试着在Ruby中编写一个简单的'xml解析脚本'。我很快就意识到它真的太复杂了。

我已经下载了Intellidimension的工具,并且正在考虑使用它。

我想我不明白如何使用SPARQL。似乎Java中有一个名为Jena的解析器。在.NET中有类似的东西吗?

很抱歉这个显而易见的问题....我只是不确定在哪里编写SPARQL查询。是否有一个库允许我使用字符串构建查询,类似于Data.SQlClient然后针对某些Sparql处理器执行?

你对Sparql执行什么操作?

4 个答案:

答案 0 :(得分:7)

.Net中的另一个选项是dotNetRDF(免责声明 - 我是该项目的首席开发人员)

它具有优于SemWeb的优势,目前正在维护并且具有活跃的持续开发,并且它包括对许多较新的语义Web技术的支持,例如RDFa和SPARQL 1.1

与Intellidimension相比,它具有完全免费的优势(根据您的需要从GPL,LGPL或MIT中选择您自己的许可证)

Re:SPARQL

SemWeb和dotNetRDF都包含用于执行查询的SPARQL解析器和引擎。 SemWeb基于旧的基于Java的SPARQL引擎的IKVM端口,该引擎早已被Jena框架中优秀的ARQ引擎取代。 dotNetRDF有Leviathan引擎,它具有与ARQ相近的特征(尽管不一定是某些查询的性能)。

ARQ(Jena)和Leviathan(dotNetRDF)都支持大部分新兴的SPARQL 1.1规范。如果你已经掌握了SQL的知识,那么你很可能想要使用支持它的引擎,因为这会将许多熟悉的SQL特性添加到SPARQL语言中,例如:聚合(COUNT,MAX等),GROUP BY,HAVING,项目表达式(fn:concat(?x,?y)AS?z)

答案 1 :(得分:3)

可行的方法是使用SemWeb Library将RDF文件解析到内存中,然后再解析到数据库中。您还可以导入相关的本体。

Semweb有一个嵌入式SPARQL库,因此您可以在数据库上运行SPARQL查询。如果您不熟悉SPARQL,可以使用LINQ

如果您是Semantic Web Technologies的新手,我建议您先阅读Semantic Web Primer(以书本和PowerPoint文件的形式提供)。还有一个不错的SPARQL Tutorial on the Jena Website

答案 2 :(得分:2)

另一个选项是dotSesame库。这是Java RDF框架Sesame的IKVM端口。它包括RDF解析器,编写器,SPARQL查询引擎和reasoners。

答案 3 :(得分:0)

使用RDFSharp(http://rdfsharp.codeplex.com/)您不需要了解SPARQL,因为您可以流畅地创建SPARQL查询并将其应用于图形和存储。所有这些都没有编写一行SPARQL查询。