找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 3056|回复: 1

如何编程查询owl

[复制链接]
发表于 2008-1-3 03:22:54 | 显示全部楼层 |阅读模式
假设有一个owl,里面有一些statement,类似于数据库的记录.
查询的方法,首先是在owl编译器里面书写,测试SPARQL,类似于SQL.
然后,编程.

  1. public static void addWMRestriction(OntClass newClass,
  2. Individual newCuiInstance) {
  3. try {
  4. // newClass will be a kind of resource
  5. String newCuiName = newCuiInstance.toString();
  6. // http://www.phinformatics.org/Assets/Ontology/umls.owl#C0007932
  7. String queryString = "PREFIX umls:"
  8. + "PREFIX owl:"
  9. + "SELECT ?subject"
  10. + "WHERE {?subject owl:onProperty umls:correspondsTo."
  11. + "?subject owl:hasValue <" + newCuiName + ">" + "}";
  12. Query query = QueryFactory.create(queryString);
  13. QueryExecution qe = QueryExecutionFactory.create(query, WM);
  14. ResultSet rs4 = qe.execSelect();
  15. // link sty in owl
  16. if (rs4.hasNext() == false) {
  17. System.out.println("Check restriction availability: false");
  18. HasValueRestriction valRestriction = null;
  19. valRestriction = WM.createHasValueRestriction(null,
  20. UMLSModel.correspondsTo, newCuiInstance);
  21. newClass.addProperty(RDFS.subClassOf, valRestriction);
  22. }
  23. } catch (Exception ex) {
  24. String ErrorStr = "Exception of addWMRestriction: "
  25. + ex.getMessage();
  26. System.out.println(ErrorStr);
  27. Min_ExceptionTable.insertToExceptionTable(ErrorStr);
  28. }

  29. }
复制代码

[ 本帖最后由 南京猿人 于 2008-1-3 03:28 编辑 ]
 楼主| 发表于 2008-1-3 03:30:10 | 显示全部楼层
把测试过的SPARQL放入String,Execute query(String),得到一个resultset,然后处理resultset,和SQL一样。
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表