代码之家  ›  专栏  ›  技术社区  ›  kitsune

什么是适合.NET的RDF库?[关闭]

  •  11
  • kitsune  · 技术社区  · 16 年前

    我在找一个能处理RDF和OWL数据的库。

    到目前为止,我发现:

    • semweb (据我所知,没有猫头鹰的支持)
    • rowlex (更多“浏览器”应用程序)

    您的建议:

    5 回复  |  直到 9 年前
        1
  •  9
  •   Mr. Lame    16 年前

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

    1. 头等舱: 你有你的.NET商务课程。声明性地向类中添加属性,与使用XML序列化属性类似。之后,rowlex可以提取与业务类对应的本体,和/或将业务对象序列化为RDF。
    2. 本体论第一: 你有你的本体论和 罗莱克斯 为您生成可用于生成/浏览RDF文档的.NET类。最重要的是,这些自动生成的类远比代码生成器的典型结果要好。通过提供隐式和显式的强制转换操作符来覆盖整个继承图,它们可以很方便地使用和模拟OWL的多重继承特性。

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

    车辆问题分类

    汽车问题公司资产

    使用rowlex,您将获得用于汽车、车辆和公司设置的.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。

        2
  •  9
  •   Graham Moore    13 年前

    BrightStarDB是一个原生的.NET NoSQL RDF三层存储,支持SPARQL,支持LINQ和OData的.NET实体框架。它对于开发人员和开放源码项目是免费的,对于商业用途来说运行时成本很低。

    BrightStarDB提供三级API。

    1. SPARQL查询和简单事务API。
    2. 将三元组集合分组为数据对象的通用对象API
    3. 采用接口定义并生成强类型.NET域模型的Visual Studio集成,该模型将数据作为RDF存储在BrightStarDB实例中。.NET模型具有LINQ支持,也可以作为OData服务公开。

    所有BrightStarDB文档均在线,软件可下载,无需注册。 http://www.brightstardb.com

        3
  •  8
  •   RobV    14 年前

    我生成一个开放源代码库 dotNetRDF -目前,猫头鹰的支持有限,因此可能不适合您的使用。

        4
  •  2
  •   IAdapter    16 年前

    几个月前我研究过这个。其中一个更有趣 我能找到的项目是: http://www.hookedonlinq.com/linqtordf.ashx

        5
  •  2
  •   Bob Kaufman    13 年前

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