}
}
else if( hasObject( atomNode, RDF.type.asNode(), SWRL.DatavaluedPropertyAtom.asNode() ) ) {
ATermAppl pred = null;
AtomIObject argument1 = null;
AtomDObject argument2 = null;
atomType = "DatavaluedPropertyAtom";
if( (obj = getObject( atomNode, SWRL.propertyPredicate.asNode() )) != null ) {
pred = node2term( obj );
}
if( (obj = getObject( atomNode, SWRL.argument1.asNode() )) != null ) {
argument1 = createRuleIObject( obj );
}
if( (obj = getObject( atomNode, SWRL.argument2.asNode() )) != null ) {
argument2 = createRuleDObject( obj );
}
if( pred == null || !defineDatatypeProperty( pred ) ) {
addUnsupportedFeature( "Cannot define datatype property " + pred );
}
else if( argument1 == null ) {
addUnsupportedFeature( "Term not found " + SWRL.argument1 );
}
else if( argument2 == null ) {
addUnsupportedFeature( "Term not found " + SWRL.argument2 );
}
else {
atom = new DatavaluedPropertyAtom( pred, argument1, argument2 );
}
}
else if( hasObject( atomNode, RDF.type.asNode(), SWRL.BuiltinAtom.asNode() ) ) {
atomType = "BuiltinAtom";
Node builtInNode = null;
List<AtomDObject> arguments = null;
if( (obj = getObject( atomNode, SWRL.arguments.asNode() )) != null ) {
arguments = parseArgumentList( obj );
}
builtInNode = getObject( atomNode, SWRL.builtin.asNode() );
if( arguments == null ) {
addUnsupportedFeature( "Term not found " + SWRL.arguments );
}
else if( builtInNode != null && builtInNode.isURI() ) {
atom = new BuiltInAtom( builtInNode.getURI(), arguments );
}
}
else if( hasObject( atomNode, RDF.type.asNode(), SWRL.DataRangeAtom.asNode() ) ) {
atomType = "DataRangeAtom";
ATermAppl datatype = null;
AtomDObject argument = null;
if( (obj = getObject( atomNode, SWRL.dataRange.asNode() )) != null ) {
datatype = node2term( obj );
}