什么是适合 .net 的优秀 RDF 库? [关闭]

2024-05-08

我正在寻找一个可以处理 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 的三元组交互(尽管可以),而是提供面向对象的外观和感觉。主要有两种使用场景:

  1. 商务舱头等舱:您有 .NET 商业课程。您可以像使用 XML 序列化属性一样以声明方式向类添加属性。此后,ROWLEX 可以提取与您的业务类相对应的本体和/或可以将您的业务对象序列化为 RDF。
  2. 本体第一:你有你的本体论并且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(使用前将#替换为@)

什么是适合 .net 的优秀 RDF 库? [关闭] 的相关文章

随机推荐