| 假设有一个owl,里面有一些statement,类似于数据库的记录. 查询的方法,首先是在owl编译器里面书写,测试SPARQL,类似于SQL.
 然后,编程.
 
 
 复制代码public static void addWMRestriction(OntClass newClass,
Individual newCuiInstance) {
try {
// newClass will be a kind of resource
String newCuiName = newCuiInstance.toString();
// http://www.phinformatics.org/Assets/Ontology/umls.owl#C0007932
String queryString = "PREFIX umls:"
+ "PREFIX owl:"
+ "SELECT ?subject"
+ "WHERE {?subject owl:onProperty umls:correspondsTo."
+ "?subject owl:hasValue <" + newCuiName + ">" + "}";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, WM);
ResultSet rs4 = qe.execSelect();
// link sty in owl
if (rs4.hasNext() == false) {
System.out.println("Check restriction availability: false");
HasValueRestriction valRestriction = null;
valRestriction = WM.createHasValueRestriction(null,
UMLSModel.correspondsTo, newCuiInstance);
newClass.addProperty(RDFS.subClassOf, valRestriction);
}
} catch (Exception ex) {
String ErrorStr = "Exception of addWMRestriction: "
+ ex.getMessage();
System.out.println(ErrorStr);
Min_ExceptionTable.insertToExceptionTable(ErrorStr);
}
}
[ 本帖最后由 南京猿人 于 2008-1-3 03:28 编辑 ]
 |