数式を視覚的に入力できる数学的な検索エンジン

ほぼ半年前に、数学的検索システムuniquation.ruのプロジェクトに関する記事を書きました。 その後、建設的な批判が寄せられ、 プロジェクトの改善に役立ちました。



それ以来、プロジェクトは多くの変更を経ており、その主なものは数式の視覚的入力です-数学オブジェクトに関する情報を見つけるために、TeX形式での表現を知る必要はありません。











ハブルの影響について



プロジェクトの開発にはいくつかのターニングポイントがありました。1つ目は、2009年のImagine Cupへの参加でした。2つ目は、アルファ版の発表とハブでの発表です。 このイベントの後、dxdy.ruの作成者から連絡があり、協力の結果、このフォーラム( uniquation.ru/dxdy )とフォーラム自体( 検索フォーム)のみを検索する特殊バージョンの検索が登場しました。



次に、ハブに関する記事、 MediaWiki基づいたソルバーの作成経験を読んだ後、著者に連絡して協力を提供しました-結果は同じです:pluspi.orgでの検索を含む特殊バージョン-uniquation.ru/pluspiおよびリゾルバーサイトでの検索フォーム



これらの変更はHabrの影響なしで行われたことは間違いありませんが、後になります。 また、初期の実装により、スパイダーコードとインデクサーの一部のリファクタリングが引き起こされ、アーキテクチャに有益な効果がありましたが、現在でもこれらの変更はコード変更の高速化に貢献しています。



変更について



前回のリリース以降の最も重要な変更:数式の視覚的な入力を追加し、出力で同じ意味の数式をグループ化します。 最初は技術を知らなくてもシステムを使用でき、2番目は-「\ sin(x + y)」をクエリすると検索結果の最初のページに「\ sin(a + b)」などの式が散らばらないため、目的の結果をより速く取得できます'\ sin(x + y)'-ほとんどの場合、合計の正弦に必要な式が含まれています。



さらに、TeX言語のインタラクティブな教科書がサイトに登場しました。これは、windows7を使用していないユーザーに役立つ場合があります。



技術について



テクノロジーを選択する際のシステム開発の主なアプローチは非常に単純です。できることを書いて、ベンダーのロックインを避けるように努めてください。 この場合、それはC#言語と2つのプラットフォーム実装です:モノと.netフレームワーク。



残念ながら、数式の視覚的な入力に使用可能なコンポーネントはWindows 7のCOMコンポーネントとして利用可能であり、COMにアクセスできる唯一のRIAプラットフォームはsilverlight 4であるため、クライアントのベンダーロックインを除外できませんでした。入力式。



現在、サーバー部分を分散させる作業が進行中です。 データベースの操作を変更すると、キーによる読み取りまたは書き込みへの操作を減らすことができ、DHTに完全に依存します。 これまでMySQLが使用されてきましたが、おそらく将来的にはNoSQLの世界のものになるでしょう。



分散システムを作成する(データベースに加えて)別の側面は、マシン間の通信の実装です。 ベンダーのロックインを避けたいという欲求はWCFとMSMQをタブーにし、今日の失敗したアーキテクチャソリューションで未来への影響を最小限に抑えたいという欲求は、独立したコーディングおよびメッセージングシステムの選択を引き起こしました。 Googleのプロトコルバッファがエンコーディングとして選択されました-結局、Uniquationは検索エンジンでもあります:)問題は、GoogleがC ++、Java、PythonのみのAPIを提供し、サードパーティのライブラリが若すぎて重いことです。 解決策として、最初に1つのコマンドでjavaのjarを.netのdllに変換するプログラムであるIKVM.NETを使用しました。 このアプリケーションでは、プロジェクトレベルのEclipseを変換できるようになりました)



未来について



未来は忘れられた過去です。


このフレーズもここで機能します。 最後の投稿へのコメントでさえ、特定のソリューションではなく、このクエリと互換性のあるソリューションのクラスを見つけるというアイデアが表明されました。これにより、CASの数学情報の検索システムを開発できます。 2番目のHackdayでこのアイデアを話し、2位になりました。このプロトタイプはGaloisWiki( hackday2での発表 )と呼ばれていました



GaloisWikiのワークフロー:

画像







All Articles