use of com.hp.hpl.jena.graph.Node in project stanbol by apache.
the class BlankNodeAtom method adapt.
@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption, UnavailableRuleObjectException, UnsupportedTypeForExportException {
org.apache.stanbol.rules.manager.atoms.BlankNodeAtom tmp = (org.apache.stanbol.rules.manager.atoms.BlankNodeAtom) ruleAtom;
IObjectAtom argument1 = tmp.getArgument1();
IObjectAtom argument2 = tmp.getArgument2();
ClauseEntry argument1CE = adapter.adaptTo(argument1, Rule.class);
ClauseEntry argument2CE = adapter.adaptTo(argument2, Rule.class);
Node arg1Node;
Node arg2Node;
if (argument1CE instanceof NodeClauseEntry) {
arg1Node = ((NodeClauseEntry) argument1CE).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
if (argument2CE instanceof NodeClauseEntry) {
arg2Node = ((NodeClauseEntry) argument2CE).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
Node blank = Node_RuleVariable.createAnon();
return (T) new TriplePattern(arg2Node, arg1Node, blank);
}
use of com.hp.hpl.jena.graph.Node in project stanbol by apache.
the class NodeFactory method getTypedLiteral.
/**
* The argument is converted to a Jena {@link Node}
*
* @param argument
* any Object
* @return the {@link Node}
*/
public static Node getTypedLiteral(Object argument) {
Node literal;
if (argument instanceof TypedLiteralAtom) {
TypedLiteralAtom typedLiteralAtom = (TypedLiteralAtom) argument;
URIResource xsdType = typedLiteralAtom.getXsdType();
if (xsdType.getURI().equals(XSD.xboolean)) {
literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDboolean);
} else if (xsdType.getURI().equals(XSD.xdouble)) {
literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDdouble);
} else if (xsdType.getURI().equals(XSD.xfloat)) {
literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDfloat);
} else if (xsdType.getURI().equals(XSD.xint)) {
literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDint);
} else {
literal = Node_RuleVariable.createLiteral(argument.toString());
}
} else if (argument instanceof String) {
System.out.println(argument);
String argString = (String) argument;
if (argString.startsWith("\"") && argString.endsWith("\"")) {
argString = argString.substring(1, argString.length() - 1);
}
literal = Node_RuleVariable.createLiteral(argString);
} else if (argument instanceof Integer) {
literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDint);
} else {
literal = Node_RuleVariable.createLiteral(argument.toString());
}
return literal;
}
use of com.hp.hpl.jena.graph.Node in project stanbol by apache.
the class ClassAtom method adapt.
@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption, UnavailableRuleObjectException, UnsupportedTypeForExportException {
org.apache.stanbol.rules.manager.atoms.ClassAtom tmp = (org.apache.stanbol.rules.manager.atoms.ClassAtom) ruleAtom;
IObjectAtom argument1 = tmp.getArgument1();
IObjectAtom classResource = tmp.getClassResource();
ClauseEntry argumentClauseEntry = adapter.adaptTo(argument1, Rule.class);
ClauseEntry classClauseEntry = adapter.adaptTo(classResource, Rule.class);
Node argumnetNode;
Node classNode;
if (argumentClauseEntry instanceof NodeClauseEntry) {
argumnetNode = ((NodeClauseEntry) argumentClauseEntry).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
if (classClauseEntry instanceof NodeClauseEntry) {
classNode = ((NodeClauseEntry) classClauseEntry).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
return (T) new TriplePattern(argumnetNode, Node_RuleVariable.createURI(RDF.type.getURI()), classNode);
}
use of com.hp.hpl.jena.graph.Node in project stanbol by apache.
the class DatavaluedPropertyAtom method adapt.
@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption, UnavailableRuleObjectException, UnsupportedTypeForExportException {
org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom tmp = (org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom) ruleAtom;
IObjectAtom argument1 = tmp.getArgument1();
IObjectAtom datatypeProperty = tmp.getDatatypeProperty();
RuleAtom argument2 = tmp.getArgument2();
ClauseEntry argument2ClauseEntry = adapter.adaptTo(argument2, Rule.class);
ClauseEntry argument1ClauseEntry = adapter.adaptTo(argument1, Rule.class);
ClauseEntry datatypePropertyClauseEntry = adapter.adaptTo(datatypeProperty, Rule.class);
Node subjectNode = null;
Node predicateNode = null;
Node objectNode = null;
if (argument1ClauseEntry instanceof NodeClauseEntry) {
subjectNode = ((NodeClauseEntry) argument1ClauseEntry).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
if (datatypePropertyClauseEntry instanceof NodeClauseEntry) {
predicateNode = ((NodeClauseEntry) datatypePropertyClauseEntry).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
if (argument2ClauseEntry instanceof NodeClauseEntry) {
objectNode = ((NodeClauseEntry) argument2ClauseEntry).getNode();
} else {
throw new RuleAtomCallExeption(getClass());
}
return (T) new TriplePattern(subjectNode, predicateNode, objectNode);
}
use of com.hp.hpl.jena.graph.Node in project stanbol by apache.
the class DivisionAtom method adapt.
@SuppressWarnings("unchecked")
@Override
public <T> T adapt(RuleAtom ruleAtom) throws RuleAtomCallExeption, UnavailableRuleObjectException, UnsupportedTypeForExportException {
String div_result = "div_result" + System.currentTimeMillis();
Node arg1Node = null;
Node arg2Node = null;
Node arg3Node = Node_RuleVariable.createVariable(div_result);
org.apache.stanbol.rules.manager.atoms.DivisionAtom tmp = (org.apache.stanbol.rules.manager.atoms.DivisionAtom) ruleAtom;
NumericFunctionAtom numericFunctionAtom1 = tmp.getNumericFunctionAtom1();
NumericFunctionAtom numericFunctionAtom2 = tmp.getNumericFunctionAtom2();
ClauseEntry clauseEntry1 = adapter.adaptTo(numericFunctionAtom1, Rule.class);
ClauseEntry clauseEntry2 = adapter.adaptTo(numericFunctionAtom2, Rule.class);
List<ClauseEntry> clauseEntries = new ArrayList<ClauseEntry>();
if (clauseEntry1 instanceof HigherOrderClauseEntry) {
arg1Node = ((HigherOrderClauseEntry) clauseEntry1).getBindableNode();
clauseEntries.addAll(((HigherOrderClauseEntry) clauseEntry1).getClauseEntries());
} else if (clauseEntry1 instanceof NodeClauseEntry) {
arg1Node = ((NodeClauseEntry) clauseEntry1).getNode();
} else {
throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
}
if (clauseEntry2 instanceof HigherOrderClauseEntry) {
arg2Node = ((HigherOrderClauseEntry) clauseEntry2).getBindableNode();
clauseEntries.addAll(((HigherOrderClauseEntry) clauseEntry2).getClauseEntries());
} else if (clauseEntry2 instanceof NodeClauseEntry) {
arg2Node = ((NodeClauseEntry) clauseEntry2).getNode();
} else {
throw new org.apache.stanbol.rules.base.api.RuleAtomCallExeption(getClass());
}
java.util.List<Node> nodes = new ArrayList<Node>();
nodes.add(arg1Node);
nodes.add(arg2Node);
nodes.add(arg3Node);
ClauseEntry clauseEntry = new Functor("quotient", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
return (T) new HigherOrderClauseEntry(arg3Node, clauseEntries);
}
Aggregations