(57)【要約】【課題】  ビットを利用して文書に対するアクセス権限とタイプによって文書を検索するシステムおよび方法を提供する。【解決手段】  システムの１つ以上のプロセッサは、ユーザアカウントと関連するユーザが属する複数のグループを管理するグループ管理部、ユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、複数のグループに対応するビットを含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように文書ビット列のビット値を設定して管理する文書ビット列管理部、複数の文書を検索しようとする検索者に対し、複数のグループに対応するビットを含む検索者ビット列を生成し、検索者が属するグループを識別するように検索者ビット列のビット値を設定する検索者ビット列設定部、および文書ビット列と検索者ビット列とのビット値の比較により、検索者がアクセス可能な文書を検索する文書検索部を備える。【選択図】      図１
2017041247.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサを含むシステムであって、
前記１つ以上のプロセッサは、
１つのユーザアカウントと関連するユーザが属する複数のグループを管理するグループ管理部、
前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記文書ビット列のビット値を設定して管理する文書ビット列管理部、
前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む検索者ビット列を生成し、前記検索者が属するグループを識別するように前記検索者ビット列のビット値を設定する検索者ビット列設定部、および
前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能な文書を検索する文書検索部
を備えるシステム。
【請求項２】
前記文書検索部は、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値が０でない場合、前記第１文書を前記検索者がアクセス可能な文書として決める、請求項１に記載のシステム。
【請求項３】
１つ以上のプロセッサを含むシステムであって、
前記１つ以上のプロセッサは、
１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するタイプ管理部、
前記複数の文書それぞれに対し、前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書のタイプを識別するように前記文書ビット列のビット値を設定して管理する文書ビット列管理部、
前記複数の文書を検索しようとする検索者に対し、前記タイプ情報に含まれているタイプに対応するビットを含む検索者ビット列を生成し、前記検索者によって設定されたタイプを識別するように前記検索者ビット列のビット値を設定する検索者ビット列設定部、および
前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者によって設定されたタイプの文書を検索する文書検索部
を備えるシステム。
【請求項４】
前記文書検索部は、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値が前記検索者ビット列のビット値と同じである場合、前記第１文書を前記検索者によって設定されたタイプの文書として検索する、請求項３に記載のシステム。
【請求項５】
１つ以上のプロセッサを含むシステムであって、
前記１つ以上のプロセッサは、
１つのユーザアカウントと関連するユーザが属する複数のグループを管理するグループ管理部、
前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するタイプ管理部、
前記複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む第１文書ビット列および前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む第２文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記第１文書ビット列のビット値を設定し、前記対応する文書のタイプを識別するように前記第２文書ビット列のビット値を設定し、前記第１文書ビット列と前記第２文書ビット列とが連結された文書ビット列を生成して管理する文書ビット列管理部、
前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む第１検索者ビット列および前記タイプ情報に含まれているタイプに対応するビットを含む第２検索者ビット列を生成し、前記検索者が属するグループを識別するように前記第１検索者ビット列のビット値を設定し、前記検索者によって設定されたタイプを識別するように前記第２検索者ビット列のビット値を設定し、前記第１検索者ビット列と前記第２検索者ビット列とが連結された検索者ビット列を生成する検索者ビット列設定部、および
前記複数の文書に対して生成された文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書を検索する文書検索部
を備えるシステム。
【請求項６】
前記文書検索部は、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値において、前記第１検索者ビット列に対応するビット列のビット値が０ではなく、前記第２検索者ビット列に対応するビット列のビット値が前記第２検索者ビット列のビット値と同じである場合、前記第１文書を前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書として検索する、請求項５に記載のシステム。
【請求項７】
前記１つのユーザアカウントは、ブログサービスまたはソーシャルネットワークサービスのユーザに割り当てられたアカウントを含み、
前記複数の文書は、前記割り当てられたアカウントと関連して前記ユーザによって格納された文書を含む、請求項１〜６のうちいずれか一項に記載のシステム。
【請求項８】
コンピュータによって実現される方法であって、
プロセッサが、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するステップ、
前記プロセッサが、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記文書ビット列のビット値を設定して管理するステップ、
前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む検索者ビット列を生成し、前記検索者が属するグループを識別するように前記検索者ビット列のビット値を設定するステップ、および
前記プロセッサが、前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能な文書を検索するステップ
を含む方法。
【請求項９】
前記検索者がアクセス可能な文書を検索するステップは、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値が０でない場合、前記第１文書を前記検索者がアクセス可能な文書として決める、請求項８に記載の方法。
【請求項１０】
コンピュータによって実現される方法であって、
プロセッサが、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するステップ、
前記プロセッサが、前記複数の文書それぞれに対し、前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書のタイプを識別するように前記文書ビット列のビット値を設定して管理するステップ、
前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記タイプ情報に含まれているタイプに対応するビットを含む検索者ビット列を生成し、前記検索者によって設定されたタイプを識別するように前記検索者ビット列のビット値を設定するステップ、および
前記プロセッサが、前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者によって設定されたタイプの文書を検索するステップ
を含む方法。
【請求項１１】
前記検索者によって設定されたタイプの文書を検索するステップは、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値が前記検索者ビット列のビット値と同じである場合、前記第１文書を前記検索者によって設定されたタイプの文書として検索する、請求項１０に記載の方法。
【請求項１２】
コンピュータによって実現される方法であって、
プロセッサが、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するステップ、
前記プロセッサが、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するステップ、
前記プロセッサが、前記複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む第１文書ビット列および前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む第２文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記第１文書ビット列のビット値を設定し、前記対応する文書のタイプを識別するように前記第２文書ビット列のビット値を設定し、前記第１文書ビット列と前記第２文書ビット列とが連結された文書ビット列を生成して管理するステップ、
前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む第１検索者ビット列および前記タイプ情報に含まれているタイプに対応するビットを含む第２検索者ビット列を生成し、前記検索者が属するグループを識別するように前記第１検索者ビット列のビット値を設定し、前記検索者によって設定されたタイプを識別するように前記第２検索者ビット列のビット値を設定し、前記第１検索者ビット列と前記第２検索者ビット列とが連結された検索者ビット列を生成するステップ、および
前記プロセッサが、前記複数の文書に対して生成された文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書を検索するステップ
を含む方法。
【請求項１３】
前記検索者が、アクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書を検索するステップは、
前記複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と前記検索者ビット列のビット値とのＡＮＤ演算の結果値において、前記第１検索者ビット列に対応するビット列のビット値が０ではなく、前記第２検索者ビット列に対応するビット列のビット値が前記第２検索者ビット列のビット値と同じである場合、前記第１文書を前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書として検索する、請求項１２に記載の方法。
【請求項１４】
請求項８〜１３のうちいずれか一項に記載の方法をプロセッサに実行させるプログラム。
【請求項１５】
請求項１４に記載のプログラムが記録されている、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
下記の説明は、ビットを利用して文書に対するアクセス権限とタイプによって文書を検索するシステムおよび方法に関する。
【背景技術】
【０００２】
ブログやソーシャルネットワークサービスなどでは、１つのユーザアカウントと関連して多数の文書が管理される。このような文書は、アクセス可能なユーザをグループ別に分類して管理することができる。この場合、サービスを提供するシステムは、訪問者が属するグループを確認し、文書にアクセス可能なグループと訪問者が属するグループとを１つずつ比較しながら訪問者のアクセス可能な文書を検索する。例えば、ユーザのグループが、パブリック（ｐｕｂｌｉｃ）グループ、友達（ｆｒｉｅｎｄ）グループ、学校（ｓｃｈｏｏｌ）グループ、会社（ｃｏｍｐａｎｙ）グループ、野球クラブ（ｂａｓｅｂａｌｌ  ｃｌｕｂ）グループ、および家族（ｆａｍｉｌｙ）グループを含むと仮定する。１つの文書は、多数のグループのユーザがアクセス可能なように設定することができる。ここで、訪問者が友達グループと野球クラブグループに属すると仮定すると、システムは、友達グループのユーザのアクセスが認められた文書と野球クラブグループのユーザのアクセスが認められた文書を１つずつ検索しなければならない。文書へのアクセスが認められたグループに対する識別子が文書と関連付けられて格納されている場合、システムは、文書それぞれに対し、友達グループの識別子（一例として「ｆｒｉｅｎｄ」）と野球クラブグループの識別子（一例として「ｂａｓｅｂａｌｌ  ｃｌｕｂ」）が文書と関連付けられて格納されているかを１つずつ確認しなければならない。このような確認過程のためのコスト（ｃｏｓｔ）は、ユーザアカウントと関連して管理される文書の数が増えるほど増加する。
【０００３】
さらに、訪問者は、特定のタイプの文書を照会することもできる。例えば、文書のタイプが写真（ｐｈｏｔｏ）タイプ、動画（ｖｉｄｅｏ）タイプ、位置（ｌｏｃａｔｉｏｎ）タイプ、およびＵＲＬリンク（ｕｒｌ  ｌｉｎｋ）タイプを含むと仮定する。ここで、写真タイプの文書は写真のようなイメージが含まれている文書を、動画タイプの文書は動画が含まれている文書を、位置タイプの文書は緯度／経度座標などのように特定の位置を示す情報が含まれている文書を、ＵＲＬリンクタイプの文書はＵＲＬリンクが含まれている文書をそれぞれ示してよい。訪問者が動画タイプの文書を照会しようとする場合、システムは、全体文書それぞれに対して動画タイプに分類された文書を１つずつ確認しなければならない。例えば、文書Ａが動画タイプに分類されている場合、文書Ａは、動画タイプの識別子「ｖｉｄｅｏ」と共に格納されて管理されることがある。この場合、システムは、文書Ａが動画タイプの文書であるかを確認するために、文書Ａと関連して動画タイプの識別子「ｖｉｄｅｏ」が共に格納されているかを確認しなければならない。このような確認過程のためのコストも、ユーザアカウントと関連して管理される文書の数が増えるほど増加する。
【０００４】
このように、１つのユーザアカウントと関連して管理される文書の数が増加するほど、システムで特定の条件に該当する文書を検索するためのコストが増加するようになる。例えば、アクセス可能なグループや文書のタイプを比較するために関連情報がシステムのメモリにロードされなければならないため、文書の数が多くなるほど検索のためのメモリ使用量が増え、演算量も増加するようになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
文書別にアクセス可能なグループと文書のタイプに関する情報をビット情報に変換して管理し、検索者が属するグループと検索者によって設定されたタイプに対応するビット情報を生成し、ビット列間のビット演算に基づいて検索者がアクセス可能な文書および／または検索者によって設定されたタイプの文書を効率的に検索することができるシステムおよび方法を提供する。
【課題を解決するための手段】
【０００６】
１つ以上のプロセッサを含むシステムであって、前記１つ以上のプロセッサは、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するグループ管理部、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記文書ビット列それぞれのビット値を設定して管理する文書ビット列管理部、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む検索者ビット列を生成し、前記検索者が属するグループを識別するように前記検索者ビット列のビット値を設定する検索者ビット列設定部、および前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能な文書を検索する文書検索部を備えるシステムを提供する。
【０００７】
１つ以上のプロセッサを含むシステムであって、前記１つ以上のプロセッサは、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するタイプ管理部、前記複数の文書それぞれに対し、前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書のタイプを識別するように前記文書ビット列それぞれのビット値を設定して管理する文書ビット列管理部、前記複数の文書を検索しようとする検索者に対し、前記タイプ情報に含まれているタイプに対応するビットを含む検索者ビット列を生成し、前記検索者によって設定されたタイプを識別するように前記検索者ビット列のビット値を設定する検索者ビット列設定部、および前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者によって設定されたタイプの文書を検索する文書検索部を備えるシステムを提供する。
【０００８】
１つ以上のプロセッサを含むシステムであって、前記１つ以上のプロセッサは、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するグループ管理部、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するタイプ管理部、前記複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む第１文書ビット列および前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む第２文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記第１文書ビット列それぞれのビット値を設定し、前記対応する文書のタイプを識別するように前記第２文書ビット列それぞれのビット値を設定し、前記第１文書ビット列と前記第２文書ビット列とが連結された文書ビット列を生成して管理する文書ビット列管理部、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む第１検索者ビット列および前記タイプ情報に含まれているタイプに対応するビットを含む第２検索者ビット列を生成し、前記検索者が属するグループを識別するように前記第１検索者ビット列のビット値を設定し、前記検索者によって設定されたタイプを識別するように前記第２検索者ビット列のビット値を設定し、前記第１検索者ビット列と前記第２検索者ビット列とが連結された検索者ビット列を生成する検索者ビット列設定部、および前記複数の文書に対して生成された文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書を検索する文書検索部を備えるシステムを提供する。
【０００９】
コンピュータによって実現される方法であって、プロセッサが、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するステップ、前記プロセッサが、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記文書ビット列それぞれのビット値を設定して管理するステップ、前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む検索者ビット列を生成し、前記検索者が属するグループを識別するように前記検索者ビット列のビット値を設定するステップ、および前記プロセッサが、前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能な文書を検索するステップを含む方法を提供する。
【００１０】
コンピュータによって実現される方法であって、プロセッサが、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するステップ、前記プロセッサが、前記複数の文書それぞれに対し、前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書のタイプを識別するように前記文書ビット列それぞれのビット値を設定して管理するステップ、前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記タイプ情報に含まれているタイプに対応するビットを含む検索者ビット列を生成し、前記検索者によって設定されたタイプを識別するように前記検索者ビット列のビット値を設定するステップ、および前記プロセッサが、前記複数の文書に対する文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者によって設定されたタイプの文書を検索するステップを含む方法を提供する。
【００１１】
コンピュータによって実現される方法であって、プロセッサが、１つのユーザアカウントと関連するユーザが属する複数のグループを管理するステップ、前記プロセッサが、前記１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理するステップ、前記プロセッサが、前記複数の文書それぞれに対し、前記複数のグループに対応するビットをそれぞれ含む第１文書ビット列および前記タイプ情報に含まれているタイプに対応するビットをそれぞれ含む第２文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように前記第１文書ビット列それぞれのビット値を設定し、前記対応する文書のタイプを識別するように前記第２文書ビット列それぞれのビット値を設定し、前記第１文書ビット列と前記第２文書ビット列とが連結された文書ビット列を生成して管理するステップ、前記プロセッサが、前記複数の文書を検索しようとする検索者に対し、前記複数のグループに対応するビットを含む第１検索者ビット列および前記タイプ情報に含まれているタイプに対応するビットを含む第２検索者ビット列を生成し、前記検索者ユーザが属するグループを識別するように前記第１検索者ビット列のビット値を設定し、前記検索者によって設定されたタイプを識別するように前記第２検索者ビット列のビット値を設定し、前記第１検索者ビット列と前記第２検索者ビット列とが連結された検索者ビット列を生成するステップ、および前記プロセッサが、前記複数の文書に対して生成された文書ビット列それぞれと前記検索者ビット列とのビット値の比較により、前記検索者がアクセス可能であるとともに前記検索者によって設定されたタイプに該当する文書を検索するステップを含む方法を提供する。
【発明の効果】
【００１２】
文書別にアクセス可能なグループと文書のタイプに関する情報をビット情報に変換して管理し、検索者が属するグループと検索者によって設定されたタイプに対応するビット情報を生成し、ビット列間のビット演算に基づいて検索者がアクセス可能な文書および／または検索者によって設定されたタイプの文書を効率的に検索することができる。
【００１３】
演算量が少ないビット値の比較によって文書を検索することができるため、文書の検索のための演算を速い速度で処理することができる上に、検索に必要な情報のみをビット列構造のメタデータ形態で分離して検索を行うため、検索に求められるメモリ量を減らすことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【図４】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【図５】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の他の例を示した図である。
【図６】本発明の一実施形態における、サーバが実行することのできる方法の他の例を示したフローチャートである。
【図７】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素のさらに他の例を示した図である。
【図８】本発明の一実施形態における、サーバが実行することのできる方法のさらに他の例を示したフローチャートである。
【図９】本発明の一実施形態における、検索者に文書を検索して提供する過程の例を示した図である。
【発明を実施するための形態】
【００１５】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００１６】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００１７】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定型端末や移動型端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットＰＣなどがある。一例として、電子機器１（１１０）は、無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することができる。
【００１８】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうち１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００１９】
サーバ１５０、１６０それぞれは、電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して、命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数の装置によって実現されてよい。
【００２０】
一例として、サーバ１６０は、ネットワーク１７０を介して接続した電子機器１（１１０）にアプリケーションのインストールのためのファイルを提供することができる。この場合、電子機器１（１１０）は、サーバ１６０から提供されたファイルを利用してアプリケーションをインストールできるようになる。また、電子機器１（１１０）は、電子機器１（１１０）が含むオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）および少なくとも１つのプログラム（一例として、ブラウザや前記のインストールされたアプリケーション）の制御にしたがってサーバ１５０に接続し、サーバ１５０が提供するサービスやコンテンツの提供を受けることができる。例えば、電子機器１（１１０）がアプリケーションの制御にしたがってネットワーク１７０を介してサービスリクエストメッセージをサーバ１５０に送信すると、サーバ１５０は、サービスリクエストメッセージに対応するコードを電子機器１（１１０）に送信することができ、電子機器１（１１０）は、プリケーションの制御にしたがってコードに基づく画面を構成して表示することによってユーザにコンテンツを提供することができる。
【００２１】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、１つの電子機器に対する例としての電子機器１（１１０）、および、１つのサーバに対する例としてのサーバ１５０の内部構成を説明する。他の電子機器１２０、１３０、１４０やサーバ１６０も、同一または類似の内部構成を備えてもよい。
【００２２】
電子機器１（１１０）およびサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入出力インタフェース２１４、２２４を含んでよい。メモリ２１１、２２１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電気機器１（１１０）にインストールされ駆動されるブラウザや、上述したアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム（ｄｒｉｖｅ  ｍｅｃｈａｎｉｓｍ）を利用してメモリ２１１、２２１とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール２１３、２２３を利用してメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてもよい。
【００２３】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に格納されたプログラムコードにより受信される命令を実行するように構成されてもよい。
【００２４】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に格納されたプログラムコードにしたがって生成したリクエスト（一例として、コンテンツに対するストリーミングサービスリクエスト）が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてもよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）により受信されてもよい。例えば、通信モジュール２１３を通じて受信されたサーバ１５０の制御信号や命令などは、プロセッサ２１２やメモリ２１１に伝達されてもよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体に格納されてもよい。
【００２５】
入出力インタフェース２１４、２２４は、入出力装置２１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、また出力装置はアプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでよい。他の例として、入出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが入出力インタフェース２１４を通じてディスプレイに表示されてもよい。
【００２６】
また、他の実施形態において、電子機器１（１１０）およびサーバ１５０は、図２の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入出力装置２１５のうち少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
【００２７】
図３は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図であり、図４は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。図３に示すように、サーバ１５０のプロセッサ２２２は、グループ管理部３１０、文書ビット列管理部３２０、検索者ビット列設定部３３０、および文書検索部３４０を備えることができる。このようなプロセッサ２２２の構成要素は、図４の方法が含むステップ４１０〜４４０を実行するようにサーバ１５０を制御することができるが、このような制御のために、メモリ２２１が含むオペレーティングシステムと少なくとも１つのプログラムのコードを実行するように実現されてもよい。
【００２８】
ステップ４１０で、サーバ１５０は、１つのユーザアカウントと関連するユーザが属する複数のグループを管理することができる。例えば、グループ管理部３１０がステップ４１０のためのプログラムコードを実行することでステップ４１０が実行されてよい。
【００２９】
１つのユーザアカウントは、ブログサービスやソーシャルネットワークサービスのユーザに割り当てられたアカウントを含んでよく、ユーザアカウントと関連するユーザは、ユーザアカウントと関連するサイトやページなどを訪問したユーザであってよい。このようなユーザのうち少なくとも一部は、ユーザに対して友達やブログ友達などのように人的関係が設定されたユーザであってよい。ここで、アカウントのユーザは、ユーザを複数のグループに分類して管理してよい。
【００３０】
下記の表１は、ユーザが属する複数のグループの例を示している。
【００３１】
【表１】
2017041247.tif 000003
【００３２】
表１の例では、パブリック（ｐｕｂｌｉｃ）グループ、友達（ｆｒｉｅｎｄ）グループ、学校（ｓｃｈｏｏｌ）グループ、会社（ｃｏｍｐａｎｙ）グループ、野球クラブ（ｂａｓｅｂａｌｌ  ｃｌｕｂ）グループ、および家族（ｆａｍｉｌｙ）グループにユーザが分類される例を示している。このようなグループは、デフォルトとして予め設定されて提示（一例として、パブリックグループおよび友達グループ）されてもよいし、アカウントのユーザが直接設定（一例として、学校グループ、会社グループ、野球クラブグループ、および家族グループ）してもよい。
【００３３】
１人のユーザが複数のグループに分類されてもよい。例えば、表１の例において、ユーザａは、学校グループと野球クラブグループに分類されている。また、ユーザａは、パブリックグループに分類されてもよい。パブリックグループには、ユーザアカウントと関連するすべてのユーザが属してもよい。言い換えれば、ユーザアカウントと関連するすべてのユーザは、少なくともパブリックグループには属することができる。
【００３４】
表１の「メンバー」とは、各グループに属するユーザを示している。パブリックメンバーとは、ユーザアカウントと関連するすべてのユーザを意味してよく、友達メンバーとは、ユーザと人的関係が形成されたユーザを意味してよい。ユーザａ、ユーザｂ、ユーザｃ、ユーザｄ、ユーザｅ、ユーザｆ、およびユーザｇは、ユーザの識別子を意味してよい。
【００３５】
さらに、表１の「ビットインデックス」とは、以下で説明されるビット列において何番目に位置するビットが該当のグループを示すのかを意味するものであってよい。例えば、ビットインデックス０は、１番目に位置するビットがパブリックグループを示すことを、ビットインデックス１は、２番目に位置するビットが友達グループを示すことをそれぞれ意味してよい。
【００３６】
ステップ４２０で、サーバ１５０は、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれに対し、複数のグループに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように文書ビット列のビット値を設定して管理することができる。例えば、文書ビット列管理部３２０がステップ４２０のためのプログラムコードを実行することでステップ４２０が実行されてよい。
【００３７】
上述したように、ユーザアカウントは、ブログサービスやソーシャルネットワークサービスのユーザに割り当てられたアカウントを含んでよく、複数の文書は、割り当てられたアカウントと関連付けられてユーザによって格納された文書であってよい。例えば、ブログの場合の複数の文書は、ユーザアカウントのブログにポスティングされたポストであってもよい。他の例として、ソーシャルネットワークサービスの場合の複数の文書は、ユーザアカウントに対してユーザがアップロードした掲示物であってもよい。
【００３８】
サーバ１５０は、このような複数の文書それぞれに対し文書ビット列を生成してよい。ここで、文書ビット列は、複数のグループに対応するビットを含んでもよく、複数のグループのうちから該当の文書にアクセス可能なグループを識別するように文書ビット列のビット値が設定されてよい。
【００３９】
下記の表２は、９件の文書に対してビット値が設定された文書ビット列の例を示している。
【００４０】
【表２】
2017041247.tif 000004
【００４１】
表２は、文書１に対して文書ビット列「０００１００」が設定された例を示している。学校グループのビットインデックスは、表１に示すように「２」であることから、アクセス可能グループが学校グループである文書１は、ビットインデックス「２」に対応する３番目の位置のビット値が１に設定され、残りのビット値は０に設定されてよい。これと同様に、アクセス可能グループが友達グループである文書２は、ビットインデックス「１」に対応する２番目の位置のビット値が１に設定されてよい。
【００４２】
表２で、プライベートグループだけがアクセス可能な文書５は、アカウントのユーザしか見ることのできない文書であって、文書ビット列のすべてのビット値が０に設定された例を示している。
【００４３】
また、１つの文書に複数のグループのユーザがアクセス可能なように設定されてもよい。文書６には学校グループと野球クラブグループのユーザが、文書７には会社グループと野球クラブグループのユーザが、それぞれアクセス可能であることが分かる。例えば、文書６は、学校グループのビットインデックス「２」に対応する３番目の位置のビット値と、野球クラブグループのビットインデックス「４」に対応する５番目の位置のビット値がすべて１に設定されたことが分かる。
【００４４】
ステップ４３０で、サーバ１５０は、複数の文書を検索しようとする検索者に対し、複数のグループに対応するビットを含む検索者ビット列を生成し、検索者が属するグループを識別するように検索者ビット列のビット値を設定することができる。例えば、検索者ビット列設定部３３０がステップ４３０のためのプログラムコードを実行することによってステップ４３０が実行されてよい。
【００４５】
検索者とは、ユーザアカウントと関連するサイトやページなどを訪問したユーザを意味してよい。言い換えれば、サーバ１５０は、サイトやページを訪問したユーザが照会可能な文書を検索するのに先立ち、該当のユーザそれぞれのための検索者ビット列を生成してよい。検索者ビット列のビット値は、該当の検索者が属するグループのビット値は１に設定され、該当の検索者が属さないグループのビット値は０に設定されてよい。
【００４６】
下記の表３は、検索者ビット列の例を示している。
【００４７】
【表３】
2017041247.tif 000005
【００４８】
表１のユーザａがユーザアカウントのユーザと友達関係であると仮定すると、表１のユーザａに対する検索者ビット列は、表３のように設定されてよい。したがって、ユーザａが属するグループは、パブリックグループ（ビットインデックス０）、友達グループ（ビットインデックス１）、学校グループ（ビットインデックス２）、および野球クラブグループ（ビットインデックス４）となり、それぞれのグループのビットインデックスに対応するビット値は１に設定されてよい。
【００４９】
ステップ４４０で、サーバ１５０は、複数の文書に対する文書ビット列それぞれと検索者ビット列とのビット値の比較により、検索者がアクセス可能な文書を検索することができる。例えば、文書検索部３４０がステップ４４０のためのプログラムコードを実行することによってステップ４４０が実行されてよい。
【００５０】
ここで、特定の文書に対し、該当の文書の文書ビット列にて特定のビット値が１に設定されている場合、これに対応するグループのユーザは、該当の文書にアクセス可能であることを示す。検索者の検索者ビット列にて同じ位置のビット値が１に設定されている場合、該当の検索者は、該当の文書にアクセス可能であることが分かる。
【００５１】
このように、本実施形態によると、サーバ１５０は、簡単なビット列の比較によって検索者が各文書にアクセス可能であるかを容易に確認できるようになることから、検索者がアクセス可能な文書を効率的に検索することができるようになる。
【００５２】
例えば、サーバ１５０は、複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と検索者ビット列のビット値との論理演算（ＡＮＤ演算）の結果値が０でない場合、第１文書を検索者がアクセス可能な文書として決めてよい。
【００５３】
下記の表４は、検索者がアクセス可能な文書を論理演算によって検索する例を示している。
【００５４】
【表４】
2017041247.tif 000006
【００５５】
表４は、表２の文書２の文書ビット列「００００１０」と表３の検索者ビット列「０１０１１１」との論理演算結果「００００１０」を示している。このような論理演算結果が０（「００００００」）より大きいということは、文書ビット列と検索者ビット列との間に１で設定された互いに同じ位置のビット値が存在するということを意味してよく、これは検索者が文書２にアクセス可能であるということを意味してよい。実際に、学校グループ（ビットインデックス「１」）のユーザは文書２にアクセスすることができ、検索者は学校グループに属しているため文書２にアクセスすることができる。
【００５６】
下記の表５は、検索者がアクセス可能な文書を論理演算によって検索する他の例を示している。
【００５７】
【表５】
2017041247.tif 000007
【００５８】
表５は、表２の文書４の文書ビット列「００１０００」と表３の検索者ビット列「０１０１１１」との論理演算結果「００００００」を示している。論理演算結果が０であるということは、文書ビット列と検索者ビット列との間に１で設定された互いに同じ位置のビット値が存在しないということを意味してよく、これは、検索者が文書４にアクセスできないということを意味してよい。実際に、会社グループ（ビットインデックス「３」）のユーザは文書４にアクセス可能であるが、検索者は会社グループに属していないため文書４にアクセスすることはできない。
【００５９】
このように、サーバ１５０は、ビット列に対する単純なビット演算結果に基づいて検索者が該当の文書にアクセス可能であるかを容易に把握することができ、メモリ使用量や演算量のようなコストを減少させることができるようになる。
【００６０】
上述した表１〜表５では６種類のグループの例を説明したが、グループの種類やグループの数は、アカウントユーザの設定に応じて多様に変更されてもよい。
【００６１】
以上では、検索者がアクセス可能な文書を検索する実施形態について説明したが、ビット列間の比較は、検索者が希望するタイプの文書を検索するときにも利用することができる。
【００６２】
図５は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の他の例を示した図であり、図６は、本発明の一実施形態における、サーバが実行することのできる方法の他の例を示したフローチャートである。図５に示すように、サーバ１５０のプロセッサ２２２は、タイプ管理部５１０、文書ビット列管理部５２０、検索者ビット列設定部５３０、および文書検索部５４０を備えることができる。このようなプロセッサ２２２の構成要素は、図６の方法が含むステップ６１０〜６４０を実行するようにサーバ１５０を制御することができるが、このような制御のために、メモリ２２１が含むオペレーティングシステムと少なくとも１つのプログラムのコードを実行するように実現されてもよい。
【００６３】
ステップ６１０で、サーバ１５０は、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理することができる。例えば、タイプ管理部５１０がステップ６１０のためのプログラムコードを実行することでステップ６１０が実行されてよい。
【００６４】
文書のタイプは、一例として、該当の文書がどのようなコンテンツを含んでいるかによって分類されてよい。例えば、文書が写真（またはイメージ）を含む場合、該当の文書は写真（ｐｈｏｔｏ）タイプに分類されてよい。他の例として、文書が動画を含む場合、該当の文書は動画（ｖｉｄｅｏ）タイプに分類されてよい。文書が写真と動画をすべて含む場合、該当の文書は写真タイプと動画タイプに分類されてよい。言い換えれば、１つの文書は、１つ以上のタイプに分類されることがある。
【００６５】
下記の表６は、タイプの種類とタイプに基づいたビットインデックスの例を示している。
【００６６】
【表６】
2017041247.tif 000008
【００６７】
該当の文書にＧＰＳ座標のような位置情報が含まれる場合、該当の文書は位置タイプに分類されてよく、該当の文書にＵＲＬリンクが含まれる場合、該当の文書はＵＲＬリンクタイプに分類されてよい。ビットインデックスは、以下で説明される文書ビット列のビットの位置を示してよい。
【００６８】
ステップ６２０で、サーバ１５０は、複数の文書それぞれに対し、タイプ情報に含まれているタイプに対応するビットをそれぞれ含む文書ビット列を生成し、対応する文書のタイプを識別するように文書ビット列のビット値を設定して管理することができる。例えば、文書ビット列管理部５２０がステップ６２０のためのプログラムコードを実行することでステップ６２０が実行されてよい。
【００６９】
下記の表７は、文書のタイプを文書ビット列によって示した例を示している。
【００７０】
【表７】
2017041247.tif 000009
【００７１】
例えば、文書１は、動画のみを含んでいるため、動画タイプに分類され動画タイプのビットインデックス「１」に対応する２番目の位置のビット値は１に設定された。テキストタイプの文書３と文書５の場合には、文書ビット列のビット値がすべて０に設定され、文書２と文書８は２つ以上のタイプに分類された例を示している。
【００７２】
ステップ６３０で、サーバ１５０は、複数の文書を検索しようとする検索者に対し、タイプ情報に含まれているタイプに対応するビットを含む検索者ビット列を生成し、検索者によって設定されたタイプを識別するように検索者ビット列のビット値を設定することができる。例えば、検索者ビット列設定部５３０がステップ６３０のためのプログラムコードを実行することでステップ６３０が実行されてよい。
【００７３】
下記の表８は、タイプに対する検索者ビット列の例であって、ユーザａが、位置タイプであるとともにＵＲＬリンクタイプである文書を照会するためにタイプを設定した例を示している。
【００７４】
【表８】
2017041247.tif 000010
【００７５】
ステップ６４０で、サーバ１５０は、複数の文書に対する文書ビット列それぞれと検索者ビット列とのビット値の比較により、検索者によって設定されたタイプの文書を検索することができる。例えば、文書検索部５４０がステップ６４０のためのプログラムコードを実行することでステップ６４０が実行されてよい。
【００７６】
サーバ１５０は、特定の文書の文書ビット列と検索者ビット列とが互いに同じである場合、該当の文書を検索者が希望するタイプの文書として検索してよい。より具体的に、サーバ１５０は、複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と検索者ビット列のビット値との論理演算（ＡＮＤ演算）の結果値が第２ビット列のビット値と同じである場合、第１文書を検索者によって設定されたタイプの文書として検索してよい。このためのビット演算の例について、下記の表９を参照しながら説明する。
【００７７】
【表９】
2017041247.tif 000011
【００７８】
表９は、表７の文書２の文書ビット列「１１００」と表８の検索者ビット列「１１００」との論理演算結果「１１００」を示している。ここで、論理演算結果「１１００」が検索者ビット列と同じであるということは、検索者ビット列と文書２の文書ビット列とが互いに同じであるということを意味してよいが、これは、文書２が検索者の希望するタイプの文書であることを示している。
【００７９】
下記の表１０は、ビット演算の他の例を示している。
【００８０】
【表１０】
2017041247.tif 000012
【００８１】
表１０は、表７の文書６の文書ビット列「０１００」と表８の検索者ビット列「１１００」との間の論理演算結果「０１００」を示している。ここで、論理演算結果「０１００」は、検索者ビット列と同じではないため、文書６は検索者が希望するタイプ（位置タイプであるとともにＵＲＬリンクタイプ）の文書ではないということが分かる。
【００８２】
このように、サーバ１５０は、ビット列に対する単純なビット演算結果によって検索者が希望するタイプの文書を容易に把握することができ、メモリ使用量や演算量のようなコストを減少させることができるようになる。
【００８３】
上述した表６〜表１０では４種類のタイプの例を説明したが、タイプの種類やタイプの数は、必要に応じて多様に変更されてもよい。
【００８４】
以上では、検索者がアクセス可能な文書を検索する実施形態と、検索者が希望するタイプの文書を検索する実施形態について説明した。一方、多数の条件を結合して文書を検索することも可能である。例えば、サーバ１５０は、検索者がアクセス可能な文書のうちから検索者が希望するタイプの文書を検索することもできる。
【００８５】
図７は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素のさらに他の例を示した図であり、図８は、本発明の一実施形態における、サーバが実行することのできる方法のさらに他の例を示したフローチャートである。図７に示すように、サーバ１５０のプロセッサ２２２は、グループ管理部７１０、タイプ管理部７２０、文書ビット列管理部７３０、検索者ビット列設定部７４０、および文書検索部７５０を備えることができる。このようなプロセッサ２２２の構成要素は、図８の方法が含むステップ８１０〜８５０を実行するようにサーバ１５０を制御することができるが、このような制御のために、メモリ２２１が含むオペレーティングシステムと少なくとも１つのプログラムのコードを実行するように実現されてもよい。
【００８６】
ステップ８１０で、サーバ１５０は、１つのユーザアカウントと関連するユーザが属する複数のグループを管理することができる。例えば、グループ管理部７１０がステップ８１０のためのプログラムコードを実行することでステップ８１０が実行されてよい。このような複数のグループについては上述で詳しく説明したため、重複する説明は省略する。
【００８７】
ステップ８２０で、サーバ１５０は、１つのユーザアカウントと関連付けられて格納された複数の文書それぞれを分類するためのタイプ情報を管理することができる。例えば、タイプ管理部７２０がステップ８２０のためのプログラムコードを実行することでステップ８２０が実行されてよい。タイプ情報とは、文書のタイプに関する情報を意味してよく、文書のタイプについては上述で詳しく説明したため、重複する説明は省略する。
【００８８】
ステップ８１０とステップ８２０は、実行順序が互いに変更されてもよい。
【００８９】
ステップ８３０で、サーバ１５０は、複数の文書それぞれに対し、複数のグループに対応するビットをそれぞれ含む第１文書ビット列およびタイプ情報に含まれているタイプに対応するビットをそれぞれ含む第２文書ビット列を生成し、対応する文書にアクセス可能なグループを識別するように第１文書ビット列のビット値を設定し、対応する文書のタイプを識別するように第２文書ビット列のビット値を設定し、第１文書ビット列と第２文書ビット列とが連結された文書ビット列を生成して管理することができる。例えば、文書ビット列管理部７３０がステップ８３０のためのプログラムコードを実行することでステップ８３０が実行されてよい。
【００９０】
ここで、第１文書ビット列は、図３および図４を参照しながら説明したグループのための文書ビット列に対応してよく、第２文書ビット列は、図５および図６を参照しながら説明したタイプのための文書ビット列に対応してよい。サーバ１５０は、このような第１文書ビット列と第２文書ビット列とを互いに連結して１つの文書ビット列を生成および管理してよい。この場合、文書ビット列のビットインデックスは、グループとタイプに対して区分可能なように設定されてよい。
【００９１】
例えば、下記の表１１は、文書のグループとタイプに対する文書ビット列の例を示している。タイプに対する第１文書ビット列のビットインデックスは、第１文書ビット列と第２文書ビット列との連結により、表６の０、１、２、３から１５、１６、１７、１８にそれぞれ変更された。なお、さらに多くの数のグループとさらに多くの数のタイプが存在する場合もあるが、表１１ではこれを省略して示した。
【００９２】
【表１１】
2017041247.tif 000013
【００９３】
表１１によると、一例として、文書１は、学校グループのユーザがアクセス可能な動画タイプの文書であることが分かる。他の例として、文書２は、友達グループのユーザがアクセス可能な位置タイプとＵＲＬリンクタイプの文書であることが分かる。
【００９４】
ステップ８４０で、サーバ１５０は、複数の文書を検索しようとする検索者に対し、複数のグループに対応するビットを含む第１検索者ビット列およびタイプ情報に含まれているタイプに対応するビットを含む第２検索者ビット列を生成し、検索者が属するグループを識別するように第１検索者ビット列のビット値を設定し、検索者によって設定されたタイプを識別するように第２検索者ビット列のビット値を設定し、第１検索者ビット列と第２検索者ビット列とが連結された検索者ビット列を生成することができる。例えば、検索者ビット列設定部７４０がステップ８４０のためのプログラムコードを実行することでステップ８４０が実行されてよい。
【００９５】
ここで、第１検索者ビット列は、図３および図４を参照しながら説明したグループのための検索者ビット列に対応してよく、第２検索者ビット列は、図５および図６を参照しながら説明したタイプのための検索者ビット列に対応してよい。サーバ１５０は、このような第１検索者ビット列と第２検索者ビット列とを互いに連結して１つの検索者ビット列を生成してよい。
【００９６】
下記の表１２は、第１検索者ビット列と第２検索者ビット列とが連結された検索者ビット列の例を示している。
【００９７】
【表１２】
2017041247.tif 000014
【００９８】
ステップ８５０で、サーバ１５０は、複数の文書に対して生成された文書ビット列それぞれと検索者ビット列とのビット値の比較により、検索者がアクセス可能であるとともに検索者によって設定されたタイプに該当する文書を検索することができる。
【００９９】
ビット値の比較の具体的な例として、サーバ１５０は、複数の文書のうち、第１文書に対して設定された文書ビット列のビット値と検索者ビット列のビット値との論理演算（ＡＮＤ演算）の結果値において、第１検索者ビット列に対応するビット列のビット値が０ではなく、第２検索者ビット列に対応するビット列のビット値が第２検索者ビット列のビット値と同じである場合、第１文書を検索者がアクセス可能であるとともに検索者によって設定されたタイプに該当する文書として検索してよい。
【０１００】
下記の表１３は、グループとタイプとがすべて反映された文書ビット列と検索者ビット列とを比較した例を示している。
【０１０１】
【表１３】
2017041247.tif 000015
【０１０２】
表１３は、文書２の文書ビット列「１１００・・・００００１０」と検索者ビット列「１１００・・・０１０１１１」との論理演算（ＡＮＤ演算）結果「１１００・・・００００１０」を示している。ここで、ビット演算結果において、第１検索者ビット列に対応するビット列のビット値「００００１０」が０ではなく、第２検索者ビット列に対応するビット列のビット値「１１００」が第２検索者ビット列のビット値「１１００」と同じであるため、文書２は検索者がアクセス可能であり、位置タイプとＵＲＬリンクタイプである文書である。表１３において、「比較値」とは、検索者ビット列で第１検索者ビット列に対応するビット列のビット値をすべて０に設定した値であって、ビット演算結果が「比較値」より大きい場合、該当の文書（文書２）はグループとタイプによる条件を満たすことができる。言い換えれば、ビット演算結果が「比較値」より大きい場合、該当の文書は、検索者がアクセスすることのできる文書であるとともに、検索者によって設定されたタイプの文書であると言える。
【０１０３】
図９は、本発明の一実施形態であって、検索者に文書を検索して提供する過程の例を示した図である。
【０１０４】
過程（１）は、ユーザＡ９１０がユーザＢのブログ９２０に訪問する過程である。例えば、ユーザＡ９１０は、電子機器１（１１０）を利用しネットワークを介してサーバ１５０が提供するユーザＢのブログ９２０にアクセスしてよい。
【０１０５】
過程（２）は、ユーザＢのブログ９２０を通じて設定されたタイプがプロセッサ２２２に伝達される過程である。例えば、ブログ９２０は、ユーザＡ９１０が希望する文書のタイプを設定することのできるユーザインタフェースを含んでよく、ユーザＡ９１０は、ブログ９２０のユーザインタフェースを利用して検索しようとする文書のタイプを設定してよい。ここで、設定されたタイプは、サーバ１５０のプロセッサ２２２に伝達されてよい。
【０１０６】
過程（３）は、プロセッサ２２２が検索者ビット列を生成する過程である。例えば、プロセッサ２２２は、ユーザＡ９１０のログイン情報を利用してブログ９２０のグループのうちユーザＡ９１０が属するグループを確認してよい。ここで、プロセッサ２２２は、確認されたグループによる第１検索者ビット列と伝達されたタイプによる第２検索者ビット列とをそれぞれ生成し、ビット値を設定し、第１検索者ビット列と第２検索者ビット列とを互いに連結して検索者ビット列を生成してよい。
【０１０７】
過程（４）は、プロセッサ２２２が文書ビット列格納領域９３０でブログ９２０に含まれている文書（ポスト）それぞれの文書ビット列を照会する過程である。このように、文書に対する文書ビット列は、予め生成されてブログ別に（ユーザアカウント別に）格納領域９３０に格納および管理されてよい。
【０１０８】
過程（５）は、プロセッサ２２２がビット列間を比較することにより、ユーザＡ９１０がアクセス可能であるとともにユーザＡ９１０によって設定されたタイプに該当する文書を検索する過程である。文書ビット列と検索者ビット列とを比較して文書を検索する方法については、上述で詳細に説明したとおりである。
【０１０９】
検索された文書は、ブログ９２０を通じてユーザＡ９１０に表示されてよい。
【０１１０】
このように、本発明の実施形態によると、文書別にアクセス可能なグループと文書のタイプに関する情報をビット情報に変換して管理し、検索者が属するグループと検索者によって設定されたタイプに対応するビット情報を生成し、ビット列間のビット演算に基づいて検索者がアクセス可能な文書および／または検索者によって設定されたタイプの文書を効率的に検索することができる。また、演算量が少ないビット値の比較によって文書の検索が可能であるため、文書を検索するための演算を速い速度で処理することができ、検索に必要な情報のみをビット列構造のメタデータ形態で分離して検索を行うため、検索に求められるメモリ量を減らすことができる。
【０１１１】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができるその他の様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいということが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成（ｐｒｏｃｅｓｓｉｎｇ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。
【０１１２】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでよく、思うままに動作するように処理装置を構成したり、独立的または集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ格納媒体または装置、または伝送される信号波（ｓｉｇｎａｌ  ｗａｖｅ）に永久的または一時的に具現化（ｅｍｂｏｄｙ）されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【０１１３】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【０１１４】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【０１１５】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【０１１６】
１１０、１２０、１３０、１４０：電子機器
１５０、１６０：サーバ
１７０：ネットワーク
【図１】
2017041247.tif 000016
【図２】
2017041247.tif 000017
【図４】
2017041247.tif 000018
【図６】
2017041247.tif 000019
【図７】
2017041247.tif 000020
【図８】
2017041247.tif 000021
【図９】
2017041247.tif 000022
【図３】
2017041247.tif 000023
【図５】
2017041247.tif 000024