【问题标题】:What is a good RDF library for .net? [closed]什么是 .net 的好的 RDF 库? [关闭]
【发布时间】:2008-10-27 18:11:26
【问题描述】:

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

到目前为止,我发现:

  • semweb(据我所知不支持猫头鹰)
  • rowlex(更像是一个“浏览器”应用程序)

您的建议:

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

【问题讨论】:

    标签: c# .net rdf semantic-web owl


    【解决方案1】:

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

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

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

    汽车是车辆的子类

    汽车是SubClassOf CompanyAsset

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

    【讨论】:

      【解决方案2】:

      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.comhttp://www.brightstardb.com

      【讨论】:

      • 最好查看codecanyon.net/item/…。它是付费的,但支持多种格式,如 RSS、RDF 和 ATOM。使用 asp.net 4.0 轻松集成和编写。
      • 和brightstarDB,尽管它很好,但有很多mvvm模式的错误。或者至少,我的公司遇到了很多 mvvm 框架与 brightstar 结合的错误
      • Brightstardb es 对磁盘空间的使用非常非常非常低效...我做了几次测试后丢弃...尝试 dotNetRdf
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2010-09-05
          • 2010-12-31
          • 2011-01-27
          • 2011-04-07
          • 2010-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          相关资源
          最近更新 更多