はじめに
さて、皆さんは競馬予想ソフトを作成したいと思ったことはありますでしょうか?
競馬予想ソフトを作るには、出馬データ、オッズデータ、種牡馬データや繁殖牝馬データなど競馬に関する様々なデータが必要になります。この連載では、JRAが提供する公式の競馬情報データサービス JRA-VANデータラボ を利用してそういったデータをダウンロードする方法についてご紹介していこうと思います。
今回は競馬情報データサービス JRA-VANデータラボ の概要について見ていきたいと思います。
そもそもJRA-VANデータラボとはなにか?
公式サイトを確認すると、すぐに以下の説明が見つかります。
要するに、JRAが有料配布している「JRA公式競馬データ」と「競馬予想ソフト」の2本立てとなっています。専用の「競馬予想ソフト」には公式の「TARGET」以外にも様々な個人開発のソフト(200本以上)が利用できるようですね。
この連載ではソフトの使い方を解説するのか?
いいえ違います。上記の200本以上あるという競馬予想ソフトにも当然興味はありますが、あくまで今回の目的は JRA-VANデータラボ で利用できる上記の個人開発ソフトがどのように動いているのか、実際に作成して動きを見ていきたいと思います。
ちなみに、当然開発方法については公式サイトでも詳しく解説されています。ただしそちらの解説ではVBとC++での解説となっていますので、今回はC#での利用を目的として作成していこうと思います。
具体的にどんな仕組みで動いているのだろうか?
まずは開発にあたって必要な用語をいくつか挙げていこうと思います。
JV-Link
- インストールする事で、実際に JRA-VAN へのアクセスを代行してくれるモジュールです。
- とても有能です。ユーザー認証、ダウンロードデータの管理を行ってくれます。
- ただし、 JV-Link がダウンロードしたデータを直接扱うことはありません。
JV-Data
- JV-Link を用いて JRA-VAN からダウンロードすることができるデータ本体です。
- 直接データの中身をテキストエディター等で読み込むことはできません。
- アプリケーションへ取り込む為には上記 JV-Link が必要になります。
JRA-VAN Data Lab. SDK
- Visual Studio で開発する際にアプリケーションへ組み込むAPI群です。
- JV-Link へダウンロードの指示を出したり JV-Link からデータを取り込めるようになります。
扱えるデータについて
JV-Link で扱えるデータには大きく分けて「速報系」と「蓄積系」の2種類あります。(仕様書では「蓄積系」の中でもさらに「蓄積系」と「非蓄積系」に分かれていますが。)
蓄積系
一つは過去のある時点から現在までの完全なデータを保持するパターンで、このパターンを必要とするソフトはJRA-VANのデータをデータベースとして利用し様々な角度からの分析や検索を主機能とするソフトになります。JRA-VAN Data Lab.ではこのような性格を持つソフトを「蓄積系ソフト」と呼びます。 (開発ガイドより)
- 私の勝手な思い込みで言えば、ごく一般的な利用方法です。
- すべての JV-Data をダウンロードして、過去のデータの統計を取って予想するためのデータではないかと思います。
非蓄積系
もう一つは今週開催されるレースに関する情報だけを必要とするパターンで、主に競馬新聞に代わるものとして利用されるソフトや予想を行なうソフトなどがこれにあたります。JRA-VAN Data Lab.ではこのような性格を持つソフトを「非蓄積系ソフト」と呼びます。 (開発ガイドより)
- 競馬新聞で言うところの「馬柱」のようなデータです。
- あくまで今週開催予定のレースについてのみ、関係する全データをダウンロードする方法のようです。
速報系
- 馬体重やオッズ、着順などのいわゆる速報データです。
- 競馬予想と言うより、あると便利的なツールの作成に必要になってきます。
今回は「蓄積系」についての解説をしていきたいと思っています。
JRA-VANからJV-Dataをダウンロードするまでの流れについて
JV-Data のダウンロードの流れについてイメージ図を描いてみました。
本来は JV-Link が認証処理も行っているのですが、基本的に意識する必要が無いので省いてあります。こんな図で大体理解していただけたでしょうか?
次にフローチャートにしてみました。
この中で実際にこれから開発しなければならないのは、一番上の「アプリケーション」の部分のみとなります。それ以外の全ての処理を JV-Link が裏で勝手に行ってくれます。
少し解説すると、
「自作アプリケーション」はまず JV-Link へどんなデータが欲しいと要望を出します。
⇒
JV-Link はデータが保管用フォルダーに存在しない場合、まず JRA-VAN から JV-Data をダウンロードしてきます。そして「自作アプリケーション」へ JV-Data を渡します。
⇒
「自作アプリケーション」は受け取った JV-Data を自前で用意したデータベース(AccessやMySQLなど)へ格納します。
まとめ
今回は、 JRA-VANデータラボ の概要と仕組みについて解説していきました。次回は、 JV-Data と JV-Link を利用するための開発環境の整備について解説していきたいと思います。