java model举例,Java Model.size方法代码示例

import com.hp.hpl.jena.rdf.model.Model; //导入方法依赖的package包/类

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws IOException, ServletException {

D2RServer server = D2RServer.fromServletContext(getServletContext());

server.checkMappingFileChanged();

String relativeResourceURI = request.getRequestURI().substring(

request.getContextPath().length()

+ request.getServletPath().length());

// Some servlet containers keep the leading slash, some don't

if (!"".equals(relativeResourceURI)

&& "/".equals(relativeResourceURI.substring(0, 1))) {

relativeResourceURI = relativeResourceURI.substring(1);

}

if (request.getQueryString() != null) {

relativeResourceURI = relativeResourceURI + "?"

+ request.getQueryString();

}

/* Determine service stem, i.e. vocab/ in /[vocab/]data */

int servicePos;

if (-1 == (servicePos = request.getServletPath().indexOf(

"/" + D2RServer.getDataServiceName())))

throw new ServletException("Expected to find service path /"

+ D2RServer.getDataServiceName());

String serviceStem = request.getServletPath().substring(1,

servicePos + 1);

String resourceURI = RequestParamHandler

.removeOutputRequestParam(server.resourceBaseURI(serviceStem)

+ relativeResourceURI);

String documentURL = server.dataURL(serviceStem, relativeResourceURI);

String pageURL = server.pageURL(serviceStem, relativeResourceURI);

String sparqlQuery = "DESCRIBE ";

QueryExecution qe = QueryExecutionFactory.create(sparqlQuery,

server.dataset());

if (server.getConfig().getPageTimeout() > 0) {

qe.setTimeout(Math.round(server.getConfig().getPageTimeout() * 1000));

}

Model description = qe.execDescribe();

qe.close();

if (description.size() == 0) {

response.sendError(404);

}

if (description.qnameFor(FOAF.primaryTopic.getURI()) == null

&& description.getNsPrefixURI("foaf") == null) {

description.setNsPrefix("foaf", FOAF.NS);

}

Resource resource = description.getResource(resourceURI);

Resource document = description.getResource(documentURL);

document.addProperty(FOAF.primaryTopic, resource);

Statement label = resource.getProperty(RDFS.label);

if (label != null) {

document.addProperty(RDFS.label,

"RDF Description of " + label.getString());

}

server.addDocumentMetadata(description, document);

if (server.getConfig().serveMetadata()) {

// add document metadata from template

Model resourceMetadataTemplate = server.getConfig().getResourceMetadataTemplate(

server, getServletContext());

MetadataCreator resourceMetadataCreator = new MetadataCreator(

server, resourceMetadataTemplate);

description.add(resourceMetadataCreator.addMetadataFromTemplate(

resourceURI, documentURL, pageURL));

Map descPrefixes = description.getNsPrefixMap();

descPrefixes.putAll(resourceMetadataTemplate.getNsPrefixMap());

description.setNsPrefixes(descPrefixes);

}

// TODO: Add a Content-Location header

new ModelResponse(description, request, response).serve();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值