什么是.net的优秀RDF库?

我正在寻找一个可以处理RDF和OWL数据的库。

到目前为止,我发现:

  • semweb (我知道没有猫头鹰的支持)
  • rowlex (更多’浏览器’应用程序)

你的建议:

  • LinqToRdf (非常有趣,谢谢!)

ROWLEX实际上非常酷( 在内部使用SemWeb )。 它不仅仅是一个浏览器应用程序,而是一个用C#编写的SDK。 如果您使用ROWLEX,则不再直接与RDF的三种交互(尽管可以),但是提供面向对象的外观。 有两种主要的使用场景:

  1. 业务类优先:您拥有.NET业务类。 您可以声明性地向类添加属性,就像使用XML序列化属性一样。 在此之后,ROWLEX可以提取与您的业务类相对应的本体和/或可以将业务对象序列化为RDF。
  2. 本体优先:您拥有自己的本体, ROWLEX为您生成.NET类,您可以使用它来构建/浏览RDF文档。 最棒的是这些自动生成的类比代码生成器的典型结果要好得多。 通过提供隐式和显式强制转换操作符来覆盖整个inheritance图,它们使用起来很舒服并且模仿OWL的多重inheritance特性。

典型的用法是Ontology第一种方法。 例如,假设您的本体描述了以下多重inheritance方案:

汽车是SubClassOf车辆

Car isSubClassOf CompanyAsset

使用ROWLEX,您将获得Car,Vehicle和CompanyAsset的.NET类。 以下C#代码将编译没有任何问题:

RdfDocument rdfDoc = new RdfDocument(); Car car = new Car("myCarUri", rdfDoc); Vehicle vehicle = car; // implicit casting CompanyAsset companyAsset = car; // implicit casting vehicle.WheelCount = 4; companyAsset.MonetaryValue = 15000; Console.WriteLine(rdfDoc.ToN3()); 

这将打印:

 myCarUri typeOf Car myCarUri WheelCount 4 myCarUri MonetaryValue 15000 

“car”业务对象在RdfDocument中表示为三元组。 自动生成的C#/ VB类表现为视图。 您可以在同一个业务对象上拥有多个C#视图 – 每个视图都是完全不同的类型。 当您与这些视图交互时,实际上是修改了RdfDocument。

BrightstarDB是一个原生的.NET NoSQL RDF三重存储,具有SPARQL支持,一个支持LINQ和OData的.NETentity framework。 它对于开发人员和开源项目是免费的,并且用于商业用途的运行时成本很小。

BrightstarDB提供三个级别的API。

  1. SPARQL查询和简单事务API。
  2. 一个通用对象api,它将三元组的集合分组为数据对象
  3. Visual Studio集成,它接受接口定义并生成强类型.NET域模型,该模型将其数据作为RDF存储在BrightstarDB实例中。 .NET模型具有LINQ支持,也可以作为OData服务公开。

所有BrightstarDB文档都在线,该软件可从http://www.brightstardb.com免费注册下载

我开发了一个开源库dotNetRDF – OWL支持目前有些限制,但可能不适合您的用途

我几个月前研究过这个问题。 我能找到的一个更有趣的项目是: http : //www.hookedonlinq.com/linqtordf.ashx

在Codeplex上尝试RDFSharp 。 似乎年轻但很有希望。