dmoz/ODP ファイルからの URL だけが必要です。しかし、ファイルはRDFです。odp ファイルから URL のみを取得するにはどうすればよいですか? すべての URL をテキスト ファイルに抽出したいと考えています。
rdf ファイルから URL のみを解析するスクリプトを知っている人はいますか?
一般的な SemWeb API のいくつか (Jena、Sesame、および dotNetRDF) はすべて、RDF ファイル用の完全なストリーミング API を提供するため、生成された URI のみを取得し、興味のない残りのものを破棄するカスタム データ ハンドラーを作成できます。 .
おそらく perl を使ってハッキーなことをすることができます。そのほうが速いかもしれませんが、特に RDF が解決する必要がある相対 URI を使用している場合は、完全に正確ではないかもしれません。
オプション 1. http://sourceforge.net/projects/dmoz2mysql/files/latest/downloadから dmoz_v3.zip をダウンロードします。これは、DMOZ RDF データ ダンプ ファイルを自動的に解析するために使用される PHP スクリプトです。ファイルのダウンロード、データの抽出、クリーニング、解析、および MySQL データベースへの挿入が特徴です。
オプション 2. 次のリンクを使用して、RDF ダンプファイルから URL を抽出するツールを見つけます。
たぶん、このようなものはありますか?
#!/usr/bin/perl
use strict;
use warnings;
my $file = "kt-content.rdf.u8";
my @urls;
open(my $fh, "<", $file) or die "Unable to open $file\n";
while (my $line = <$fh>) {
if ($line =~ m/<(?:ExternalPage about|link r:resource)="([^\"]+)"\/?>/) {
push @urls, $1;
}
}
close $fh;
次に、@urls の内容をテキスト ファイルに出力します。