日野岡雅人(ヒノオカ マサト)
筑波大学大学院 情報学学位プログラム 博士前期課程
連絡先: hinookajobhunting@gmail.com
自己紹介
筑波大学大学院 情報学学位プログラム(博士前期課程)に在籍し、2028年3月に修了予定です。メタデータ研究室で、Web 上で公開されたつながりのあるデータ(Linked Open Data)を、問い合わせ言語の SPARQL で使いやすくする手法を研究しています。個人では Web アプリやツールを作っています。
舞鶴工業高等専門学校の電気情報工学科では、ネットワークを構築する実験、マイコンや PLC の制御、オペアンプを使った電子回路の実験など、電気と情報の分野を幅広く学びました。4人のチームで Blender を使って舞鶴の引揚船(戦後の引揚げで使われた船)を再現した制作では、チームを引っ張るリーダーの役割を受け持ちました。卒業研究では、表面プラズモン共鳴(光と金属表面の電子の共鳴)を利用して蛍光を強める研究をしました。
4年次に参加したカナデビア株式会社(旧日立造船)のインターンシップで ICT 分野に強く興味を持ち、筑波大学 情報学群 情報メディア創成学類に3年次編入しました。より高度な機械学習や Web アプリの作成、FPGAを用いた表示回路などを学び、3年次の後期にメタデータ研究室に配属されました。
- 2026-現在 筑波大学大学院 情報学学位プログラム 博士前期課程(M1):データセットごとにスキーマが異なる Linked Open Data で、SPARQL クエリを書き始めるための支援を研究しています。大規模言語モデルでクエリの例を示す方法を扱い、2026年9月に研究会で発表しました。
- 2026 TA:Webアプリ作成実験(Ruby on Rails):学生がチームで Web アプリを作る授業で、4チームほどを見て回り、Ruby on Rails でのアプリの作り方とエラーへの対処を教えました。GitHub の使い方は自分で一から調べ直し、プルリクエストの送り方やチームでの慣習も教えました。
- 2024-2026 筑波大学 情報学群 情報メディア創成学類(3年次編入):卒業研究では、SPARQL クエリを別の LOD でも再利用できるように、実行はできても結果が0件になるクエリを、クエリ緩和で別のデータセット向けに変換する手法を検討しました。2026年3月に研究会で発表しました。
- 2022.08 インターンシップ(2週間):カナデビア株式会社(旧日立造船)ICT推進本部:前半は2030年の社会問題をテーマにしたブレインストーミングや、社外システムの展開案の議論に参加しました。後半は模型の車でブレーキの制動距離を測り、データを可視化しました。分析の前に課題を決め、それに沿ってデータを集めることが大切だと学びました。
- 2019-2024 舞鶴工業高等専門学校 電気情報工学科:電気電子を中心に、プログラミングの基礎も学びました。卒業研究では表面プラズモン共鳴を用いた蛍光増強を扱い、2024年3月に高専研究発表会で発表しました。
アルバイト:2025年3月〜7月 カインズ(開店の準備とレジ、のちにサービスカウンターで接客や発注の受付、レジ担当への指示も受け持ちました。)、2026年2月〜3月 大島輪業(自転車屋オレンジポルテ)(自転車の修理の受付や空気入れなどを受け持ちました。)
取り組んでいる研究
データセットごとにスキーマが異なる Linked Open Data で、SPARQL クエリを書き始めるための支援を研究しています。卒業研究ではクエリ緩和による別のデータセットへの再利用を、現在は大規模言語モデルによるクエリ例の提示を扱っています。
論文
- 2026.11 Toward Portable SPARQL Queries Across Linked Open Data: A Query Relaxation Approach to Cross-Dataset Rewriting(Masato Hinooka, Mitsuharu Nagamori。20th International Conference on Metadata and Semantics Research(MTSR 2026)。Accepted。査読有り)2026年3月の発表を発展させ、国際会議に採択された研究です。問い合わせを別のデータセット向けに書き換えても答えが0件になる原因を3つに分け、原因ごとに条件をゆるめる手順を作りました。545件の問い合わせで、答えが返る割合が86.4%から90.5%に上がりました。
- 2026.09 未知のLODデータセットに対する問い合わせのための知識獲得支援手法の検討(日野岡雅人, 永森光晴, 三原鉄也。人工知能学会 第69回セマンティックウェブとオントロジー研究会(SIG-SWO-069-08)。DOI: 10.11517/jsaisigtwo.2026.SWO-069_08)データの項目の決め方(スキーマ)はデータセットごとに違うため、初めて見る LOD に問い合わせを書くのは難しくなります。大規模言語モデルで、そのデータセットに合った問い合わせの例を示し、書き始めを助ける方法を検討しました。
- 2026.03 クエリの再利用性向上を目的とした異なるLODデータセット間におけるQuery Relaxation に基づくSPARQL 変換手法(日野岡雅人, 永森光晴, 三原鉄也。人工知能学会 第68回セマンティックウェブとオントロジー研究会(SIG-SWO-068-02)。DOI: 10.11517/jsaisigtwo.2026.SWO-068_02)あるデータセット向けに書いた問い合わせを別のデータセットで使うと、実行はできても結果が0件になることがよくあります。条件を少しずつゆるめて、別のデータセットでも答えが返る形に変換する手法を検討しました。
- 2024.03 表面プラズモン共鳴を用いた蛍光増強の基礎的検討(寺﨑雅人, 内海淳志。電気学会関西支部 第30回高専研究発表会)表面プラズモン共鳴は、ごく少ない量の物質を高い感度で検出できるため、バイオセンサーなどに使われています。研究室で作った金の微粒子のフィルタで、簡単な方法でも蛍光を強められるかを確かめました。フィルタの作製条件は分かりましたが、蛍光は期待したほど強まらず、原因として金の表面の状態や基板の間の距離を挙げました。
技術スタック
- SPARQL / RDF / Linked Open Data:SPARQL でクエリを書き、公開されている LOD に問い合わせて RDF のデータを扱えます。卒業研究では、異なる LOD の間で SPARQL クエリを使い回すため、実行はできても結果が0件になるクエリを、条件をゆるめるクエリ緩和で別のデータセット向けに変換し、結果が返るようにする手法を検討しました。現在は、データセットごとにスキーマが異なる LOD で、大規模言語モデルを使ってクエリの例を示し、使い始めを助ける方法を研究しています。
- Python:研究の実装は、ほぼ Python で書いています。SPARQLWrapper で SPARQL エンドポイントに問い合わせ、rdflib で RDF のデータを読み込んで加工しています。ほかに、研究データの可視化と処理、クエリの緩和処理(エンティティ・トリプルの置き換えや削除、数値の加工)、授業での機械学習、Flask による Web アプリの構築にも使いました。
- Linuxサーバ運用:研究室のサーバで、Docker で動く GitLab を 17.4 から 19.3 まで段階的にアップグレードし、SSL 証明書も更新しました。研究室の Web サイトの一部の更新も行いました。自宅では、常に動かしている Ubuntu のマシンで Nextcloud・PostgreSQL・Bitwarden(パスワード管理)を Docker で動かし、Tailscale でつないだネットワークの中で管理しています。
- GitHub:普段のリポジトリ管理と、プルリクエストを使った開発に使っています。このサイトでは、ビルドと公開、Spotify・Steam・GitHub などのデータの定期取得を、GitHub Actions のワークフローで自動化しています。Webアプリ作成実験の TA では、学生に GitHub の使い方を教えました。
基本的な作り方が分かる:React(このサイト)、Ruby on Rails(TA)、Ruby、TypeScript
授業で一通り触った:C、C++、Prolog、HDL、Arduino、ラズパイ
プロジェクト
どの作品も、実装のほとんどに Claude Code を使っています。
作ったアプリや実験を載せている個人サイト(このページもその一部)。個人で設計・実装・運用。使った技術:React 18, Vite 5, Tailwind CSS 3, GSAP, three.js, GitHub Actions, GitHub Pages
自分用のサイトとメモ置き場が欲しくて、2025年10月に作り始めました。2026年度の TA で学生が Web アプリを作るのを見て、人に見せられるものにしたいと思い、7月に見た目を一新して、実際のデータを見せる形に作り直しました。
- Spotify などのデータを GitHub Actions で定期的に取り込んでいます。
- 背景のマス目・色・書体を、すべてのページでそろえました。
- つくば市のオープンデータから、ごみ収集日のカレンダーを作りました。
GitHub Secrets で秘密の情報を扱う方法、GitHub Actions で定期的に処理を動かす方法、React、スマホにも合わせたデザインを学びました。
複数のマシンで動いている Claude Code のセッションを、1つの画面で見て操作するデスクトップアプリ(Happy 経由)。個人で設計・実装。使った技術:TypeScript, React 19, Vite, Tauri v2, Zod, Vitest, GitHub Actions
Tailscale でつないだ4台のマシンの Claude Code を、1つの画面で見て作業も振りたかったのがきっかけです。Happy の中継はそのまま使い、足りない PC 向けの画面だけを Tauri で作りました(メモリは実測200MB以下)。
- Happy の通信の部分は、公式のコードから仕様を書き起こして作り直しました。
- 画面を自由に分割し、複数のマシンのセッションを並べて操作できます。
- 止まったセッションも、メッセージを送ると自動で再開します。
AI に任せるときは、参考の画像や手本のアプリを添えて具体的に伝えること、報告をうのみにせず実機で確かめることを学びました。
Groq の Whisper API で音声を文字起こしする、CLI とデスクトップアプリ。個人で設計・実装。使った技術:TypeScript, React 19, Vite, Tauri v2, PostgreSQL, Drizzle ORM, ffmpeg, Vitest
1時間を超える授業の音声を文字起こしするため、CLI として作り始めました。使いながら画面・履歴・録音・辞書・注釈・検索を足し、Mac と Windows で同じ履歴を使えるよう自宅のサーバーに置きました。
- 無音の位置で区切ってつなぎ直し、1時間を超える音声も扱えます。
- 授業用に、PC の音とマイクの同時録音と、無音での自動停止を足しました。
- 聞き間違いは元の文を残したまま注釈で直し、辞書で次から防げます。
長い処理の異常はその場で知らせること、API キーを画面の側に持たせない設計を学びました。用語があいまいだと AI が意図と違う実装をするので、アプリの中の言葉で具体的に伝えることも学びました。
Claude の使用量(5時間のセッション枠と週の枠)を、タスクトレイとメニューバーに常に表示するデスクトップアプリ。個人で設計・実装・配布(Windows / macOS)。使った技術:TypeScript, Electron, electron-vite, Preact, node-pty, Vitest, GitHub Actions
使用量を見ながら、モデルの切り替えや並列での作業を判断したかったのがきっかけです。5時間の枠が後ろにずれていくのを防ぐため、枠が切れた瞬間に最小のコストで次の枠を始める機能も付けました。
- API がないため、裏で起動した Claude Code から使用量を読んでいます。
- 有料の送信は枠が切れたときだけにし、1回あたり約 $0.0016 に抑えました。
- 16×16 のトレイアイコンでも読めるよう、数字を専用のドット文字で描きました。
「動いているように見える」ことと「正しく動いている」ことは別で、重大な不具合の多くは実際に触って見つかりました。仕様が公開されていない部分は、推測せず実験で確かめることを学びました。
Claude Code のセッションの状態に反応して、作業の完了を声で知らせるデスクトップペット。個人で開発(オープンソースの petdex を取り込み、機能を追加)。使った技術:Zig(Native SDK), シェルスクリプト, Nix, GitHub Actions
複数のプロジェクトで Claude Code を並行して動かすと、終わったものや確認待ちで止まったものを見落とすため作りました。既存の3つの実装を比べ、足りなかった複数セッションへの対応を、MIT ライセンスの petdex をフォークして足しました。
- セッションを1匹にまとめ、確認待ちや失敗のときだけ声で知らせます。
- 吹き出しを押すと、そのセッションが動いている端末を前面に出します。
- Windows と WSL の Claude Code を同時に見張れるようにしました。
AI が「素材が悪い」で止まったとき、別のビューアと比べて本当の原因(縮小表示のやり方)を突き止めました。比較の相手を用意して切り分ける大切さを学びました。
AI駆動開発での学び
- 要件・画面の方針・できたかどうかの判定は自分が持ち、実装は Claude Code に任せます。
- 参考の画像や手本のアプリを添え、アプリの中の言葉で具体的に伝えます。
- 報告をうのみにせず、実際に触って確かめます。うまくいかないときは、比べる相手を用意して原因を切り分けます。