14

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

到目前为止,我发现:

  • semweb(我所知道的不支持猫头鹰)
  • rowlex(更多的是“浏览器”应用程序)

您的建议:

  • LinqToRdf(非常有趣,谢谢马克!)
4

5 回答 5

12

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

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

典型的用法是本体优先方法。例如,假设您的本体描述了以下多重继承场景:

汽车是车辆的子类

汽车是公司资产的子类

使用 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

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

于 2009-02-13T12:27:04.090 回答
10

BrightstarDB 是一个原生的 .NET NoSQL RDF 三元存储,支持 SPARQL,一个支持 LINQ 和 OData 的 .NET 实体框架。它对开发人员和开源项目是免费的,商业用途的运行时成本很小。

BrightstarDB 提供三个级别的 API。

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

所有 BrightstarDB 文档均在线,无需注册即可在http://www.brightstardb.com下载软件

于 2012-03-01T14:19:48.900 回答
7

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

于 2010-08-23T14:43:38.303 回答
2

几个月前,我对此进行了研究。我能找到的更有趣的项目之一是:http: //www.hookdonlinq.com/linqtordf.ashx

于 2008-10-27T18:30:37.323 回答
2

在 Codeplex尝试RDFSharp。看起来很年轻,但很有前途。

于 2012-07-09T21:11:21.787 回答