我该如何开始使用SPARQL作为.NET开发人员?我该、开发人员、SPARQL、NET

2023-09-03 15:57:57 作者:我承认我是个烂痞子i

我试图解析古腾堡工程的大型RDF文件。我的团队的另一个成员是pretty的卡住了,尝试过Semweb和Python库。

I'm trying to parse Project Gutenberg's large RDF file. Another member of my team is pretty stuck, having tried Semweb and a python library.

约为RDF有点幼稚,我试着写在Ruby中纯醇'XML解析脚本。我很快意识到这是过于复杂,无法真正发挥作用。

Being a little naive about rdf, I tried to write a plain ol' xml parsing script in Ruby. I soon realized it was too complex to really work.

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

I've downloaded Intellidimension's tool and am thinking of using it.

我想我不知道如何使用SPARQL。它似乎有一个Java的语法分析器叫耶拿。有没有类似的东西在.NET?

I guess I don't understand how to use SPARQL. It seems there is a parser in Java called Jena. Is there something like that in .NET?

抱歉明显的问题....我只是不知道在哪里写SPARQL查询。有一个库,将允许我使用字符串,类似于Data.SQlClient建立一个查询,然后对一些SPARQL处理器上执行?

Sorry for the obvious question....I'm just not sure where to write the SPARQL queries. Is there a library that would allow me to build a query using strings, similar to Data.SQlClient and then execute against some Sparql processor?

你怎么执行SPARQL反对?

What do you execute Sparql against?

推荐答案

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

Another option in .Net is dotNetRDF (disclaimer - I am the lead developer on this project)

它具有优势SemWeb是当前维护,并有积极的持续发展,再加上它包括了许多新的语义Web技术如RDFa与支持SPARQL 1.1

It has the advantage over SemWeb that is is currently maintained and has active ongoing development plus it includes support for many of the newer Semantic Web technologies such as RDFa and SPARQL 1.1

对战Intellidimension所以它具有完全免费的(挑选GPL,LGPL或MIT自己的许可证取决于你的需求)

Versus Intellidimension it has the advantage of being totally free (pick your own license from GPL, LGPL or MIT depending on your needs)

回复:SPARQL

无论SemWeb和dotNetRDF包括SPARQL解析器和引擎执行查询。 SemWeb的是基于一个古老的基于Java的SPARQL引擎,它早已被所取代由耶拿框架大大优于ARQ引擎的IKVM端口。 dotNetRDF有利维坦发动机具有关闭功能平价ARQ(虽然不一定是高性能的某些类型的查询)。

Both SemWeb and dotNetRDF include SPARQL parsers and engines for executing queries. SemWeb's is based on an IKVM port of an old Java based SPARQL engine which has long since by superceded by the much superior ARQ engine in the Jena framework. dotNetRDF has the Leviathan engine which has close feature parity to ARQ (though not necessarily as performant for some kinds of queries).

这两个ARQ(耶拿)和利维坦(dotNetRDF)支持大多数新兴SPARQL 1.1规范。如果现有的SQL知识,那么你很可能希望使用支持该引擎,因为这增加了很多的SQL的熟悉的功能到SPARQL语言,如聚集(COUNT,MAX等),GROUP BY,HAVING,项目前pressions(FN:??CONCAT(X,Y)为:Z?)

Both ARQ (Jena) and Leviathan (dotNetRDF) support the majority of the emerging SPARQL 1.1 specification. If you have existing knowledge of SQL then you most likely want to use an engine which supports this as this adds many of the familiar features of SQL into the SPARQL language e.g. Aggregates (COUNT, MAX etc), GROUP BY, HAVING, Project Expressions (fn:concat(?x, ?y) AS ?z)