(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023056240
(43)【公開日】2023-04-19
(54)【発明の名称】計算機システム及びドキュメントの提示方法
(51)【国際特許分類】
G06F 40/58 20200101AFI20230412BHJP
【FI】
G06F40/58
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021165473
(22)【出願日】2021-10-07
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】木下 秀樹
(72)【発明者】
【氏名】奥島 滉
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA03
(57)【要約】
【課題】言語ごとにドキュメントを生成することなく、所望の言語のドキュメントの閲覧/修正を実現する。
【解決手段】計算機システムは、所定の言語の文字列を含むドキュメントを格納するデータベースを管理し、ドキュメントには翻訳箇所に含まれる文字列の言語を示す情報が付与される。計算機システムは、対象のドキュメントの識別情報及び指定言語を含むアクセス要求を受け付け、データベースから対象のドキュメントを取得し、対象のドキュメントの翻訳箇所に含まれる文字列の言語が、指定言語と異なる場合、対象のドキュメントの翻訳箇所を特定し、特定された翻訳箇所に含まれる文字列を指定言語の文字列に翻訳し、ユーザに対象のドキュメントを提示する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
少なくとも一つの計算機を含む計算機システムであって、
所定の言語の文字列を含むドキュメントを格納するデータベースを管理し、
前記ドキュメントには、当該ドキュメントの翻訳箇所に含まれる文字列の言語を示す情報が付与され、
前記少なくとも一つの計算機は、
対象のドキュメントの識別情報及び指定言語を含むアクセス要求を受け付け、
前記データベースから前記対象のドキュメントを取得し、
前記対象のドキュメントの翻訳箇所に含まれる文字列の言語が、前記指定言語と異なる場合、前記対象のドキュメントの前記翻訳箇所を特定し、
特定された前記翻訳箇所に含まれる文字列を前記指定言語の文字列に翻訳し、ユーザに前記対象のドキュメントを提示することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記少なくとも一つの計算機は、
特定された前記翻訳箇所に含まれる文字列が前記指定言語の文字列に翻訳された前記対象のドキュメントと、前記指定言語とを対応付けて、前記データベースに格納することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記ドキュメントの前記翻訳箇所を特定するためのルール情報を管理し、
前記少なくとも一つの計算機は、前記ルール情報に基づいて、前記対象のドキュメントの前記翻訳箇所を特定することを特徴とする計算機システム。
【請求項4】
請求項3に記載の計算機システムであって、
前記ドキュメントは、ソースコードであり、
前記ルール情報は、ソースコードに含まれるコメントを特定するためのコメント文字に関する情報であることを特徴とする計算機システム。
【請求項5】
計算機システムが実行するドキュメントの提示方法であって、
前記計算機システムは、
少なくとも一つの計算機を含み、
所定の言語の文字列を含むドキュメントを格納するデータベースを管理し、
前記ドキュメントには、当該ドキュメントの翻訳箇所に含まれる文字列の言語を示す情報が付与され、
前記ドキュメントの提示方法は、
前記少なくとも一つの計算機が、対象のドキュメントの識別情報及び指定言語を含むアクセス要求を受け付ける第1のステップと、
前記少なくとも一つの計算機が、前記データベースから前記対象のドキュメントを取得する第2のステップと、
前記少なくとも一つの計算機が、前記対象のドキュメントの翻訳箇所に含まれる文字列の言語が、前記指定言語と異なる場合、前記対象のドキュメントの前記翻訳箇所を特定する第3のステップと、
前記少なくとも一つの計算機が、特定された前記翻訳箇所に含まれる文字列を前記指定言語の文字列に翻訳し、ユーザに前記対象のドキュメントを提示する第4のステップと、を含むことを特徴とするドキュメントの提示方法。
【請求項6】
請求項5に記載のドキュメントの提示方法であって、
前記少なくとも一つの計算機が、特定された前記翻訳箇所に含まれる文字列が前記指定言語の文字列に翻訳された前記対象のドキュメントと、前記指定言語とを対応付けて、前記データベースに格納するステップを含むことを特徴とするドキュメントの提示方法。
【請求項7】
請求項6に記載のドキュメントの提示方法であって、
前記計算機システムは、前記ドキュメントの前記翻訳箇所を特定するためのルール情報を管理し、
前記第3のステップは、前記少なくとも一つの計算機が、前記ルール情報に基づいて、前記対象のドキュメントの前記翻訳箇所を特定するステップを含むことを特徴とするドキュメントの提示方法。
【請求項8】
請求項7に記載のドキュメントの提示方法であって、
前記ドキュメントは、ソースコードであり、
前記ルール情報は、ソースコードに含まれるコメントを特定するためのコメント文字に関する情報であることを特徴とするドキュメントの提示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドキュメントを翻訳し、提示する技術に関する。
【背景技術】
【0002】
世界でビジネスを行う企業のシステムは、24時間365日の運用を考えた場合、日本国内に限定した保守では対応できないため、世界を複数に分けてリージョンを設定し、各リージョンにデリバリーセンターを設置し、日本主導で世界的に保守を行う必要がある。
【0003】
システムの保守において、ソースコード等のドキュメント(データ)の修正を行った場合、保守者(例えば、プログラマ)は、ドキュメント内に、修正内容等をコメントとして記載しておくことが一般的である。当該コメントは、保守者が使用する言語、一般的には、保守者の母国語(例えば、日本語、英語、中国語、及び韓国語等)で書かれている。
【0004】
保守者は、複数種類の言語で記載されたコメントを含むソースコードにおいて、ソースコード自体の内容を理解することは容易である。なぜならば、プログラム言語は統一のコーディングルールにしたがって記述されているためである。しかし、ソースコードに含まれるコメントはその限りではない。
【0005】
グローバルな規模でシステムを維持/運用を行うためには、ソースコードだけではなく「なぜ又はどのように、そのような修正をしたのか」という意図を示すコメントを理解する必要がある。保守者が扱う言語(例えば、日本語)とは異なる言語(例えば、中国)で記載されたコメントの内容を正しく理解するためには異なる言語の知識が必要である。一つのソースコードを複数国の保守者が変更/修正を行う場合、異なる言語で記載されたコメントがソースコードに含まれる事態が発生し、正確なソースコードの理解を阻害する可能性があり、ひいてはバグの作りこみ、システム障害を引きおこす可能性がある。
【0006】
システムメンテナンスに係るドキュメントの翻訳方法として、特許文献1に記載の技術が知られている。
【0007】
特許文献1には、「マニュアル作成支援サーバは、第1言語のドキュメントのノード情報を第2言語のドキュメントのノード情報として複製するとともに、そのノード情報で規定されるパーツを第2言語のパーツとして対応づけてコピーする。また、パーツが更新された場合は、そのパーツに対応する他の言語のパーツについて更新に関する通知を行う。そして、パーツ管理テーブル440のパーツ及びマニュアル管理テーブル420のノード情報に基づいて、パーツを構造化したXMLデータを生成し、生成したXMLデータ及びレイアウトテンプレートに基づいてマニュアルを生成する。」ことが開示されている。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1に記載の手法では、ドキュメントを閲覧/修正するために言語ごとにドキュメントが生成される。本発明は、前述の課題に鑑みてなされたものである。
【課題を解決するための手段】
【0010】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つの計算機を含む計算機システムであって、所定の言語の文字列を含むドキュメントを格納するデータベースを管理し、前記ドキュメントには、当該ドキュメントの翻訳箇所に含まれる文字列の言語を示す情報が付与され、前記少なくとも一つの計算機は、対象のドキュメントの識別情報及び指定言語を含むアクセス要求を受け付け、前記データベースから前記対象のドキュメントを取得し、前記対象のドキュメントの翻訳箇所に含まれる文字列の言語が、前記指定言語と異なる場合、前記対象のドキュメントの前記翻訳箇所を特定し、特定された前記翻訳箇所に含まれる文字列を前記指定言語の文字列に翻訳し、ユーザに前記対象のドキュメントを提示する。
【発明の効果】
【0011】
本発明の代表的な形態によれば、言語ごとにドキュメントを生成することなく、所望の言語のドキュメントの閲覧/修正が可能となる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】実施例1のシステムの構成の一例を示す図である。
【
図2】実施例1のコメント管理DBのデータ構成の一例を示す図である。
【
図3】実施例1のソースコード管理DBのデータ構成の一例を示す図である。
【
図4】実施例1の処理部が実行する処理の一例を説明するフローチャートである。
【
図5】実施例1の処理部が提示する画面の一例を示す図である。
【
図6】実施例1の処理部が提示するソースコードの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0014】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0015】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【実施例0016】
実施例1では、ソースコードに含まれるコメントを翻訳対象とするシステムを説明する。ソースコードはドキュメントの一例である。
図1は、実施例1のシステムの構成の一例を示す図である。
【0017】
システムは、自社システム10、翻訳システム12、及び端末13を含む。自社システム10、翻訳システム12、及び端末13は、ネットワーク15を介して互いに接続される。ネットワーク15は、LAN(Local Area Network)、又は、5Gに対応したネットワークである。5Gは、高速、低レイテンシ、及び大容量の通信を特徴とする通信規格であるため、アクセス先のリージョンの違いによらずソースコードへの高速なアクセスが可能となる。なお、ネットワーク15の接続方式は有線及び無線のいずれでよい。
【0018】
端末13は、ソースコードを閲覧、編集、又は作成を行うユーザが操作する端末である。翻訳システム12は、言語の翻訳を行うシステムである。
図1では、端末13は一つであるが、複数存在してもよい。
【0019】
自社システム10は、システムの開発、管理、及び保守等を行うためのシステムである。実施例1の自社システム10はソースコードをファイル単位で管理している。自社システム10は、少なくとも一つの情報処理装置11を含む。情報処理装置11は、CPU100、記憶装置101、入出力装置102、及びネットワークインタフェース103を有する。
【0020】
CPU100は、記憶装置101に格納されるプログラムを実行する。CPU100がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、CPU100が当該機能部を実現するプログラムを実行していることを示す。
【0021】
本実施例のCPU100は、処理部120として機能する。処理部120は、ソースコードのアクセスを制御する。処理部120は、入力部121及び翻訳部122を含む。入力部121は、アクセス対象のソースコードの識別情報及びユーザが所望する言語等を含むアクセス要求を受け付ける。翻訳部122は、ソースコードのコメント箇所を特定し、翻訳システム12と連携して、コメント箇所を翻訳する。
【0022】
記憶装置101は、メモリ等であり、CPU100が実行するプログラム及びプログラムが使用する情報を格納する。記憶装置101は、プログラムが使用するワークエリアとしても利用される。
【0023】
本実施例の記憶装置101は、コメント管理DB130及びソースコード管理DB140を格納する。コメント管理DB130は、ソースコードの翻訳箇所を特定するためのルールを定義した情報であり、より具体的には、コメント箇所を特定するための情報である。コメント管理DB130の詳細は
図2を用いて説明する。ソースコード管理DB140は、ソースコードを管理するための情報である。ソースコード管理DB140の詳細は
図3を用いて説明する。
【0024】
入出力装置102は、キーボード、マウス、タッチパネル、及びディスプレイ等であり、外部からの情報の入力、外部への情報の出力を行う。ネットワークインタフェース103は、ネットワークを介して外部装置と通信する。
【0025】
実施例1では、自社システム10及び翻訳システム12は、ネットワーク15を介して接続されているがこれに限定されない。自社システム10に翻訳システム12が含まれてもよい。この場合、情報処理装置11及び翻訳システム12は、イントラネットを介して互いに接続される。また、翻訳部122が翻訳システム12の機能を有してもよい。
【0026】
図2は、実施例1のコメント管理DB130のデータ構成の一例を示す図である。
【0027】
コメント管理DB130は、No201、プログラム言語202、コメント文字203、及び1行目フラグ204を含むレコードを格納する。コメント箇所を示す一つのコメント文字(記号)に対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述のものに限定されない。
【0028】
No201は、レコードの識別情報を格納するフィールドである。プログラム言語202は、プログラミング言語の種別を格納するフィールドである。コメント文字203は、プログラム言語におけるコメント宣言を行うコメント文字を格納するフィールドである。1行目フラグ204は、プログラミング言語の特性上、ソースコードの1行目に記載しないとコメント宣言が有効にならない場合の判定に用いる。
【0029】
図3は、実施例1のソースコード管理DB140のデータ構成の一例を示す図である。
【0030】
ソースコード管理DB140は、No301、ファイル名302、パス303、プログラム言語304、及び言語305を含むレコードを格納する。一つのファイル(ソースコード)に対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。
【0031】
No301は、レコードの識別情報を格納するフィールドである。ファイル名302は、ファイル形式で管理されるソースコードの名称を格納するフィールドである。パス303は、ソースコードが格納されるパスを格納するフィールドである。プログラム言語304は、ソースコードのプログラム言語の種別を格納するフィールドである。言語305は、ソースコードに含まれるコメントの言語を格納するフィールドである。後述するように、言語305には最新のコメントの言語が格納される。
【0032】
なお、パス303が空欄の場合、プロジェクトで共通のパス等、特定のパスを表すものとする。
【0033】
図4は、実施例1の処理部120が実行する処理の一例を説明するフローチャートである。
図5は、実施例1の処理部120が提示する画面の一例を示す図である。
図6は、実施例1の処理部120が提示するソースコードの一例を示す図である。
【0034】
処理部120の入力部121は、
図5に示すような画面500を表示し(ステップS101)、アクセス対象のソースコードの識別情報及び言語の入力を受け付ける。画面500は、入力欄501、502及びボタン503を含む。入力欄501は、アクセス対象のソースコードの識別情報を入力する欄である。入力欄501には、例えば、ファイルの名称が格納される。入力欄502は、ユーザが所望する言語を入力する欄である。
図5の入力欄502には、選択可能な言語がプルダウンリストとして表示される。ボタン503は、アクセスを要求するための操作ボタンである。ユーザがボタン503を押下した場合、入力欄501、502に入力された値を含むアクセス要求が入力部121に送信される。
【0035】
処理部120の入力部121は、ソースコード管理DB140を参照し、アクセス対象のソースコードのプログラム言語及びコメントの言語を特定し(ステップS102)、また、アクセス対象のソースコードを取得する(ステップS103)。なお、ステップS102及びステップS103の順番は入れ替えてもよい。
【0036】
具体的には、入力部121は、ソースコード管理DB140を参照して、ファイル名302にアクセス要求に含まれるファイル名が設定されるレコードを検索し、検索されたレコードのプログラム言語304及び言語305に格納されるプログラム言語及びコメントの言語を取得する。また、入力部121は、検索されたレコードのパス303に格納されるパスからソースコードを取得する。
【0037】
例えば、ファイル名が「ZPG0010」である場合、プログラム言語として「ABAP」、コメントの言語として「EN」が取得される。
【0038】
処理部120の入力部121は、ユーザによって指定された言語(指定言語)と、コメントの言語とが一致するか否かを判定する(ステップS104)。ユーザが指定したソースコードが「ZPG0010」かつ指定言語が「JA」である場合、コメントの現在の言語は「EN」であるため、指定言語とコメントの言語とが異なる。
【0039】
指定言語とコメントの言語とが一致する場合、処理部120の入力部121は、ステップS103にて取得したソースコードをユーザに提示し(ステップS108)、その後、処理を終了する。
【0040】
指定言語とコメントの言語とが異なる場合、処理部120の入力部121は翻訳部122を呼び出す。このとき、入力部121は、指定言語と、ステップS102において検索されたレコードのNo301の値とを、翻訳部122に入力する。翻訳部122は、翻訳システム12と連携してソースコードの翻訳処理を実行する(ステップS105)。具体的には、以下のような処理が実行される。
【0041】
(S105-1)翻訳部122は、ステップS102において取得されたプログラム言語に基づいてコメント管理DB130を参照し、コメント箇所を特定するためのコメント文字の情報を取得する。具体的には、翻訳部122は、プログラム言語202にステップS102において取得されたプログラム言語が格納されるレコードを検索し、当該レコードのコメント文字203及び1行目フラグ204の値を取得する。
【0042】
(S105-2)翻訳部122は、取得したコメント文字の情報に基づいて、ソースコードのコメント箇所を特定し、コメント箇所の文字列を取得する。
【0043】
(S105-3)翻訳部122は、取得した文字列及び指定言語を翻訳システム12に入力することによって、コメント箇所の文字列を指定言語の文字列に翻訳する。以上が、ステップS105の処理の説明である。
【0044】
例えば、ファイル名が「ZPG0010」である場合、翻訳部122は、コメント管理DB130からプログラム言語「ABAP」のコメント文字「*」及び「”」に関する情報を取得する。翻訳部122は、ソースコードのコメント文字を検索することによって、ソースコードの翻訳箇所を特定する。翻訳部122は、翻訳箇所に含まれる文字列及び指定言語「EN」を翻訳システム12に入力する。文字列が「”サンプル処理」の場合、「"SampleLogic」と翻訳される。
【0045】
処理部120の翻訳部122は、ソースコードのコメント箇所を更新する(ステップS106)。
【0046】
具体的には、翻訳部122は、ソースコードのコメント箇所の文字列を翻訳後の文字列に置き換える。
【0047】
処理部120の翻訳部122は、コメントの言語を更新し(ステップS107)、その後、入力部121に処理の完了を通知する。
【0048】
具体的には、翻訳部122は、No301に翻訳部122から入力された値が設定されるレコードを検索し、当該レコードの言語305に指定言語を設定する。
【0049】
入力部121は、翻訳部122から完了通知を受け付けた場合、コメント箇所の文字列が翻訳されたソースコードをユーザに提示し(ステップS108)、その後、処理を終了する。
【0050】
図6の上部に示す英語のコメントを含むソースコードがソースコード管理DB140に格納され、かつ、指定言語が「JA」の場合、処理部120は、コメント箇所の文字列を英語から日本語に翻訳し、
図6の下部に示す日本語のコメントを含むソースコードをユーザに提示する。一方、
図6の上部に示す英語のコメントを含むソースコードがソースコード管理DB140に格納され、かつ、指定言語が「EN」の場合、処理部120は、取得したソースコードをそのままユーザに提示する。
【0051】
以上で説明したように、実施例1のシステムは、言語とともにソースコードを管理することによって、言語ごとにソースコードを生成することなく、異なる言語のユーザが一つのソースコードを閲覧及び修正することができる。また、システムは、翻訳箇所を特定するため、翻訳する文は簡潔となり、誤訳を低減することができる。
【0052】
なお、処理部120は、コメント箇所の翻訳が完了する前に、コメント箇所を除いたソースコードを提示してもよい。これによって、迅速なソースコードの閲覧及び修正が可能となる。
【0053】
なお、実施例1では、ソースコードを扱うシステムを一例として説明したが本発明はこれに限定されない。仕様書等のドキュメントを扱うシステムでも同様の構成を適用することができる。
【0054】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0055】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0056】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0057】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0058】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。