public static Map<Property,RDFNode> getPotentialBindings(Module module, RDFNode[] values) {
		Map<Property,RDFNode> results = new HashMap<Property,RDFNode>();
		for(Argument argument : module.getArguments(false)) {
			Property argProperty = argument.getPredicate();
			if(argProperty != null) {
				Resource argType = argument.getValueType();
				if(argType != null) {
					for(RDFNode value : values) {
						if(value instanceof Resource) {
							Resource resource = (Resource) value;
							if(JenaUtil.hasIndirectType(resource, argType)) {
								results.put(argProperty, resource);
							}
						}
						else {
							Literal literal = (Literal) value;
							if(argType.getURI().equals(literal.getDatatypeURI())) {
								results.put(argProperty, literal);
							}
						}
					}
				}
			}
		}
		return results;
	}