有谁用过Jena,读取OWL文件的

 我来答
职场达人涂涂
高粉答主

2017-01-02 · 每一个情感的背后都有一个故事
职场达人涂涂
采纳数:7942 获赞数:118929

向TA提问 私信TA
展开全部
例子的主要代码如下列出。  //创建使用OWL语言的内存模型  OntModelontModel=ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);  ontModel.read("file:./Creature.owl");//读取当前路径下的文件,加载模型  //定义一个类作为模型中Animal类的等等价类,并添加注释  OntClasscls=ontModel.createClass(":DongwuClass");  cls.addComment("theEquivalentClassofAnimal","EN");  //通过完整的URI取得模型中的Animal类  OntClassoc=ontModel.  getOntClass("/marine.owl#Animal");  oc.addEquivalentClass(cls);//将先前定义的类添加为Animal的等价类  //迭代显示模型中的类,在迭代过程中完成各种操作  for(Iteratori=ontModel.listClasses();i.hasNext();){  OntClassc=(OntClass)i.next();//返回类型强制转换  if(!c.isAnon()){//如果不是匿名类,则打印类的名字  System.out.print("Class");  //获取类的URI并输出,在输出时对URI做了简化(将命名空间前缀省略)  System.out.println(c.getModel().getGraph().  getPrefixMapping().shortForm(c.getURI()));  //处理Animal类  if(c.getLocalName().equals("Animal")){//如果当前类是Animal  System.out.println("URI@"+c.getURI());//输出它的完整URI//取得它的的等价类并打印  System.out.print("Animal'sEquivalentClassis"+  c.getEquivalentClass());  //输出等价类的注释  System.out.println("[comments:"+  c.getEquivalentClass().getComment("EN")+"]");  }//处理Animal结束  //迭代显示当前类的直接父类  for(Iteratorit=c.listSuperClasses();it.hasNext();)  {  OntClasssp=(OntClass)it.next();  Stringstr=c.getModel().getGraph()  .getPrefixMapping().shortForm(c.getURI())//获取URI  +"'ssuperClassis";  StringstrSP=sp.getURI();  try{//另一种简化处理URI的方法  str=str+":"+strSP.substring(strSP.indexOf('#')+1);  System.out.println("Class"+str);  }catch(Exceptione){}  }//superclassends  //迭代显示当前类的直接子类  for(Iteratorit=c.listSubClasses();it.hasNext();){  System.out.print("Class");  OntClasssb=(OntClass)it.next();  System.out.println(c.getModel().getGraph().getPrefixMapping()  .shortForm(c.getURI())+"'ssuberClassis"  +sb.getModel().getGraph().getPrefixMapping()  .shortForm(sb.getURI()));  }//suberclassends  //迭代显示与当前类相关的所有属性  for(Iteratoripp=c.listDeclaredProperties();ipp.hasNext();){  OntPropertyp=(OntProperty)ipp.next();  System.out.println("associatedproperty:"+p.getLocalName());  }//propertyends  }//anonymityends
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式