2008-10-27 41 views

回答

9

ROWLEX實際上是非常酷(使用SemWeb內部)。它不僅僅是一個瀏覽器應用程序,而是一個用C#編寫的SDK。如果你使用ROWLEX,你不會直接與RDF的瑣事交互(儘管你可以),但是給出了一個面向對象的外觀&的感覺。主要有兩種使用場景:

  1. 公務艙第一:你有你的.NET業務類。您可以像使用XML序列化屬性一樣,向類中聲明性地添加屬性。在此之後,ROWLEX可以提取與您的業務類相對應的本體,和/或可以將您的業務對象序列化爲RDF。
  2. 本體第一:你有你的本體和ROWLEX爲你生成.NET類,你可以用它來構建/瀏覽RDF文檔。重要的是這些自動生成的類比代碼生成器的典型結果要好得多。通過提供隱式和顯式的轉換運算符來覆蓋整個繼承圖,他們很容易使用和模仿OWL的多重繼承特性。

典型的用法是本體論的第一種方法。例如,讓我們說,你的本體描述以下多的傳承情況:

汽車isSubClassOf車輛

汽車isSubClassOf CompanyAsset

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

「車」業務對象是RdfDocument內表示爲三元組。自動生成的C#/ VB類表現爲視圖。您可以在同一個業務對象上擁有多個C#視圖 - 每種視圖都是完全不同的類型。當您與這些視圖進行交互時,您實際上正在修改RdfDocument。

2

我在幾個月前就研究過了。更有趣 項目,我能找到的是: http://www.hookedonlinq.com/linqtordf.ashx

+0

現在確實聽起來很有趣,謝謝! – kitsune 2008-10-27 18:36:57

+0

正確的鏈接是http://code.google.com/p/linqtordf – 2009-10-12 02:49:05

8

我產生一個開源庫dotNetRDF - OWL支持目前比較有限的,但這樣可能不適合您的用途

理想
9

BrightstarDB是土生土長的,.NET的NoSQL RDF三元組存儲庫,以支持SPARQL,一個.NET支持LINQ和OData的實體框架。它對開發人員和開源項目是免費的,並且運行成本很低,適合商業用途。

BrightstarDB提供三個級別的API。

  1. SPARQL查詢和簡單事務API。
  2. 將三元組集合分組到數據對象中的通用對象api
  3. 一個Visual Studio集成,它接受接口定義並生成一個將其數據存儲爲RDF的強類型.NET域模型,並將其存儲在BrightstarDB實例中。 .NET模型具有LINQ支持,也可以作爲OData服務公開。

所有BrightstarDB文檔在線和軟件可供下載,沒有登記在http://www.brightstardb.com

2

在Codeplex上嘗試RDFSharp。看起來很年輕但很有前途。