我正在寻找一个可以处理 RDF 和 OWL 数据的库。
到目前为止,我发现:
您的建议:
- LinqToRdf(非常有趣,谢谢马克!)
ROWLEX实际上很酷(内部使用SemWeb)。它不仅仅是一个浏览器应用程序,而是一个用 C# 编写的 SDK。如果您使用 ROWLEX,您将不再直接与 RDF 的三元组交互(尽管您可以),而是提供面向对象的外观和感觉。主要有两种使用场景:
典型的用法是本体优先方法。例如,假设您的本体描述了以下多重继承场景:
汽车是车辆的子类
汽车是公司资产的子类
使用 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。
BrightstarDB 是一个原生的 .NET NoSQL RDF 三元存储,支持 SPARQL,一个支持 LINQ 和 OData 的 .NET 实体框架。它对开发人员和开源项目是免费的,商业用途的运行时成本很小。
BrightstarDB 提供三个级别的 API。
所有 BrightstarDB 文档均在线,无需注册即可在http://www.brightstardb.com下载软件
我制作了一个开源库dotNetRDF - OWL 支持目前有些有限,但可能不适合您的使用
几个月前,我对此进行了研究。我能找到的更有趣的项目之一是:http: //www.hookdonlinq.com/linqtordf.ashx
在 Codeplex尝试RDFSharp。看起来很年轻,但很有前途。