以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Web Services & Semantic Web Services 』 (http://bbs.xml.org.cn/list.asp?boardid=10) ---- 获得一个实例的所有详细信息(属性和属性值) (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=122124) |
-- 作者:星火辉煌 -- 发布时间:10/18/2011 9:13:00 PM -- 获得一个实例的所有详细信息(属性和属性值) //获得一个实例的所有详细信息(属性和属性值) public String getInsInfo(String insname,String owlpath){ String info=null; String namespace=null; namespace=insname.substring(0, insname.indexOf("#")+1); //首先创建模型,读取owl文件 OntModel model=ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,null); try { model.read(new FileInputStream(owlpath),""); } catch(FileNotFoundException e) { System.out.println("文件读取失败:"+e.getMessage()); } //根据实例的名称获取实例类型 Individual instance=(Individual)model.getIndividual(insname); if(instance==null) return null; //Jay OntClass classont=instance.getOntClass(); int index; String str; //输出实例信息 String var=insname.substring(insname.indexOf("#")+1); info="作品:"+var+"\n\n"; //获取该实例的类的属性,如果是数值属性,则直接输出其值,否则输出对应的实例 //获取这个类的所有属性属性有:属性名称,属性类型,属性值 for(Iterator prys=classont.listDeclaredProperties();prys.hasNext();){ OntProperty pry=(OntProperty)prys.next(); //获取属性名称 String pryname=pry.toString(); //属性uri index=pryname.indexOf("#"); str=pryname.substring(index+1); //获取属性名称 //判断该属性是对象属性还是数值数值属性,rang获取的是属性的数据类型 //从rang中可以看出那些是对象属性那些是数据属性。 //对象属性的命名空间是自定义的,值属性的命名空间是http://www.w3.org/2001/XMLSchema# String rang =pry.getRDFType().toString(); index=rang.indexOf("#"); String nstype=rang.substring(index+1); if("ObjectProperty".equals(nstype)){//对象属性 //获取这个实例的属性值 String pryvalue=instance.getPropertyValue(pry).toString(); info+="对象属性:"+str+": "; index=pryvalue.indexOf("#"); pryvalue=pryvalue.substring(index+1); //获取对象属性值 info+="值为:"+pryvalue+"\n\n"; } else if("DatatypeProperty".equals(nstype)){ info+="数据属性:"+str+": "; try { String dataValue=instance.getPropertyValue(pry).toString(); if(-1!=dataValue.indexOf("^^")){ info+="值为:"+dataValue.substring(0,dataValue.indexOf("^^"))+"\n\n";//去除数据类型 } else if(-1!=dataValue.indexOf("@")){//可能这样写不是很好,有可能字符串中本来就包含这个字符 info+="值为:"+dataValue.substring(0,dataValue.indexOf("@"))+"\n\n";//去除语言 } else{ info+="值为:"+dataValue+"\n\n"; } } catch (Exception e) { info+="值为:空"+"\n\n"; } } } return info; } |
-- 作者:lucaixinwai -- 发布时间:10/24/2011 8:22:00 PM -- E:\cloud>javac cloud.java cloud.java:115: 找不到符号 符号: 方法 getOntClass() 位置: 接口 com.hp.hpl.jena.ontology.Individual OntClass classont=instance.getOntClass( ); ^ 1 错误 明明加了import com.hp.hpl.jena.ontology.*;怎么回事? |
-- 作者:星火辉煌 -- 发布时间:10/26/2011 8:29:00 PM -- import java.io.*; import java.util.Iterator; import com.hp.hpl.jena.ontology.Individual; 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.OntProperty; import com.hp.hpl.jena.ontology.OntResource; import com.hp.hpl.jena.rdf.model.*; |
-- 作者:xufeng5264 -- 发布时间:12/23/2011 11:15:00 AM -- 你这个不能运行出结果吧,OntClass classont=instance.getOntClass( ),没有为类型 Individual 定义方法 getOntClass() |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |