Jena查询本体实例的对象属性值和数据属性值

1、protege5.0可以直接添加图片、视音频地址到数据属性中,以xsd:string的形式,然后保存本体(可以将本体保存到mysql中,本文直接以.owl文件的格式存储)。

2、通过jena解析出图片、视音频等的地址。

3、使用myeclipse通过以上地址加载相应的内容。

具体操作如下所示。

import java.awt.FlowLayout;

import java.util.Iterator;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import com.hp.hpl.jena.ontology.DatatypeProperty;

import com.hp.hpl.jena.ontology.Individual;

import com.hp.hpl.jena.ontology.ObjectProperty;

import com.hp.hpl.jena.ontology.OntClass;

import com.hp.hpl.jena.ontology.OntDocumentManager;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.ontology.OntProperty;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.rdf.model.Property;

import com.hp.hpl.jena.util.iterator.ExtendedIterator;

import java.awt.FlowLayout;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

public class imageload extends JFrame {

private static final long serialVersionUID = 1L;

public static String SOURCE = "http://www.semanticweb.org/zg/ontologies/Plant.owl";//本体名

static String NS = SOURCE + "#";

static OntModel m = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );

static String imageurl;

public static void main(String[] args) {

// create the base model

OntDocumentManager dm = m.getDocumentManager();

dm.addAltEntry( SOURCE,"file:" + "D:/eclipse-workspace/Plant-tuili.owl"    );//本体存放的位置

m.read( SOURCE, "RDF/XML" );

//get root node Dicotyledons

OntClass rootClass=m.getOntClass(NS+"Dicotyledons");//查找的起点“类”

int depth=0;

printOntClassNode(rootClass,depth);

/*

private static void printOntClassNode(OntClass oc,int depth)

{//oc是类名

System.out.println("OntClass:"+oc.getLocalName()+" Depth:"+depth);//类的子类

//print all subclass

String superclass=oc.getLocalName();

System.out.println(superclass);

if(oc.hasSubClass())

{

for(Iterator<OntClass> it = oc.listSubClasses(true); it.hasNext();){

OntClass c = it.next();

printOntClassNode(c, depth+1);

还有 77% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.99 继续阅读

推荐阅读更多精彩内容