将 OWL-S 条件投射到 SWRL

Cast OWL-S condition to SWRL

我想将一些 OWL-S 条件转换为 SWRL,转换已完成但结果操作 returns 空指针异常。这里的代码:

final OWLIndividualList<Condition> cs = service.getProfile().getConditions();
final ArrayList<ArrayList<URI>> conditions = new ArrayList<ArrayList<URI>>();
for (final Condition<?> c : cs){
   if (c.canCastTo(Condition.SWRL.class)){ // is it a SWRL condition?
      final Condition.SWRL sc = c.castTo(Condition.SWRL.class);
      for (final Atom a : sc.getBody()){...........

最后一行returns:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

谁能帮我解决这个问题?

此问题与 java 代码无关,而是与 OWLS-S 文件语法相关。 您可以通过替换来解决此问题:

 <expr:expressionBody rdf:parseType="Literal">

持有 SWRL 前提条件(或最终结果),作者:

<expr:expressionObject>