1
A
回答
5
適當Jena的方法是OntClass.listDeclaredProperties
相關聯的對象性質。有一些細微差別需要注意; Jena RDF frames how-to詳細解釋。
更新
好了,我看着你的代碼示例,並閱讀你的描述,我怕我不明白你想要做什麼。我所做的是重新編寫代碼樣本,以便它的東西,我基於評論你的描述猜測你可能想,:
package test;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
public class LeandroTest
{
public static String NS = "http://www.owl-ontologies.com/TestProject.owl#";
public static void main(String[] args) {
OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
FileManager.get().readModel(m, "./src/main/resources/project-test.owl");
OntClass equipe = m.getOntClass(NS + "Equipe");
OntProperty nome = m.getOntProperty(NS + "nome");
for (ExtendedIterator<? extends OntResource> instances = equipe.listInstances(); instances.hasNext();) {
OntResource equipeInstance = instances.next();
System.out.println("Equipe instance: " + equipeInstance.getProperty(nome).getString());
// find out the resources that link to the instance
for (StmtIterator stmts = m.listStatements(null, null, equipeInstance); stmts.hasNext();) {
Individual ind = stmts.next().getSubject().as(Individual.class);
// show the properties of this individual
System.out.println(" " + ind.getURI());
for (StmtIterator j = ind.listProperties(); j.hasNext();) {
Statement s = j.next();
System.out.print(" " + s.getPredicate().getLocalName() + " -> ");
if (s.getObject().isLiteral()) {
System.out.println(s.getLiteral().getLexicalForm());
}
else {
System.out.println(s.getObject());
}
}
}
}
}
}
這讓下面的輸出,通過先上市所有的資源rdf:type
#Equipe
,然後對於每一個它列出的模型中的資源鏈接到即Equipe,然後爲那些鏈接的資源列出所有的RDF屬性。我認爲這不是一件特別有用的事情,但希望它能向您展示一些在Jena中遍歷RDF圖的模式。
Equipe instance: Erica
Equipe instance: Etiene
http://www.owl-ontologies.com/TestProject.owl#EtapaExecucao_01
EtapaExecucao_DataModificao -> 2010-03-29T10:54:05
caso_de_teste -> http://www.owl-ontologies.com/TestProject.owl#CasoDeTeste_01
EtapaExecucao_StatusTeste -> Passou
EtapaExecucao_Reprodutibilidade -> Sempre
type -> http://www.owl-ontologies.com/TestProject.owl#EtapaExecucao
EtapaExecucao_VersaoDefeitoSurgiu -> Release ICAMMH_01.00
EtapaExecucao_Severidade -> Minimo
EtapaExecucao_VersaoDefeitoCorrigiu -> Release ICAMMH_02.00
DataExecucao -> 2009-07-10T09:42:02
EtapaExecucao_StatusDoDefeito -> Nao sera corrigido
EtapaExecucao_DataSubmissao -> 2009-06-30T09:43:01
Tipos_Fases -> http://www.owl-ontologies.com/TestProject.owl#FaseTesteExecucao
EtapaExecucao_Resolucao -> Fechado
executor_do_teste -> http://www.owl-ontologies.com/TestProject.owl#Etiene
EtapaExecucao_PrioridadeCorrecao -> Normal
Equipe instance: Fabio
Equipe instance: Melis
一些一般性的建議,特別是如果您有任何後續問題:
- 問具體的問題,這是非常難以回答含糊不清的問題;
- 提供可運行代碼如果可能的話:你可以把我下面的代碼,把它放到一個代碼環境如Eclipse和嘗試
- 提供問題的代碼和數據,而不是引擎收錄 鏈接關閉
- 需要一些時間來減少代碼和數據在必要的最小限度的形式,藉以說明問題:你的門徒新的文件超過600線長
相關問題
- 1. Jena中個體的對象屬性值
- 2. 對象屬性限制 - jena
- 3. 使用對象瀏覽器中未列出的對象屬性
- 4. 對象實例共享子屬性?
- 5. 對象沒有屬性'__getitem__'(類實例?)
- 6. 在JavaScript中修改對象實例方法和屬性
- 7. 無法在對象實例中設置任意屬性
- 8. 對象實例爲Prototype的屬性輸出`undefined`。爲什麼?
- 9. 在優先隊列的實現中比較對象的屬性
- 10. 用__dict__列出實例屬性
- 11. 序列化對象屬性的實體
- 12. Usercontrol findcontrol屬性拋出對象引用未設置爲對象的實例?
- 13. 在實體對象中循環並設置對象的屬性
- 14. GORM:列出屬於用戶的所有域實例(根對象)
- 15. 在jena中添加屬性值
- 16. 訪問對象的對象數組屬性在python中給出屬性錯誤
- 17. 如何在python pdb中列出對象的所有屬性?
- 18. 如何在VBA中列出圖表對象的屬性?
- 19. 在PDF中使用Javascript列出XFA對象的屬性
- 20. 列出對象的方法和屬性
- 21. Python:追加列表中實例的實例屬性
- 22. python - 從屬性存在的對象列表中收集屬性
- 23. Apache Jena自動將對象屬性合併在一起
- 24. 動態添加散列屬性到Rails模型實例對象?
- 25. 如何製作列表對象?實例沒有屬性'__getitem__'
- 26. C#更新對象屬性而不會中斷實例
- 27. Groovy - 在對象實例化過程中忽略地圖中的額外屬性
- 28. 屬性路徑深度在jena sparql中實際可用嗎?
- 29. 比較列表中對象的屬性
- 30. 陣列中的訪問對象屬性
對不起,我是初學者看我的代碼,現在我無法得到我列出的任何實例的對象屬性,只列出數據類型屬性及其值。 你能告訴我一個帶有列表對象屬性的代碼嗎?我只需要與我當前實例相關聯的實例的名稱。 – Leandro
對不起,查看我的代碼: http://pastebin.com/f6c0sF1F – Leandro
我無法運行沒有數據的pastebin代碼。另外,爲了將這個問題歸檔到將來(這是StackOverflow的目標之一),請將完整的可運行示例(包括數據)粘貼到問題中,而不是將其放入單獨的pastebin中。 –