我正在寻找一个可以处理 RDF 和 OWL 数据的库。
到目前为止我已经发现:
-
semweb http://razor.occams.info/code/semweb/(据我所知,没有猫头鹰支持)
-
rowlex http://rowlex.nc3a.nato.int/HowToUse.aspx(更多的是“浏览器”应用程序)
您的建议:
-
LinqToRdf https://code.google.com/p/linqtordf/(非常有趣,谢谢马克!)
ROWLEX http://rowlex.nc3a.nato.int实际上非常酷(使用SemWeb http://razor.occams.info/code/semweb/内部)。它不仅仅是一个浏览器应用程序,而是一个用 C# 编写的 SDK。如果您使用 ROWLEX,您就不再直接与 RDF 的三元组交互(尽管可以),而是提供面向对象的外观和感觉。主要有两种使用场景:
-
商务舱头等舱:您有 .NET 商业课程。您可以像使用 XML 序列化属性一样以声明方式向类添加属性。此后,ROWLEX 可以提取与您的业务类相对应的本体和/或可以将您的业务对象序列化为 RDF。
-
本体第一:你有你的本体论并且ROWLEX http://rowlex.nc3a.nato.int为您生成可用于构建/浏览 RDF 文档的 .NET 类。很棒的是,这些自动生成的类比代码生成器的典型结果要好得多。它们通过提供隐式和显式转换运算符来覆盖整个继承图,可以轻松使用和模仿 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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)