桂林山水甲天下

Jacquette的技术生活

品尝SPARQL系列之一 SPARQL over HTTP/SOAP -- Joseki引擎的配置和示例程序

准备写这个系列,也是记录自己使用SPARQL的过程。最近参与的一个实验项目里面,我试图在一个.NET平台下的工作流系统里面使用SPARQL集成一些语义Web数据,而现在公认的比较好用的RDF工具包是HP实验室开发的Jena,它基于Java平台,我放弃了将其利用IKVM将其移植的打算,因为觉得这样比较枯燥,而且jena还在不断升级中,以后每次都要移植,可就太麻烦了。另外,考虑到SPARQL本来就是应用到Web环境下的一项武器,若将其封装为Web Service,并且在.net平台上调用,也将是一件有意义的事。
通过互联网了解到,HP的Joseki在其CVS版本中已经有了SPARQL over SOAP的初步实现,据jena的maillist上说,是旧的wsdl版本,不知道在.net平台上该使用哪个版本调用,另外,还有一些关于RDF图的反序列化任务,总之可能会比较繁琐。不过,先不管它,第一步是先在Joseki上测试现有的soap实现。
昨天忙乎了一天,其配置过程如下:

环境:Windows server 2003,

编程环境:Eclips 3.1, TortoiseCVS

时间:2006-10-12

 

测试SPARQL over HTTP

1, 使用TortoiseCVS,Checkout..出最新版本的Joseki

CVSROOT  :pserver:anonymous@joseki.cvs.sourceforge.net:/cvsroot/joseki

Module: Joseki3

2, 使用Eclips , Import进Joseki项目,有\classes目录生成;

3, 为了方便支持命令行执行, 设置环境变量和编写脚本以设置正确的java classpath

JOSEKIROOT

%Path%=%Path%; %JOSEKIROOT%/lib; %JOSEKIROOT%/bin

编写脚本,使得Classpath中包括所有/lib和/lib2中的jar文件,以及/classes目录。

4,在eclipse中或者在命令行java joseki.rdfserver,然后在浏览器中打开

http://localhost:2020/,执行几种查询,得到正确结果,测试完毕。

5, 在程序中编写SPARQL over HTTP请求程序,得到正确结果,测试完毕:

打开HttpURLConnection,使用GET方法请求返回值。

url = new  URL(urlStr);

url_con= (HttpURLConnection)url.openConnection();

url_con.setDoOutput(true);

url_con.setRequestMethod("GET");

 

测试 SPARQL over SOAP

1, 有几个地方需要修改一下

A. Src-dev/dev/RunClient.java中的

QueryExecution qexec = new QueryEngineSOAP(endpointSOAP,queryStr ) ;

从CVS版本中这两个参数填反了,折腾了很久才发现是这么个bug

 

B. 在Joseki的配置文件joseki-config.ttl中增加一段对sparql-query的服务配置:

[]

    rdf:type            joseki:Service ;

    rdfs:label          "SPARQL/SOAP testing" ;

    joseki:serviceRef   "sparql-query" ;

    joseki:dataset      _:books ;

    joseki:processor    joseki:ProcessorSPARQL_FixedDS ;

.

 

2, 编写axispath, axisclient, 和axisserver脚本,(放在soap目录中)

3, 设置正确的java classpath

4, 启动axisserver:

Java org.apache.axis.transport.http.SimpleAxisServer –p 2525

或者利用/src-dev/dev/中的AxisServer程序:

Java dev.AxisServer

 

启动joseki server:

Java joseki.rdfserver或者java dev.RunServer

 

启动 axis client,查看axis上的配置,部署相应的服务,最后用于关闭axis server

Java org.apache.axis.client.AdminClient –p 2525 deploy.wsdd

                                 -p 2525 quit

 

4, java dev.RunClient,查看输出结果是否正确


posted on 2006-10-13 10:22  Jacquette.wang  阅读(2443)  评论(1编辑  收藏  举报

导航