1

Java (Android) で数年のプログラミング経験がありますが、API を使用して JSON データを取得するのはこれが初めてです。そのため、クエリされたトピックに関する基本的な事実を取得するために、Freebase API を使用することを考えましたが、これは現在非推奨であり、Google はそれを Wikidata に移動しています。ただし、クエリ API はまだベータ版であり、クエリ API のドキュメントやファクトを取得する方法を理解できません。ウィキデータとフリーベースに代わるものはありますか?

これらは私の最後の質問です:

  • Wikidata クエリ API をどのように使用すればよいか、誰か説明してもらえますか? そして、事実を読み取り可能な形式で取得しますか?
  • または、Wikidata 以外の Freebase のより良い代替案を教えてもらえますか?
4

1 に答える 1

2

アクセスするデータは、サブジェクトプロパティ (述語)オブジェクト( SPO ) 形式で格納されます。つまり、サブジェクトと、たとえばプロパティに関連付けられたオブジェクトがあることを意味します。<Albert_Einstein> <wasBornIn> <Germany>

通常、SPARQL を使用して、エンドポイント経由でこれらの SPO データベースにアクセスできます。SPARQL は SQL に似た言語であり、クエリを作成してデータにアクセスできます。幸いなことに、ウィキデータには、使用できる sparql エンドポイントもあります: https://query.wikidata.org/

以下は、rdf-schema ラベルを使用して参照されるすべてのサブジェクトを String "Titanic" にロードし、結果を 100 エントリに制限する簡単な例です。

select distinct ?a where {?a <http://www.w3.org/2000/01/rdf-schema#label> "Titanic"@en } LIMIT 100 

Java でウィキデータにクエリを実行するには、Jenaを使用できます。これにより、SPARQL クエリとエンドポイントを使用してデータにアクセスできるようになります。

私の知る限り、http を使用してウィキデータにアクセスすることもできますが、SPARQL を使用するといくつかの利点があります。私が知っている他に 2 つの大きなデータベースがあり、どちらも SPARQL エンドポイントを備えています。したがって、他の 2 つのデータベースにアクセスするようにエンドポイントを変更するのは非常に簡単です。また、あるデータベースに別のデータベースへの参照が含まれている可能性もあります。これをたどって、より多くのデータを収集できます。

あなたは代替案も求めたので、私が言及した2つのデータベースは DBpedia ( SPARQL-Endpoint ) とYago ( SPARQL-endpoint ) です。どちらもウィキペディアを使用して事実を抽出しているため、膨大な量になります。また、Yago は WordNet を使用して、データの分類に使用できる優れた分類法を構築します。一方、DBpedia には、使用できる他のサイトへの参照がたくさんあります。

于 2016-03-25T19:33:50.213 に答える