package ru.semiot.commons.rdf;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.jena.datatypes.xsd.XSDDatatype;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.ResourceFactory;
public class ResourceUtils {
public static boolean isURI(String uri) {
if (uri.startsWith("http://") || uri.startsWith("https://")) {
return true;
} else {
return false;
}
}
public static RDFNode toRDFNode(String value) {
if (isURI(value)) {
return ResourceFactory.createResource(value);
} else if (NumberUtils.isNumber(value)) {
if (value.contains(".")) {
return ResourceFactory.createTypedLiteral(value, XSDDatatype.XSDdouble);
}
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) {
return ResourceFactory.createTypedLiteral(value, XSDDatatype.XSDboolean);
} else {
return ResourceFactory.createTypedLiteral(value, XSDDatatype.XSDinteger);
}
} else {
return ResourceFactory.createTypedLiteral(value, XSDDatatype.XSDstring);
}
}
}