2010-06-10 67 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()); 
    }