我正在寻找一个可以处理RDF和OWL数据的图书馆。
到目前为止我发现:
semweb(据我所知,没有owl支持)
rowlex(更多的“浏览器”应用程序)
您的建议:
LinqToRdf(非常有趣,谢谢马克!)
最佳答案
ROWLEX实际上非常酷(内部使用SemWeb)。它不仅仅是一个浏览器应用,而是一个用c编写的sdk。如果使用RoLeX,则不再直接与RDF的联系人交互(虽然您可以),但提供面向对象的外观和感觉。主要有两种使用场景:
商务舱优先:你有你的.NET商务舱。声明性地将属性添加到类中,与处理XML序列化属性类似。在此之后,RoLeX可以提取与业务类对应的本体和/或将业务对象序列化为RDF。
本体论第一:你有你的本体和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
“car”业务对象在rdfdocument中表示为三元组。自动生成的c/vb类表现为视图。在同一个业务对象上,可以有几个C视图,每个视图都是完全不同的类型。当您与这些视图交互时,实际上是在修改rdfdocument。