0
A
回答
0
ROWLEX不是推理者。它具有實現推理器的一些功能 - 對於C#類的生成非常必要 - 但其API不是爲此設計的。但是,仍然有希望,而不是最優雅的解決方案。
我假設你有一個本體論,並且你使用OwlGrinder.exe生成了.NET類。因此,默認情況下,爲本體中的每個對應的OWL類生成兩個關聯的.NET類:一個輕類和一個完整類。我們只打算使用light類。我們只是遍歷所有的.NET類,並過濾掉是否是子類。這就對了。
string baseClassUri = "http://myontology/2012/10#mybaseclass";
Assembly asm = GetMyAssemblyGeneratedByOwlGrinder();
Type[] subClasses = (from type in asm.GetTypes()
where type.IsSubclassOf(typeof(NC3A.SI.Rowlex.OwlThing))
// selecting subclasses only
let attributes = type.GetCustomAttributes(typeof(NC3A.SI.Rowlex.SubClassOfAttribute), false)
from attr in attributes
let subClassAttr = attr as NC3A.SI.Rowlex.SubClassOfAttribute
where subClassAttr.TypeUri == baseClassUri
// selecting light classes only
let lightAttributes = type.GetCustomAttributes(typeof(NC3A.SI.Rowlex.LightVersionAttribute), false)
from lightAttr in lightAttributes
let lightAttr_ = lightAttr as NC3A.SI.Rowlex.LightVersionAttribute
where lightAttr_.LightVersion == true
select type).ToArray();
我沒有嘗試代碼,它可能是越野車。但它確實表明了這個想法。每個生成的類都添加了一堆屬性。這些包括它們在SubClassOfAttribute中的基類,以及它們是使用LightVersionAttribute的輕類還是完整類。您可以根據這些屬性篩選出您感興趣的類。
相關問題
- 1. ROWLEX:具有相同屬性名稱的類不起作用:ROWLEX
- 2. 查找類型,使用的Windows API
- 3. 在ROWLEX
- 4. 用於查找域的類別的API
- 5. 本體論Rowlex
- 6. 通過Rowlex
- 7. 如何使用相機本體在ROWLEX
- 8. 使用維基百科API查找文章的主要類別
- 9. 使用JSON API查找DBpedia的光澤
- 10. GStreamer:使用類型查找
- 11. Rowlex的一些功能
- 12. Rowlex - 獲得唯一的「根」
- 13. 如何使用rowlex提取有關owl文件的類和屬性的信息?
- 14. 找不到類(使用lastfm api)Laravel 4
- 15. API類未找到使用Composer
- 16. 使用Google Earth API查找最高點?
- 17. 使用EC2 API查找EC2狀態
- 18. 使用yelp API查找商業評論
- 19. Logo查找API?
- 20. 使用jquery查找類的高度
- 21. Java(Android):查找未使用的類
- 22. Resharper-查找所有未使用的類
- 23. Spotify API - 查找facebook用戶
- 24. 查找類用法
- 25. Rowlex- dateTime檢索問題
- 26. ROWLEX 2.1是否支持OWL2?
- 27. 在使用GPL的SemWeb時,ROWLEX如何獲得L-GPL許可?
- 28. 如何屬性的數組自定義類型ROWLEX
- 29. 使用Linkedin開發者的用戶名API查找用戶ID
- 30. 查找Jar名稱使用類名稱