NetBeans下用于Open Calais的SOAP客户机(一)

本文将介绍如何编写一个简单的、基于控制台的Java SOAP客户机以访Open Calais Web服务。本教程所介绍的概念同样适用于为任何其它Web服务编写SOAP客户机。


目录

»

§                     用于Open CalaisSOAP客户机

§                     简介:Calais Web服务  

§                     运行原理  

§                     前提条件  

§                     Open Calais创建SOAP客户机  

§                     使用Open Calais API构造和发送SOAP请求  

§                     RDF中获取和显示结果  

§                     更多练习  

§                     结束语

§                     参考资料  

 

简介:Calais Web服务

根据 http://opencalais.mashery.com/Overview 的定义,Calais Web服务可以自动将富语义元数据附加到所提交的内容中,整个过程不会超过1秒钟。通过自然语言处理、机器学习和其它方法,Calais能够对文档进行分类并将它们与实体(人、位置、组织等)、事实(在‘y’公司工作的职员‘x’)和事件(职员‘z’‘x’日被任命为‘y’公司的主席)相链接。元数据结果将集中保存,并以行业标准的RDF结构随全局唯一标识符(GUID)一并返回给用户。借助Calais GUID,任何下游用户都可以通过简单的Calais调用来获取该元数据。

通过该元数据,您可以建立文档与人、公司、地点、产品、事件以及地理等任何事物之间的链接映射(或者图表、网络)。您可以使用这些映射改善站点的导航,提供上下文联合,标记和组织内容,创建结构化的folksonomies,筛选并去除重复新闻资料或分析内容中是否包含您所关心的主题。此外,还可以与内容生态系统中的任何人共享这些映射。

运行原理

以编程人员的观点来看,您可以构建SOAP请求并将其发送给Web服务的远程端点。Web服务以 资源描述框架 的输出作为响应。

前提条件

NetBeans IDE最好6.0以上WebJava EE安装包

JDK 1.6.0 以上

了解RDF的基础知识

了解语义Web的基础知识

了解Web服务的基础知识

Open Calais创建SOAP客户机

创建Java应用程序项目。在该项目中,创建一个Web服务客户机来使用Open Calais enlighten服务。

在新建项目向导中,创建一个Java应用程序项目。将其命名为contextualizer接受所有的默认设置,然后创建一个Main类。

右键单击项目节点。这将弹出上下文菜单。

选择新建->Web服务客户机。

添加enlighten WSDLURLhttp://api.opencalais.com/enlighten/?wsdl

现在代码将通过WSDL获取Web服务相关信息。

信息获取完成后,展开项目浏览器中“Web服务引用节点。可以看到Web服务中可用的SOAP函数。

使用Open Calais API构造和发送SOAP请求

Open Calais APISOAP 1.1SOAP 1.2都提供了一个名称为”enlighten”的函数。我们将在客户机中使用SOAP 1.1函数。

单击左侧的"enlighten"节点,并将其拖拽到"contextualiser.Main"类中。以下代码将添加到主函数的已有类中:

try { // Call Web Service Operation
     
     
            contextualiser.Calais service = new contextualiser.Calais();
     
     
            contextualiser.CalaisSoap port = service.getCalaisSoap();
     
     
            // TODO initialize WS operation arguments here
     
     
            java.lang.String licenseID = "";
     
     
            java.lang.String content = "";
     
     
            java.lang.String paramsXML = "";
     
     
            // TODO process result here
     
     
            java.lang.String result = port.enlighten(licenseID, content, paramsXML);
     
     
            System.out.println("Result = "+result);
     
     
        } catch (Exception ex) {
     
     
            // TODO handle custom exceptions here
     
     
        }
  
  
   
    
  
  

要了解调用API的各种参数,请参阅Open Calais API指南。

特别地我们必须通过SOAP请求发送以下信息

许可ID,或开发人员密钥(注册Open Calais网站获得)

希望获取的语义元数据文本

ParamsXML预定义XML格式的字符串

使用"water"作为文本。ParamsXML就是Open Calais API文档中说明的那个。 现在源代码应如下所示

/*
     
     
 * To change this template, choose Tools | Templates
     
     
 * and open the template in the editor.
     
     
 */
     
     

   
   
    
     
   
   
package contextualiser;
     
     

   
   
    
     
   
   
import java.io.BufferedReader;
     
     
import java.io.FileReader;
     
     
import java.io.IOException;
     
     

   
   
    
     
   
   

   
   
    
     
   
   
/**
     
     
 *
     
     
 * @author amit
     
     
 */
     
     
public class 
     
     
      
      Main
     
      {
     
     

   
   
    
     
   
   
    /**
     
     
     * @param args the command line arguments
     
     
     */
     
     
    public static void main(String[] args) {
     
     
        // TODO code application logic here
     
     
        
     
     
try { // Call Web Service Operation
     
     
            contextualiser.Calais service = new contextualiser.Calais();
     
     
            contextualiser.CalaisSoap port = service.getCalaisSoap();
     
     

   
   
    
     
   
   
            // TODO initialize WS operation arguments here
     
     
            java.lang.String licenseID = "1234567890134"; //replace this with your own license key
     
     
            java.lang.String content = "water";
     
     
            java.lang.String paramsXML="";
     
     
            
     
     
            String line;
     
     
            try{
     
     
            FileReader input = new FileReader("paramsXML.xml");
     
     
            BufferedReader bufRead = new BufferedReader(input);
     
     
            
     
     
            while((line=bufRead.readLine())!=null){
     
     
                paramsXML+= line;
     
     
                System.out.println(line);
     
     
                
     
     
            }
     
     
            
     
     

   
   
    
     
   
   
            }catch(IOException e){
     
     
                System.out.println(e);
     
     
            }
     
     
                        
     
     
            // TODO process result here
     
     
            
     
     
            java.lang.String result = port.enlighten(licenseID, content, paramsXML);
     
     
            System.out.println("Result = "+result);
     
     
        } catch (Exception ex) {
     
     
            // TODO handle custom exceptions here
     
     
        }
        
        
        
    }
  
  
   
    
  
  
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值