使用Jena API列出某个OntClass的所有资源

use*_*748 1 java rdf jena

如何在模型中列出属于某个OntClass的所有资源?

Jos*_*lor 6

要列出OntClass的所有实例,您可以使用一个恰当命名的实例OntClass.listInstances.它在javadoc中有清楚的描述.一般来说,我建议如果您使用的是API,那么浏览您正在使用的类或接口的javadoc是一个好习惯.你不需要记住它的每一点,但你会知道什么是可用的,并知道在你需要的时候在哪里看.

代码示例

import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.ontology.OntResource;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;

public class ListInstancesExample {
    public static void main(String[] args) {
        // Load the wine ontology.
        final OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM );
        model.read( "http://www.w3.org/TR/owl-guide/wine.rdf" );

        // Get the Merlot class.
        final OntClass merlot = model.getOntClass( "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Merlot" );

        // Print each of its instances.
        for ( final ExtendedIterator<? extends OntResource> merlots = merlot.listInstances(); merlots.hasNext(); ) {
            System.out.println( merlots.next() );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#LongridgeMerlot
http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#GaryFarrellMerlot
Run Code Online (Sandbox Code Playgroud)