Friday, May 18, 2012

Identifying biased Wikipedia articles... without looking at their content!

Data is often worthless without metadata.
But sometimes metadata is even more useful than data!

I created ASE, a tool to spot unnoticed biased and low-quality Wikipedia articles.
To assess articles, ASE does not even need to look at the data!
ASE just looks at the metadata, especially article history.

Context: To see how Wikipedia articles look like, check Special:Random many times. As you can see, 99.9% of Wikipedia articles are either good or have been tagged as needing references, copyedit, or other particular attention (banners at the top of articles).

ASE's goal is to spot the remaining 0.1%, which means articles that:

  • Are biased , or not of good quality (less than C on the article quality scale).
  • Have not been already tagged as needing references, copyedit, or any other.
How does ASE do this without even looking at the article?

ASE's axiom is that article quality increases with participation.
Articles that have been written by only a single editor, have a higher probability of being biased and of lower quality.
So basically the strategy is to spot articles that have been written by one editor.
Bots are filtered out, because they can not really be counted as participation.
Experience is also taken into account.

There are false positives, but accuracy is pretty good, and many Wikipedians have used ASE to spot and fix thousands of articles:

ASE is open source, of course.
If you feel like editing Wikipedia, have a look at the list of spotted articles and tips.
Good editing!
Nicolas Raoul
@nicolas_raoul

Wednesday, May 9, 2012

SDKを使わないAlfrescoモジュールの開発

Alfrescoのプラグインを開発する場合、
ここあそこにあるように次の準備作業が通常必要になります。

  1. SDKのダウンロード
  2. Embeddedプロジェクトのインポート
  3. インポートしたプロジェクトのビルドパスへの追加

しかし、各バージョンに対し一連の作業を行いたくないのが人情、
面倒くさいことこの上なし。そのため今回は

Mavenを使い、xxxServiceを使った開発をできるか?
or
Mavenを使い、xxxWebScriptを使った開発をできるか?

というFAQへの回答に代えて環境構築方法をご紹介します。

[前提]

  • Alfrescoのインストールが済んでいること
  • Mavenの使い方をなんとなくでも掴んでいること

では先に参りましょう。


  1. EclipseでMavenプロジェクトの作成
    適当に作ってください。

  2. pom.xmlの変更
    ポイントは次の箇所です。
    14         <repository>
    15             <id>alfresco-mirror</id>
    16             <name>Alfresco Public Mirror</name>
    17             <url>http://maven.alfresco.com/nexus/content/groups/public</url>
    18         </repository>

    これで、alfresco.comが公開しているMavenリポジトリを参照できます。このリポジトリはCommunity版のホスティングですが、バージョンを揃えていればEnterprise版でも(保証は無いですが)ある程度使える技です。

  3. あとはdependenciesタグ内に必要なクラスを含むjarを参照するための記述を行います。たとえば、SearchServiceはalfresco-datamodelに含まれるので次のように依存関係を追加しておきます。

    68         <dependency>
    69             <groupId>org.alfresco</groupId>
    70             <artifactId>alfresco-datamodel</artifactId>
    71             <version>4.0.br32534-mvn-SNAPSHOT</version>
    72             <classifier>community</classifier>
    73         </dependency>

  4. サンプルWebScriptの作成
    ここを見て適当に作ってください」と書こうと思いましたが同僚から文句が出そうなのでやや丁寧に書きます。具体的には次のものを作成します。
    • WebScript設定 ... custom-webscripts-context.xml
    • WebScript定義 ... hello_maven.get.desc.xml
    • WebScriptレスポンス ... hello_maven.get.html.ftl
    • WebScriptロジック ... HelloMaven.java

      HelloMaven#executeImplにあるように、今回のWebScriptでは/Company Home/Data Dictionaryの下を再帰的に検索してヒットした全コンテンツのNodeRefを返すようにします。

  5. build.xmlの作成
    Maven AntRun Pluginを使います。動作としては、packageフェーズ実行時にWebScript関連ファイルをAlfrescoインストールディレクトリへコピーするように記述します。

  6. Mavenの実行
    $ mvn package
    上記コマンドを実行することで、WebScript関連ファイルやjarファイルがAlfrescoの適切な場所へコピーされます。

  7. 動作確認
    Web Script Browserへアクセスし、
    Browse all Web Scripts -> GET /alfresco/service/tachibanakikaku/hello_mavenをクリックすると、作成したWeb Scriptが実行されます。認証が求められた場合にはadminユーザのものを入力してください。

うまく動作していれば、次のような画面が表示されているはずです。



うまく動きましたか。
今回作成したサンプルプロジェクトをGitHubに置きました。ぜひご利用ください。
次回は検索周りで有用な記事を書こうと考えています。

お楽しみに
---
mryoshio