2010-06-10 32 views
1

在我的本體論中,我有一個名爲「festival」的類,它具有名爲「CRISTMAS」的屬性值。這是一個字符串類型的值。如何使用Jena OWL API獲取此值?獲取語義屬性的字符串值

+0

這將是容易得多,如果你表現出要回答這個問題你的數據樣本(只是一個樣本,而不是整個文件)。例如,在RDF中,一個類有一個屬性值並不常見:通常,類的一個實例會有一個特定的值。根據你的意思,我們可以建議精確的答案。 – 2010-06-10 20:04:25

回答

0
  1. 加載你的本體到OntModel。我假設你已經這樣做了。

  2. 使用OntModelgetProperty(String uri)方法檢索屬性。

  3. 使用OntModelgetOntClass(String uri)方法檢索該類。它返回一個OntClass

  4. 使用OntClassgetPropertyValue(Property property)方法獲取該值。它返回一個RDFNode

  5. 要將RDFNode轉換爲字符串,請使用簡單的toString(),或者使用myRDFNode.asLiteral().getString()

1

我猜你在類中有一個實例,並且此實例的屬性值是一個String。

如果是這樣,請執行下列操作步驟:

  1. 創建OntModel和讀取文件。

    OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.XXX); 
    ontModel.read(file:xxx); 
    
  2. 獲取類和屬性:

    OntClass iClass =ontModel.getOntClass(className); 
    OntProperty iProperty= ontModel.getOntProperty(propertyName); 
    
  3. 獲得實例和輸出的字符串:

    for (ExtendedIterator<? extends OntResource> it= iClass.listInstances(true);it.hasNext();) { 
        Individual ins = (Individual) it.next(); 
    
        RDFNode iValue = ins.getPropertyValue(iProperty); 
    
        System.out.println(iValue.toString()); 
    }