当前位置:  开发笔记 > 编程语言 > 正文

什么是.net的优秀RDF库?

如何解决《什么是.net的优秀RDF库?》经验,为你挑选了3个好方法。

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

到目前为止,我发现:

semweb(我所知道的没有猫头鹰支持)

rowlex(更多'浏览器'应用程序)

你的建议:

LinqToRdf(非常有趣,谢谢!)

Mr. Lame.. 10

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

    业务类优先:您拥有.NET业务类.您可以声明性地向类添加属性,就像使用XML序列化属性一样.在此之后,ROWLEX可以提取与您的业务类相对应的本体和/或可以将业务对象序列化为RDF.

    本体优先:您拥有自己的本体,ROWLEX为您生成.NET类,您可以使用它来构建/浏览RDF文档.最棒的是,这些自动生成的类比代码生成器的典型结果要好得多.通过提供隐式和显式转换运算符来覆盖整个继承图,它们使用起来很舒服并且模仿OWL的多重继承特性.

典型的用法是Ontology第一种方法.例如,假设您的本体描述了以下多重继承方案:

汽车是SubClassOf车辆

Car isSubClassOf 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

"car"业务对象在RdfDocument中表示为三元组.自动生成的C#/ VB类表现为视图.您可以在同一业务对象上拥有多个C#视图 - 每个视图都是完全不同的类型.当您与这些视图交互时,实际上是在修改RdfDocument.



1> Mr. Lame..:

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

    业务类优先:您拥有.NET业务类.您可以声明性地向类添加属性,就像使用XML序列化属性一样.在此之后,ROWLEX可以提取与您的业务类相对应的本体和/或可以将业务对象序列化为RDF.

    本体优先:您拥有自己的本体,ROWLEX为您生成.NET类,您可以使用它来构建/浏览RDF文档.最棒的是,这些自动生成的类比代码生成器的典型结果要好得多.通过提供隐式和显式转换运算符来覆盖整个继承图,它们使用起来很舒服并且模仿OWL的多重继承特性.

典型的用法是Ontology第一种方法.例如,假设您的本体描述了以下多重继承方案:

汽车是SubClassOf车辆

Car isSubClassOf 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

"car"业务对象在RdfDocument中表示为三元组.自动生成的C#/ VB类表现为视图.您可以在同一业务对象上拥有多个C#视图 - 每个视图都是完全不同的类型.当您与这些视图交互时,实际上是在修改RdfDocument.



2> 小智..:

BrightstarDB是一个原生的.NET NoSQL RDF三重存储,具有SPARQL支持,一个支持LINQ和OData的.NET实体框架.它对于开发人员和开源项目是免费的,并且用于商业用途的运行时成本很小.

BrightstarDB提供三个级别的API.

    SPARQL查询和简单事务API.

    一个通用对象api,它将三元组的集合分组为数据对象

    Visual Studio集成,它接受接口定义并生成强类型.NET域模型,该模型将其数据作为RDF存储在BrightstarDB实例中..NET模型具有LINQ支持,也可以作为OData服务公开.

所有BrightstarDB文档都在线,该软件可从http://www.brightstardb.com免费注册下载



3> RobV..:

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

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有