Strength

Technology

数学的手法と挑戦

社会をより正確に表象するシステム作りをするために、統計・学習・分散・構文解析・Graph・推論などの数学的手法で、データに着目し、あらゆるシステム開発に挑戦してきました。

Meta+GraphDB

ユーザーのためにいかに有効な情報を提供するかを考え、取り組んだものがGraphDBです。実社会にあるすべての「モノ」は、意味づけされることで、表象されていますが、その「モノ」と「モノ」の二点を射ることで、その意味を管理することができます。その連続した関係をもった graph データに世代管理やスナップショット機能、各種ドメインモデルの要件に合わせた集合を意味単位とするような独自の機能を強化し、自社 GraphDB を開発しています。また、ユーザの検索、情報のアラート機能を充実させるために、形態素解析、構文解析、学習機能を駆使し、様々な業種のビッグデータにメタの付与(リンク、グルーピング、検索メタ)を行うエンジン(MetaBuilder)を開発し、Hadoopを使用して、解析・推論などのメタデータ作成プロセスの分散実行環境を構築しています。

データ蓄積

データを構文解析して、意味ある単位に分類し、数千万件のデータを蓄積するエンジンを開発しました。特許データ、法情報データの蓄積に活用されています。

言語処理

データを構文解析して日本語形態素解析エンジン、日英機械翻訳機を開発しました。日英翻訳、ジオコーディング、データマインニング、全文検索エンジンを使用した検索システムに応用されています。

Innovation

価値の創新

科学技術の進歩により、劇的にあらゆるモノの進化が加速しています。この事象を我々は、理解し、体感しながら、常に価値の創新に取り組み、歴史を変えるようなビジネスに挑みます。

開発プラットフォーム

アジャイル系の開発においては、設計が頻繁に変更される事を前提としているため、設計と実装をどれだけ近く出来るかは、すべてのソフトウェア開発において非常に重要なポイントと考えています。実装の工夫や DSL 等で、実装が設計を表現するようにする事はある程度は可能ですが、プロダクトオーナーやドメインエキスパートが実装から設計および要件を読み取る事は、困難な状況です。そこでJurabiは、この問題に対処しつつ、社会における相互作用をシステム化する開発プラットフォーム構築しています。

  • DDD(ドメイン駆動設計)
  • マイクロサービス
  • ヘキサゴナルアーキテクチャ
  • JDT(Eclipse Java Development Tools)
  • JGIT

機械学習

我々のミッションは、数学的手法でリアルをシステムでどれだけ表象できるかであり、その一つのアプローチとして「機械学習」に取り組んでいます。これまでのビッグデータの特徴を学習してきた経験を活かし、さまざまな分野にこの機能を投じていきます。※詳細は、非公開

Experience

学んだ心得

扱うデータが大規模でかつ非機能要件が高いレベルを求められるプロジェクトに数多く参画し、その責任を負う中で、いくつもの修羅場がありました。その経験から早い段階での問題発見と解決が必要であることを身に沁みており、以下のような心得があります。

数学的手法

技術的解決が困難な問題が発生した場合は、まず、要件の見直しを行い、解決の必要性を探ります。そして、解決必要な場合、常に数学書や学術論文等を見て解決法を探っています。また、その役割を担うリソースをチームに配置するようにしています。

オープンソースリーディング

オープンソースのライブラリを選定する際、ドキュメント、ソースを確認し、どの程度の要件に耐えられるか判定しています。また、使用するライブラリのソースを読む訓練をすることで、ソースリーディング力を養っています。

ソースの単純化

要件が複雑になってきても、責務の分割を誤らないようにし、同一の状態を複数の機能で共有しないようにソースの単純化をしています。

機能追加に際して

機能追加の前には、必ずリファクトを行い、機能追加が無理なく行えるようにインタフェースレベルで見直し、機能を担保する単体・結合試験を徹底的に自動化します。

オープンソースの問題対処

オープンソースのライブラリに何らかの問題があった場合や、公開されているAPIでは要求が満たせない場合は、独自のパッチや機能拡張を作成して対応しています。

アーキテクチャ検証

非機能要件が、ボトルネックになる事を想定し、プロジェクトの初期段階で性能検証用のプロトタイプを作成し、考慮しているアーキテクチャが要件を満たすか検証するようにしています。

インフラストラクチャ層を意識しない作り

オープンソースのライブラリを使用する場合でも、アプリケーション側が使用するための独自フレームワークを作成し、出来る限りインフラストラクチャ層を意識せずに実装出来るようにしています。これにより、性能やセキュリティ等の非機能要件に基づく重大な問題が発見された場合でも、アプリケーション側の改修が最小で済むようにしています。

お仕事のご依頼・ご相談や採用に関しては、
こちらからお気軽にお問い合わせください。