zoukankan      html  css  js  c++  java
  • 品尝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,查看输出结果是否正确


  • 相关阅读:
    【Python】ModuleNotFoundError: No module named 'matplotlib.pyplot'
    【DB2】DB2使用IMPORT命令导入含有自增长列的表报错处理
    ~~
    汉字的unicode码范围是多少?
    字符编码(ASCII,Unicode和UTF-8) 和 大小端(zz)
    是否 whether ,if
    定语从句:
    by,with
    C++中extern “C”含义深层探索
    安装Office2007时出现1706错误的解决方案
  • 原文地址:https://www.cnblogs.com/Jacquette/p/sparql061013.html
Copyright © 2011-2022 走看看