wikipedia apiを使ってみたい。- Java + axis2 2008/05/01

動機


Wikipediaシソーラス - Wikipedia-Labがちょっとおもしろいと思ったので、ちょっと実験。

このWikipedia-LabのWikipediaシソーラスは、リンク構造に着目したWikipediaマイニングから開発されているそうです。


Wikipediaシソーラスビジュアライザー - Wikipedia-Labがかっこよかったです。

Javaです。WSDLをaxis2でjavaソースにします。



紹介されているサンプルが.netのものしかなかったのですが(20080502現在)、axis2を使って、wsdlからjavaコードにして、使ってみます。


変換するためにbin/wsdl2javaを使います。
src/org/tempuri/ServiceCallbackHandler.java
src/org/tempuri/ServiceStub.java

が生成されます。

以下、キーワードから、シソーラスを取り出すための簡単なコードです。
まず、GetTopCandidateIDFromKeywordで、番号をidをゲットして、それを使いGetThesaurusDSをゲットするという感じの流れです。

このコードではxmlを単純に標準出力しています。
package org.tempuri;

import java.rmi.RemoteException;

import org.apache.axis2.databinding.ADBException;
import org.apache.axis2.databinding.types.UnsignedInt;
import org.tempuri.ServiceStub.GetThesaurusDS;
import org.tempuri.ServiceStub.GetThesaurusDSResponse;
import org.tempuri.ServiceStub.GetTopCandidateIDFromKeyword;
import org.tempuri.ServiceStub.GetTopCandidateIDFromKeywordResponse;

public class Test {

public static void main(String[] args) throws RemoteException, ADBException {

String[] keywords = { "侍", "apple", "google", "o_o!" };
for (String k : keywords) {
System.out.println(b(a(k)));
}
}

static int a(String skeyword) throws RemoteException {
ServiceStub serviceStub = new ServiceStub();

GetTopCandidateIDFromKeyword keyword = new GetTopCandidateIDFromKeyword();
keyword.setKeyword(skeyword);
keyword.setLanguage("Japanese");

GetTopCandidateIDFromKeywordResponse response = serviceStub
.GetTopCandidateIDFromKeyword(keyword);

return response.getGetTopCandidateIDFromKeywordResult().intValue();
}

static String b(int i) throws RemoteException {

ServiceStub serviceStub = new ServiceStub();

GetThesaurusDS getThesaurusDS = new GetThesaurusDS();
getThesaurusDS.setLanguage("Japanese");
getThesaurusDS.setIFrom(new UnsignedInt(i));

GetThesaurusDSResponse response = serviceStub
.GetThesaurusDS(getThesaurusDS);

return "" + response.localGetThesaurusDSResult.localExtraElement;
}

}

:

匿名

src/org/tempuri/ServiceCallbackHandler.java
src/org/tempuri/ServiceStub.java

はじめまして、
素晴らしいと思います、ちょっと試していきたいですが、上記のソースが見つからなかった、どこがありますか?
cafew2008@gmail.com

よろしくお願いいたします。

ugo.nakawaka

どうもです。
下記にソースコードをおいときました。
http://deiji.jp/tmp/

よろしくです。

Unknown

初めまして。
試してみたのですが、コード5、6行目の「ADBException」、「UnsignedInt」がどこにあるのか分かりません。
ご教示いただけないでしょうか。

cancer.deathmask0624@gmail.com

ugo.nakawaka

Lulli さん
どうもです。
なにぶん昔の記事なので、記憶と僕自信の意図が不鮮明なので、若干、自信がないのですが、Axis2 を調べてみますと、
最新のものでは、
axis2-adb-1.5.1.jar
にありました。
axis2のライブラリをダウンロードしてください。

http://ws.apache.org/axis2/index.html

よろしくです。

PS.
メールアドレスとても怖いです。。。
>_<!

Unknown

ご回答ありがとうございます。
返信が遅れて申し訳ありません;