java rdfnode类_Java RDFNode.isURIResource方法代码示例

import org.apache.jena.rdf.model.RDFNode; //导入方法依赖的package包/类

/**

* @param stmt

*/

public static void printSPARQLStatement(Statement stmt, OutputStreamWriter osw) {

if (logger.isDebugEnabled()) {

logger.debug("printSPARQLStatement: stmt: {}", stmt);

}

StringBuffer buf = new StringBuffer();

buf.append("

buf.append(stmt.getSubject().getURI());

buf.append(">

buf.append(stmt.getPredicate().getURI());

buf.append("> ");

RDFNode objNode = stmt.getObject();

if (objNode.isURIResource())

buf.append("");

else {

RDFDatatype dt = objNode.asLiteral().getDatatype();

if ( logger.isDebugEnabled()) {

logger.debug("printSPARQLStatement: literal datatype URI: {}, java class: {}", dt.getURI(), dt.getJavaClass());

}

if (dt.getURI().equals(XSDDatatype.XSDstring.getURI())) {

buf.append("\"").append(sparqlEscape(objNode.asLiteral().getString())).append("\"");

if (StringUtils.isNotEmpty(objNode.asLiteral().getLanguage()))

buf.append("@").append(objNode.asLiteral().getLanguage());

} else if (dt.getURI().equals(RDF.langString.getURI())) {

buf.append("\"").append(sparqlEscape(objNode.asLiteral().getString())).append("\"");

if (StringUtils.isNotEmpty(objNode.asLiteral().getLanguage()))

buf.append("@").append(objNode.asLiteral().getLanguage());

} else if (dt.getURI().equals(XSDDatatype.XSDboolean.getURI())) {

buf.append(objNode.asLiteral().getBoolean());

} else if (dt.getURI().equals(XSDDatatype.XSDint.getURI()) ||

dt.getURI().equals(XSDDatatype.XSDinteger.getURI())) {

buf.append(objNode.asLiteral().getInt());

} else if (dt.getURI().equals(XSDDatatype.XSDlong.getURI())) {

buf.append(objNode.asLiteral().getLong());

} else if (dt.getURI().equals(XSDDatatype.XSDanyURI.getURI())) {

buf.append("\"").append(objNode.asLiteral().getString()).append("\"^^");

} else if (dt.getURI().equals(XSDDatatype.XSDdate.getURI())) {

buf.append("\"").append(objNode.asLiteral().getLexicalForm()).append("\"^^");

} else if (dt.getJavaClass() != null && dt.getJavaClass().getName() != null &&

dt.getJavaClass().getName().equals("java.util.Date")) {

buf.append("\"").append(dtfmt.format(objNode.asLiteral().getValue())).append("\"^^");

} else {

logger.warn("printSPARQLStatement: unrecognized literal datatype: {}", dt.getURI());

buf.append("\"").append(sparqlEscape(objNode.asLiteral().getString())).append("\"");

}

}

try {

osw.append(buf.toString() + " .").append("\n");

} catch (IOException ioe) {

logger.error("failed to write statement for SPARQL", ioe);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值