stanford-oval/wikipedia huggingface dataset:
三重県立大学
歴代学長

初代： 星野貞次 （1950年4月 - 1961年3月）
第2代： 渡邊篤 （1961年4月 - 1967年3月）
学長職務代理： 神前武和 （1967年4月 - 1968年9月）
学長職務代理： 石部修 （1968年9月 - 1968年9月）
第3代： 石部修 （1968年10月 - 1972年9月）
第4代： 高崎浩 （1972年10月 - 1975年3月）
校地

開学当初は、前身の旧制県立医大から引き継いだ津市大谷町11番地の校舎を使用した。1959年4月に大学本部・医学部は津市鳥居町 （附属病院隣接地） に移転し、大谷校地は水産学部専用となった。県立大学の国立移管が具体化するに従い、国立三重大学の隣接地に移転することになり、1969年1月に水産学部が津市江戸橋3丁目 （元・三重大学農学部上浜農場） に移転。次いで医学部も1970年12月に江戸橋2丁目 （同） に移転した。江戸橋 （上浜） 校地は三重大学医学部・水産学部 （現・生物資源学部） に引き継がれ、現在の上浜キャンパスの一部となっている。
水産学部の旧大谷校地は、現在は三重県立美術館東の広場となっている。同校地に1951年頃に建設された旧図書館 （アントニン・レーモンド設計） は江戸橋校地に移設され、水産学部食堂や倉庫として利用された。現在は 「レーモンドホール」 と命名され、登録有形文化財として保存されている。
医学部の旧鳥居町校地は県立准看護婦学校に使用され、後身の三重県立看護短期大学に引き継がれた。看護短大は 4年制化して三重県立看護大学となり、津市夢が丘に移転した。現在、鳥居町の旧校地には、三重県リサイクルセンター・三重県鳥居会館などが設置されている。
附属病院は、旧制県立医大から引き継いだ附属病院本院 （津市栄町、旧・津市立病院、現・三重県警本部付近）、附属病院高茶屋分院 （津市高茶屋小森上野、元・津海軍工廠共済病院）、附属塩浜病院 （四日市市、元・海軍燃料廠附属病院） の 3病院に分かれていた。1962年6月に高茶屋分院を廃止し、本院に統合。1972年5月の三重大学医学部発足後、1973年3月に本院は津市江戸橋の医学部校地に新築移転し、同年10月に三重大学医学部附属病院となった。塩浜病院は津市から離れているため国立移管を断念し、県立病院に復帰した （後に塩浜から移転し、現・三重県立総合医療センター）。
参考書籍

三重大学開学50周年記念誌刊行専門委員会（編） 『三重大学五十年史 : 通史編・資料編』 三重大学開学50周年記念事業後援会、1999年9月。
三重大学開学50周年記念誌刊行専門委員会（編） 『三重大学五十年史 : 部局史編』 三重大学開学50周年記念事業後援会、1999年9月。
三重県立大学30年誌編纂委員会（編） 『三重県立大学誌』 三重県立大学創立30周年国立移管記念事業実行委員会、1975年。
アンナ＝マリア・ガロヤン

アンナ＝マリア・ガロヤン（エストニア語: Anna-Maria Galojan、1982年2月23日 - ）は、エストニアの元政治家、所属政党はエストニア改革党であった。2018年現在は、ロンドンで政治アナリストとして活動している。
2004年にタルトゥ大学で政治学の学士号を取得。2009年にスペインの雑誌が世界54カ国を対象にした「世界で最も美しい女性政治家ランキング」では、第9位にランクインした。
2011年5月5日、自身が運営するNPOの資金を私的に流用したとして、横領の罪で禁錮5ヶ月の有罪判決を受けた。彼女は判決を不服とし最高裁まで争っていたが、2012年2月に突如無断でイギリスへ出国した。逃亡先のロンドンでは、自身を「政治難民」であると説明。母国エストニアのメディアによるメディア・バイアスや、NPOの資金流用は自身が最高責任者に就任する以前に行われていたことなどを主張し、3年間に及ぶ法廷闘争へ入った。
2015年2月19日、イギリスからエストニアに送還され、同国北部にあるハルク刑務所へ移送され、同年7月14日釈放された。
CUTIE CINEMA REPLAY

『CUTIE CINEMA REPLAY』（キューティー・シネマ・リプレイ）は、2003年3月19日にヤマハミュージックコミュニケーションズより発売されたcapsuleの2枚目のオリジナルアルバムである（品番：YCCW-00041）。
前作「ハイカラ・ガール」と比べ、ピチカート・ファイヴを髣髴とさせる往年の渋谷系のような曲調になった。
ゲストボーカルとして、EeL、COPTER4016882などが参加している。
楽曲について

3.キャンディー キューティー feat.Sonic Coaster Pop
6.music controller (piconova-mix)
楽曲について > シングル収録

| ＃ | タイトル | 収録シングル |
| --- | --- | --- |
| 1 | open | 1枚目「CUTIE CINEMA pre-PLAY」（アナログ盤） |
| 2 | sweet time replay feat.dahlia | 1枚目「CUTIE CINEMA pre-PLAY」（アナログ盤） |
| 3 | キャンディー キューティー feat.Sonic Coaster Pop | 1枚目「CUTIE CINEMA pre-PLAY」（アナログ盤） |
| 4 | プラスチックガール feat.EeL | 5枚目「プラスチックガール」 |
| 4 | プラスチックガール feat.EeL | 1枚目「CUTIE CINEMA pre-PLAY」（アナログ盤） |
| 8 | fashion fashion feat.EeL | 1枚目「CUTIE CINEMA pre-PLAY」（アナログ盤） |
収録曲について

全作詞・作編曲：中田ヤスタカ
| # | タイトル | 作詞 | 作曲・編曲 | 時間 |
| --- | --- | --- | --- | --- |
| 1. | 「open」 |   |   | 0:12 |
| 2. | 「sweet time replay」(feat.dahlia) |   |   | 3:28 |
| 3. | 「キャンディー キューティー」(feat.Sonic Coaster Pop) |   |   | 3:38 |
| 4. | 「プラスチックガール」(feat.EeL) |   |   | 5:16 |
| 5. | 「french lesson」(feat.Sabou et Mamie) |   |   | 3:26 |
| 6. | 「music controller (piconova-mix)」 |   |   | 4:27 |
| 7. | 「おでかけ GO!GO!」(feat.Sylvia55) |   |   | 4:05 |
| 8. | 「fashion fashion」(feat.EeL) |   |   | 6:14 |
| 9. | 「ウダガワフライデー」(feat.COPTER4016882) |   |   | 4:19 |
| 10. | 「close」 |   |   | 0:58 |
アメンヘルケペシュエフ

| アメンヘルケペシュエフ Amenherkhepeshef |
| --- | --- |
 王太子
続柄:  ラムセス2世第1王子

全名:  Amenherkhepeshef 翻字：imn-hr-xpS.f 翻訳：Amen is with his strong arm
称号:  王太子, 軍の指揮官, 王の腹心, 王の書記, Fan-bearer on the Right Side of the King[訳語疑問点]
出生:  不詳 
死去:  不詳 
配偶者:  ネフェルタリ（ラムセス2世の三女、母親とは別人）
子女:  セティー
父親:  ラムセス2世
母親:  ネフェルタリ
テンプレートを表示
アメンヘルケペシュエフまたはアメンヘルケプシェフ（翻字: imn-hr-xpS=f, エジプト語英語化: Amenherkhepeshef, Amenhirkhopshef、生没年不詳）とは、古代エジプトのファラオ、ラムセス2世の第一王子。彼の姿を描いた壁画が残っている。
概要

アメンヘルケペシュエフはラムセス2世とネフェルタリとの間に長男として誕生した。誕生して間もなくネフェルタリは王妃とされている後に、同母兄弟には、プレヒルウォンメフ、へヌタウェイ、メルトアトゥム、メリトアメン、メリラーらが生まれる。
ファラオの次に栄誉的な称号であった「王太子（Pharaoh's Prince）」の称号を持っていた。
死後は、栄誉ある壮観な墓室に葬られたという。墓で見つかった遺物の中には、アメンヘルケペシュエフの名前が付けられた臓器が入っているカノプス壺があり、またメイスによる打撲痕であると考えられている、深い骨折のある頭蓋骨を含む4人の男性の骨もあった。
父・ラムセス2世
アルシノエ1世

プトレマイオス3世がつくらせたアルシノエ1世のドラクマ金貨
アルシノエ1世（ギリシア語:  Αρσινόη Α’ 紀元前305年 - およそ紀元前248年以降）は、プトレマイオス朝エジプトの王妃・女王（ファラオ・共同統治者）である。
経歴

マケドニア人とテッサリア人を祖にもつギリシア人であり、トラキア、小アジア、マケドニアの王であったディアドコイのリュシマコスと、その最初の妻である王妃ニケア（英語版）の次女として生まれた。彼女には2人の兄姉がおり、兄をアガトクレス（英語版）、姉をエウリュディケ（en）と言った。
父方の祖父はマケドニア王ピリッポス2世と同時代人の貴族であるペラのアガトクレスで、母方の祖父は権勢を誇った摂政のアンティパトロスである。アルシノエという名は祖母にちなんでつけられたものであるが、父方・母方双方とも祖母の名前は伝わっていない。またアルシノエ1世の結婚以前についてもほとんど知られていない。
紀元前289年から紀元前281年ごろに、アルシノエ1世はプトレマイオス朝エジプトのファラオ、プトレマイオス2世ピラデルポスの最初の妻となった。この結婚は母方の遠い親戚に嫁ぐものであり、さらにはセレウコス1世に対抗するため父親とプトレマイオス2世が結んだ同盟の延長、つまり政略結婚でもあった。
アルシノエ1世はこの結婚を通じてプトレマイオス朝の女王となり、プトレマイオス2世との間に3人の子をもうけている。息子のプトレマイオス3世エウエルゲテスとリュシマコス（英語版）、娘のベレニケ (en) である。時期は定かではないものの紀元前279年から紀元前273年頃に、夫プトレマイオス2世の姉アルシノエ2世がエジプトに帰国した。彼女は父リュシマコス王の最後の妻であり、リュシマコスと死別後に再婚した異母兄弟の夫プトレマイオス・ケラウノスと対立し逃れてきたのであった。ほどなくして、おそらくはこのアルシノエ2世の扇動で、プトレマイオス2世の暗殺を企てたとしてアルシノエ1世が咎め立てられた。
プトレマイオス2世はアルシノエ1世が謀ったものとして罪した。そのまま離婚が決まり、アルシノエ1世は南エジプトのコプトスへ追放された。一連の出来事がプトレマイオス2世の姪セオクセニア（英語版）のテバイスからおそらくコプトスへの追放とつながっていることから、時系列からももっともらしい。その後、プトレマイオス2世は同母姉であるアルシノエ2世と結婚し、プトレマイオス3世をはじめ先妻アルシノエ1世との子はアルシノエ2世が育てた。そしてアルシノエ2世の死後は正式にアルシノエ2世の子とみなされた。
アルシノエ1世は流刑地で20年を過ごした。彼女はかつてファラオの妻であったので、その間も堂々たる暮らしぶりで、大いに権力を振るった。プトレマイオス2世との最初の子は、父が亡くなるとその後を継いだ。
今もなおコプトスにはアルシノエ1世の人となりを語る碑文が残っている。これはアルシノエの家令であった人物の手によるものであろう、同時に彼はアルシノエ1世に追放されたのだとされている。彼はアルシノエ1世を「王の妻」と呼んでいるが、その名はエジプトの女王の常であるように王家のカルトゥーシュで囲まれてはいない。他にアルシノエ1世につながる断片的な現存する資料として、キプロスのラピトスにあるフェニキア語の碑文がある。こちらは年代としては、プトレマイオスの治世が始まって11年か12年目にあたるものである。これは「正当なる相続者とその妻」のために設けられた供犠について述べており、ここからアルシノエ1世のことだとされた。アルシノエ1世が裏切り者として貶められていた一方で、そのために生け贄を捧げた人物がいたという事実は、その知らせがまだこの地に届いていなかったことをよく示している。
Bitapアルゴリズム

Bitapアルゴリズム（英: Bitap algorithm）とは、ビット演算の並列性を利用した文字列探索アルゴリズムである。Baeza–Yates–Gonnetアルゴリズムや、shift-andアルゴリズム・shift-orアルゴリズムとも呼ばれる（andとorがあるのは、ブール代数の双対性にもとづくバリエーションである）。レーベンシュタイン距離などの編集距離に基づく「似た」文字列を見つけ出すあいまい検索（英語版）に利用できることが、他の文字列探索アルゴリズムにない特徴である。
概要

このアルゴリズムの基本的な考え方は1964年にBálint Dömölkiによって紹介された。1977年にR. K. Shyamasundarによって拡張された。
Ricardo Baeza-Yates、Gaston Gonnetらの成果をもとに1991年、Wu、Manberらによってあいまい検索へ適用可能であることが示されたのち、1996年にBaeza-Yates、Navarroらによって効率化され、1998年にEugene Myersによって長いパターンへ適用する方法が示された。
このアルゴリズムを実装しているプログラムとしては、agrepというユーティリティがある。
Bitapという名前については、agrepの添付文書agrep.chronicleの中に "Feb/91: The approximate pattern matching algorithm called 'bitap' (bit-parallel approximate pattern matching) is designed. The algorithm is a generalization of Baeza-Yates' "shift-or" algorithm for exact matching."（91年2月: 'bitap' (bit-parallel approximate pattern matching) と呼ばれる近似的パターンマッチングアルゴリズムが設計された。このアルゴリズムは完全一致マッチング用であるBaeza-Yatesの "shift-or" アルゴリズムの一般化である。）と書かれている。よって厳密には、あいまい検索に拡張したアルゴリズムに限定してbitapあるいはWuとManberのアルゴリズムとし、それ以外の名前はそれ以外のアルゴリズムも含む総称とすべきかもしれないが、通常特に区別されていない。
アルゴリズム

以下、shift-and型を前提に説明する。
例として対象の文字列 T = acbacbaca, パターン文字列 P = acbaca を考える。以下に示す表は横軸にT、縦軸にPを配置し、どのように遷移するかを示すものである。初期状態でRはすべて0で初期化される。右のビットマスクは、パターンP内に a, b, c それぞれが存在する場所が1に、存在しない場所が0になっている。
各R (R0, R1, R2, ...) のビットが1になっている部分は、パターンPの該当位置までマッチ（文字列の一致）が確認されたことを示す。例えば、R7: 001001 は、ビット000001でPの先頭1文字 ("a") とTの検索済み範囲 ("acbacba") の末尾1文字がマッチしている事を示し、ビット001000でPの先頭4文字 ("acba") とTの検索済み範囲の末尾4文字がマッチしていることを示している。
Rの遷移はビットシフトとビット単位のAND・ビット単位のORのみで行われる。例えば R5: 010010 から R6: 000100 への遷移は以下のようになる。
R5を1ビット左にシフトする。処理後の値は100100になる。
この値と000001とのビット単位のORを取る（つまり最下位ビットを1にする）。処理後の値は100101になる。
この値と、右テーブルのb用のビットマスク000100とのビット単位のANDを取る（文字列Tの6文字目は "b" なのでb用のビットマスクを使用する）。こうして R6 = 000100 が得られる。
この処理の1.と2.では、マッチング（文字列の一致判定）を後回しにして、R6で1になる可能性があるビットは全て1にしている。3.で行われているのがマッチング処理であり、b用のビットマスクとのANDにより、パターンと一致しなかった部分のビット（この例ではビット100000）が0になる。bのビットマスク000100は、検索済み範囲の最後が "b" の場合、前回が先頭2文字 ("ac") まで一致が確認された状態の時だけパターンと一致することを示すと解釈できる。こうして、ビット演算によって複数のマッチング処理が同時に進行する。
文字列T上を1文字ずつ進みながらこの処理を繰り返して、Rが使用する6ビット範囲の最上位ビットに1が立った時、それまでの経路がマッチした文字列だと言える。上の表ではR9の時に最上位ビット（表の一番下の行）に1が立っており、4文字目から9文字目までがマッチしたと判定されている。
このアルゴリズムはマッチングするパターンの状態遷移を表す非決定性有限オートマトン (NFA) をエミュレートする。
上記のパターンに対応するNFAはこの図のようになる。図のS1からS6の状態がRの各ビットに相当する。S0は、仮にRに含めても常に1が立っている状態になるため、明示的にRに含めて処理する必要はない。
S0の "?" を除けば、このNFAは分岐がない一本道である。また、状態遷移はS6により近い状態（図で言えば一つ右隣）への一方方向に限られる。そのため、一回のシフト処理と1とのビット単位のORによってNFAの全ての状態遷移先の候補を立て（上記処理の1.と2.に相当）、それらの候補のうち拒否 (reject) されるべきもの全てを一回のマスク処理で拒否することができる（上記処理の3.に相当）。
ビットシフト演算とマスク演算はコンピュータ上で高速に実行可能であり、また、バックトラックが不要なため、パターンに似た配列が含まれるときに高速に動作できる特長がある。
実装例

Shift-andアルゴリズムをRubyで実装した例と実行結果を以下に示す。このコードでは state が#アルゴリズムの表でのRに相当する。また、変数 pattern が表のパターンPに、変数 text が表のTに相当する。黄色の背景色でハイライトした部分がアルゴリズムの表で示したマッチング処理である。
#すべてのマッチした位置の末尾が配列として戻る
def shift_and(text, pattern)
  # 必要なビットマスクの数を調べる
  char_table = Array.new                # 検索対象文字列に含まれる文字の種類を格納
  text.chars do |tc|
    if not char_table.include?(tc) then
      char_table.push(tc)
    end
  end

  #「適合」したとみなす状態を定義
  finish = 1 << pattern.size-1

  # ビットマスクmaskに必要な領域を確保
  mask = Hash.new
  char_table.each do |ct|
    mask[ct] = 0
  end

  # maskの内容を生成
  pattern.chars do |pc|
    mask.each_key do |mk|
      mask[mk] >>= 1
      if pc == mk
        mask[mk] |= finish
      end
    end
  end

  # 実際にtextと照合させる
  state = 0                             # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    state = (state << 1 | 1) & mask[tc]
    if (state & finish) == finish       # 最上位ビットが1である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end

  return ret
end

p shift_and("acbacbaca", "acbaca")      # => [8]
p shift_and("ababaa", "aba")            # => [2, 4]
実行結果（マッチした位置。0オリジンなので、アルゴリズムのセクションで言う9文字目は "8" で表される。）
[8]
[2, 4]
Shift-orアルゴリズム

以上の説明はshift-and型のバリエーションを前提としている。ブール代数の双対性により、このアルゴリズムにはshift-or型のバリエーションがある。shift-orアルゴリズムでは、shift-andアルゴリズムにおけるビットを反転させた上でビット単位のORで探索を行う。すなわち、#実装例のRubyコードの state（#アルゴリズムの表のR）の初期状態 (R0) は全て1が立っているビット列になり、文字列比較をしていた部分である
state = (state << 1 | 1) & mask[tc]
は
state = (state << 1) | ~mask[tc]
になる。state が使用するビット範囲の最上位ビットが0になったときにパターンとマッチする部分が発見されたことになる。
まとめると、shift-orでは実装例のコードの黄色でハイライトした部分が以下のように変更される。
# 実際にtextと照合させる
  state = ~0                            # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    state = (state << 1) | ~mask[tc]
    if (state & finish) == 0            # 最上位ビットが0である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end
mask[tc] をあらかじめビット反転しておけば、
state = (state << 1) | mask[tc]
としてやや効率化できる。Shift-andと比較すると、1とのビット単位のORを取る操作が減っているが、実際の性能への影響（例えばC言語実装が機械語にコンパイルされた時、実行速度がどの程度改善するか）は微妙だろう。
あいまい検索への適用

例えば#アルゴリズムのビットマスクに於いて、二文字目はaでもcでも良いという場合にはaのビットマスク(101001)を101011に変更すればよいだけであるため、容易に大文字小文字を無視する等の拡張ができる。
またレーベンシュタイン距離（以下、距離という）を管理することで、距離がパターン文字列に近い文字列を検索するあいまい検索が可能となる。
本来の状態を管理するビット列（#実装例に於けるstate）を距離ゼロ用とし、他に距離1用、距離2用など任意の検出したい最大の距離までのビット列を用意する。以降、距離 i 用の状態管理ビット列を state[i] と表現する。また、以下の文章と図では、AND・ORは特に注記しないかぎりビット単位のAND・ORを意味する。
あいまい検索への適用 > 文字の挿入に対応した検索

この図は、文字の挿入のみに対応したshift-and型Bitapアルゴリズムにおいて、state を新しい値 state' に更新する時のデータフローである。
state[0] は完全一致マッチングなので、#アルゴリズムの表と変わりは無い。一方、state[1] では、まず state[0] と同じ処理を行い、その後 state[0] の更新前の値をORしている。これは、n - 1文字目まではパターンと完全一致し、n文字目でパターンに一致しない文字が現れた場合に、余計な1文字が挿入されたとみなしてn - 1文字までマッチングした状態に戻しておく（つまり状態更新を1回休みにする）処理と言える。n文字目に来るはずだった文字がn + 1文字目で現れれば、以降は完全一致と同様に状態がアップデートされていく。n文字目がパターンに一致した場合もn - 1文字目のビットが1になるが、これは例えば "acbaca" の "acb" まで一致した時に、実は "acbbaca"と続く場合など、同じ文字が余計に入っている可能性を表すものと解釈できる。
挿入2文字目が現れた場合、state[0]（更新前）のn - 1文字目のビットはすでに0になっているので state[1] のn - 1文字目のビットは1にならない。つまり、state[1] は1文字の挿入まで許容した検索となる。
state[2] は state[1] と同様の処理だが、ORするのは state[1] の更新前の値となる。挿入2文字目が現れた場合、state[1]（更新前）のn - 1文字目のビットはまだ1なので、state[2] のn - 1文字目のビットは1になる。つまり state[2] は2文字の挿入まで許容した検索となる。同様にして state[3], state[4], ... を実装することで、許容する挿入文字数を増やした検索が可能になる。
#実装例のコードのハイライト部分をこのフローに従って修正すると以下のようになる。
# 実際にtextと照合させる
  distance = 2                          # 許容する挿入文字数
  state = Array.new(distance + 1) {0}   # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    rstr_mask = 0                       # ビットを1にする位置を示すマスク
    state.each_index do |j|
      next_rstr = state[j]              # state[j + 1]のビットを1にする位置
      state[j] = (state[j] << 1 | 1) & mask[tc]
      state[j] |= rstr_mask
      rstr_mask = next_rstr
    end
    if (state[distance] & finish) == finish # 最上位ビットが1である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end
state[0] でも rstr_mask とのORを行っているが、この時の rstr_mask の値は0なので state[0] の値は変化しない。
あいまい検索への適用 > 文字の置換に対応した検索

この図は、文字の置換のみに対応したshift-and型Bitapアルゴリズムにおいて、state を新しい値 state' に更新する時のデータフローである。
state[0] は完全一致マッチングなので、#アルゴリズムの表と変わりは無い。一方、state[1] では、まず state[0] と同じ処理を行い、その後 state[0] の更新前の値を1ビット左シフトして1をORした値をORしている。これは、n - 1文字目まではパターンと完全一致し、n文字目でパターンに一致しない文字が現れた場合に、1文字が置換されたとみなしてn文字目も一致と認める（つまり1回不一致を見逃す）処理と言える。
置換2文字目が現れた場合、state[0]（更新前）のn - 1文字目のビットはすでに0になっているので state[1] のn文字目のビットは1にならない。つまり、state[1] は1文字の置換まで許容した検索となる。
文字の挿入の時と同様に、state[2] では同様の処理を state[1] を参照して行い、これは2文字の置換まで許容した検索となる。以下、state[3], state[4], ... を実装することで、許容する置換文字数を増やした検索が可能になる。
#実装例のコードのハイライト部分をこのフローに従って修正すると以下のようになる。
# 実際にtextと照合させる
  distance = 2                          # 許容する置換文字数
  state = Array.new(distance + 1) {0}   # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    rstr_mask = 0                       # ビットを1にする位置を示すマスク
    state.each_index do |j|
      state[j] = state[j] << 1 | 1
      next_rstr = state[j]              # state[j + 1]のビットを1にする位置
      state[j] &= mask[tc]
      state[j] |= rstr_mask
      rstr_mask = next_rstr
    end
    if (state[distance] & finish) == finish # 最上位ビットが1である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end
あいまい検索への適用 > 文字の除去に対応した検索

この図は、文字の除去のみに対応したshift-and型Bitapアルゴリズムにおいて、state を新しい値 state' に更新する時のデータフローである。
state[0] は完全一致マッチングなので、#アルゴリズムの表と変わりは無い。一方、state[1] では、まず state[0] と同じ処理を行い、その後 state[0] の更新後の値を1ビット左シフトして1をORした値をORしている。これは、n文字目まで完全一致で進行した場合、n文字目までをn + 1文字の最後の1文字が除去されたものとみなし、n + 1文字目まで一致と認める処理と言える。これにより、次に現れた文字がパターンのn + 2文字目と一致する文字だった場合も、アルゴリズムの表と同じ処理で一致と判定される。
除去2文字目が現れた場合、state[0]（更新後）のn文字目のビットはすでに0になっているので state[1] のn + 1文字目のビットは1にならない。つまり、state[1] は1文字の除去まで許容した検索となる。
文字の挿入・置換の時と同様に、state[2] では同様の処理を state[1] を参照して行い、これは2文字の除去まで許容した検索となる。以下、state[3], state[4], ... を実装することで、許容する除去文字数を増やした検索が可能になる。
#実装例のコードのハイライト部分をこのフローに従って修正すると以下のようになる。
# 実際にtextと照合させる
  distance = 2                          # 許容する除去文字数
  state = Array.new(distance + 1) {|i| (1 << i) - 1}    # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    rstr_mask = 0                       # ビットを1にする位置を示すマスク
    state.each_index do |j|
      state[j] = (state[j] << 1 | 1) & mask[tc]
      state[j] |= rstr_mask
      next_rstr = state[j] << 1 | 1     # state[j + 1]のビットを1にする位置
      rstr_mask = next_rstr
    end
    if (state[distance] & finish) == finish # 最上位ビットが1である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end
state の初期値が完全一致・挿入・置換の場合とは異なっている。これは、検索対象文字列先頭にすでに除去された文字がある場合に対応したものである。state[n] なら先頭n文字以内の除去の可能性を考慮して、初期値は下位nビット分を1にしておく。これによって、例えばパターン "acbaca" に対して検索対象文字列 "cbacaccc" なら、state[1], state[2], ... では対象文字列先頭で "a" が除去されていると判定し、パターンとのマッチが検出される。
あいまい検索への適用 > 文字の挿入・置換・除去に対応した検索

この図は、文字の挿入・置換・除去の全てに対応した本来のshift-and型Bitapアルゴリズムにおいて、state を新しい値 state' に更新する時のデータフローである。
ここまでに説明した挿入・置換・除去それぞれに対応したアルゴリズムで使用したマスクを全てORでまとめた形になっている。state[1] はレーベンシュタイン距離1（挿入・置換・除去のいずれか1回のみ）の変更を許容しており、state[2], state[3], ... で許容するレーベンシュタイン距離を増やした検索が可能になる。
#実装例のコードのハイライト部分をこのフローに従って修正すると以下のようになる。
# 実際にtextと照合させる
  distance = 2                          # 許容するレーベンシュタイン距離
  state = Array.new(distance + 1) {|i| (1 << i) - 1}    # 状態遷移を保持
  ret = Array.new                       # マッチした位置をまとめるための配列
  text.chars.each_with_index do |tc, i|
    rstr_mask = 0                       # ビットを1にする位置を示すマスク
    state.each_index do |j|
      next_rstr = state[j]              # state[j + 1]のビットを1にする位置 (挿入時用)
      state[j] = state[j] << 1 | 1
      next_rstr |= state[j]             # state[j + 1]のビットを1にする位置 (置換時用)
      state[j] &= mask[tc]
      state[j] |= rstr_mask
      next_rstr |= state[j] << 1 | 1    # state[j + 1]のビットを1にする位置 (除去時用)
      rstr_mask = next_rstr
    end
    if (state[distance] & finish) == finish # 最上位ビットが1である
      ret.push(i)                       # マッチした位置iを配列に追加
    end
  end
1文字置換のレーベンシュタイン距離を2としたい場合は、
next_rstr |= state[j]             # state[j + 1]のビットを1にする位置 (置換時用)
の行を除去すれば良い。この行の処理がない場合、1文字の置換は1文字挿入の後に1文字除去したものとして扱われ、レーベンシュタイン距離2とすることができる。
注意点としては、ある位置でマッチが検出された場合、その位置の前後でより悪い（レーベンシュタイン距離が長い）マッチが検出されることがある。例えば、"abca" という文字列から "abc" というパターンをレーベンシュタイン距離1以内で探す場合、"ab"（末尾1文字除去）, "abc"（完全一致）, "abca"（末尾1文字挿入）の3カ所でマッチが検出されることになる。そのため、検出位置が重要な場合は対策が必要になる。また開始位置はわからないので検出位置からパターン文字列の長さ＋発見された距離数分戻った位置からやり直して確定することになるが、この場合にも慎重に組まないと直観とは異なる位置が開始位置として算出されることがある。
正規表現対応

Bitapアルゴリズムは、元のアルゴリズムのシフト動作と1のORの直後（shift-orの場合はシフト動作の直後）にビット移動処理を追加することで正規表現に対応させることができる。具体的には、shift-andの場合、シフト動作と1のORを行った直後に以下の操作をそれぞれ必要な回数だけ行なう。
上記X, Y, Z, Uは実際の文字ではなく、ビット移動処理を行う場所を示すマーカーである。これらのビット移動処理はNFAで言えばεによる状態遷移に相当する。
取捨の実装例として、検索対象文字列 acaca からパターン acb?aca を検索する場合の動作を以下の表に示す。
上の表では、R2からR3への遷移について説明のために処理フェーズごとに分けて示している。#アルゴリズムの表と比較すると、上記Xの位置を示すビットマスクが追加されている。また、S0000000, S0000100は後述するSの値に応じてビットを1にする位置を示すビットマスクである。
Rに対して元のアルゴリズム通りにシフトと1のORを行う。その値をXのビットマスクとANDした結果をSとする。
R3' (1)はR2に対してシフトと1のORを行った値である。R3' (1)とXのビットマスクのAND結果 (つまりS) は 0000100 になる。
Sのビットが1になっている位置に対応したRのビット位置（取捨の場合、取捨対象部分の先頭と取捨対象部分の次の位置）のビットを1にする。
Sが0000100だった時にビットを1にする位置はビットマスクS0000100にあらかじめ設定してあるので、RにS0000100をORすればよい。S0000100の1が立っている位置は、パターン acb?aca の取捨対象部分の先頭 (acXbaca) と取捨対象部分の次 (acXbaca) である。R3' (2)はこの段階まで処理した値である。
X用のビットマスクが1になっている位置のRのビットは0にしておく。
X用のビットマスクをビット反転 (1111011) してRにANDする。R3' (3)はこの段階まで処理した値である。
元のアルゴリズム通りにマスク処理を行う。
R3' (3)にaのビットマスクをANDし、R3が得られる。
同様の処理は他の遷移でも行われているが、上記1.で S = 0000000 の場合、ORされるのはS0000000 (= 0) なので元のアルゴリズムと全く同じ結果になる。（S = 0000000 ならば2.と3.の処理を飛ばしてもよい。）R4からR5への遷移では、Sが0000100なのでR2からR3への遷移と同様の処理が行われ、R4で acXbaca で1になっていたビットがR5では acXbaca に移動している。
正閉包・選言についても同様な処理で実装できる。
取捨の場合、εによる状態遷移を行なうフェーズは、これらの正規表現の演算子によって追加される一組の整数（AND用マスクと、上記実装例でのS0000000, S0000100のようなOR用マスク）を順次処理するだけである。Sは複数の値（Xが一つなら2種類、二つなら4種類など）を取りえるため、ビットを立てる位置を示すビットマスクはSが取りえる全ての値に対応したものをあらかじめ用意しておく。
正閉包でも一組の整数（YのAND用マスクとOR用マスク）、選言であれば二組の整数（ZのAND用マスクとOR用マスク、UのAND用マスクとOR用マスク）が考えられるが、これらX, Y, Z, UのAND用マスクは全てORして一つのAND用マスクにまとめることができる。そして、そのAND用マスクとRをANDした結果（上の例のS）が取りえる全ての値について、対応したOR用マスクを用意しておけばよい。
また、任意の1文字（基本正規表現での "."）への対応は、全ての文字用マスク（上記例でのa, b, c用マスク）の該当位置のビットを1にしておくだけで容易に実現できる。同様に、その他の文字クラス（[ab], \s など）に対応する場合も、該当する文字用マスクの該当位置のビットを1にしておけばよい。
Bitapアルゴリズムによる "acbaca" のマッチングのNFA表現。"?" はあらゆる入力文字を表す。
2文字挿入に対応した state 更新のデータフロー
2文字置換に対応した state 更新のデータフロー
2文字除去に対応した state 更新のデータフロー
レーベンシュタイン距離2に対応した state 更新のデータフロー
アルシド・ドルビニ

| アルシド・ドルビニ |
| --- | --- |
 Alcide Dessalines d’Orbigny
生誕:   (1802-09-06) 1802年9月6日  フランス共和国、ロワール＝アトランティック県クエロン
死没:   (1857-06-30) 1857年6月30日（54歳没）
研究分野:  博物学
研究機関:  パリ自然史博物館
プロジェクト:人物伝
テンプレートを表示
アルシド・ドルビニ（Alcide Charles Victor Marie Dessalines d'Orbigny、1802年9月6日 - 1857年6月30日）はフランスの博物学者である。動物学、軟体動物学、古生物学、地質学、考古学、人類学などの分野に貢献した。
略歴

クエロン（ロワール＝アトランティック県）に生まれた。父親は、船医でアマチュア博物学者であった。博物学に興味を持ち、パリでルイ・コルディエ (Pierre Louis Antoine Cordier) とジョルジュ・キュヴィエの弟子となった。終生、キュヴィエの「天変地異説」を擁護し、ジャン＝バティスト・ラマルクの進化論に反対した。
ドルビニはパリ自然史博物館のために、1826年と1833年に南アフリカを訪れた。ブラジル、アルゼンチンなど南アメリカ各地を訪れ、10,000点以上の博物学のコレクションをパリに持ち帰った。旅行記として La Relation du Voyage dans l'Amérique Méridionale を著し、チャールズ・ダーウィンはこの本を19世紀の科学の記念碑的な作品と評した。
1840年、フランスの化石に関する著書、La Paléontologie Française を著した。1894年に 代表的な著作、Prodrome de Paléontologie Stratigraphique を著し、その中で、約18,000の種について著述した。
1853年にパリ自然史博物館の古生物学の教授となった。現在も使われている地質学の年代名を作ったことで知られる。
Ethernet Ring Protection Switching

Ethernet Ring Protection Switching（ERPS、イーサネット・リング・プロテクション・スイッチング）は、ITU-T勧告G.8032に基づくイーサネットのリングトポロジのルーティングプロトコルである。リングトポロジにおいてループが形成されないように1つのリンクを閉塞し、障害発生・復旧時には50ミリ秒以下で閉塞を解除して通信の継続性を提供する。G.8032v1はシングルリングトポロジに、G.8032v2はマルチリング・ラダートポロジに対応している。
概要

ERPSは、イーサネット層リングの保護スイッチングメカニズムとプロトコルを規定している。イーサネットリングは，リンク数が少ないため，より経済的に広域の多地点接続が可能である。本勧告で規定されているメカニズムとプロトコルは，ネットワークの運用やサービスの可用性に致命的な影響を与えるループの形成を防止し、かつ、信頼性の高い安定した保護を実現する。
各イーサネットリングノードは、各ノードの独立した2つのリンクを使用して、同じイーサネットリングに参加している隣接するイーサネットリングノードに接続される。リングリンクは、2つの隣接するイーサネットリングノードによって囲まれており、リングリンク用のポートをリングポートと呼ぶ。1つのイーサネットリングにおけるイーサネットリングノードの最小数は3である。
このリング保護スイッチングアーキテクチャの基本は、以下の2つである。
ループ回避の原則。
イーサネットフロー転送機能(ETH_FF)で定義された学習、転送、フィルタリング・データベース(FDB)メカニズムの利用。
イーサネットリングのループ回避は、常にリング上の1つのリングリンクにトラフィックが流れないことを保証することで実現する。この特別なリンクをRPL(Ring Protection Link)と呼び、通常の状態では閉塞され、サービストラフィックには使用されない。指定された1つのイーサネットリングノード（RPLオーナーノード）は、RPLの一方の端でトラフィックを閉塞する。イーサネットリングに障害が発生した場合、RPLオーナーノードは、RPLの端の閉塞を解除して、RPLをトラフィックに使用できるようにする（RPLに障害が発生した場合を除く）。RPLに隣接するもう1つのイーサネットリングノード（RPL隣接ノード）も、RPLの端の閉塞・閉塞解除を行う。
イーサネットリングに障害が発生した場合、トラフィックの保護スイッチングが行われる。これは、全てのイーサネットリングノード上のETH_FF機能の制御下で実現される。リング上の保護動作を調整するためにEAPSプロトコル（英語版）が使用される。
概要 > G.8032v2

G.8032バージョン2では、以下のような機能が追加された。
マルチリングやラダーネットワークへの対応
スイッチの原因となっている状態が解消された後の復帰/非復帰モード
管理用コマンド。特定のリングポートを閉塞するための強制切替(force switch, FS)、手動切替(manual switch, MS)
フラッシュFDB（フィルタリング・データベース）ロジックにより、リング内でのフラッシュFDBの操作を大幅に削減
1つのリング上で複数のERPインスタンスに対応
動作原理 > G.8032v1

ERPSでは、RPLオーナーノード(RPL Owner Node)と呼ばれるノードがリング中に1つあり、イーサネットトラフィックにループが形成されないように、2つあるポートのうちの1つを閉塞する。RPLオーナーノードによって閉塞されたリンクは、リングプロテクションリンク(Ring Protection Link, RPL)と呼ばれる。RPLの対向側にあるノードは、RPL隣接ノード(RPL Neighbor Node)と呼ばれる。RPL隣接ノードは、R-APS制御メッセージを受信してRPLリンクのオン/オフを切り替える。
リング上で障害が発生すると、障害が発生したリンクに隣接するノードは、障害が発生したリンクに面したポートを閉塞した後、両方向にR-APS(SF)(R-APS signal fail)メッセージを送信する。このメッセージを受信したRPLオーナーは、RPLポートの閉塞を解除する。すなわち、シングルリング上でリンク障害が発生した状態では、リング上には閉塞されたポートがなくなる。
障害が発生したリンクが復旧したとき、復旧したリンクに隣接するノードがR-APS(NR)(R-APS no request)メッセージを送信する。このメッセージを受信したRPLオーナーは、RPLポートを閉塞した後、R-APS(NR,RB)(R-APS no request, RPL blocked)メッセージを送信する。これにより、リング内のRPLオーナー以外の他のノードは、全てのポートの閉塞を解除する。
このプロトコルは、リングトポロジにおける一方向性障害や複数のリンク障害にも対応できる堅牢性を備えている。このプロトコルには、現場でのメンテナンス時に使用される強制切替(force switch, FS)や手動切替(manual switch, MS)のメカニズムも含まれている。
Emotion Tech (企業)

| --- | --- |
種類:  株式会社
市場情報:  非上場
本社所在地:   日本 〒105-0003 東京都港区西新橋1-1-1 WeWork 日比谷FORT TOWER 11F
設立:  2013年3月8日
業種:  コンピューター - ソフトウェア
法人番号:  4011101066041 
代表者:  今西良光
資本金:  3億4,999万円（資本準備金含む）
外部リンク:  https://www.emotion-tech.co.jp/
テンプレートを表示
株式会社エモーションテック（エモーションテック、英: EmotionTech, Inc.）は、東京都港区に本社を置く日本の企業である。2013年3月に今西良光と飯尾礼治が株式会社wizpra（ウィズプラ）として設立し、2016年12月に株式会社Emotion Tech、2022年6月に株式会社エモーションテック、それぞれへ社名を変更した。
顧客および従業員へのアンケート調査を基にデータを集計し、人工知能 (AI) を活用した統計分析機能で組織課題の可視化、改善提案を行うクラウドサービスの提供をおもな事業とする。本技術の特許を2つ保有している。
概要

顧客分析によりサービスの向上を図る「EmotionTech CX」と、従業員分析により離職率低下・生産性向上を図る「EmotionTech EX」の開発と運営をおもな事業とする。
wizpra設立当初は、従業員がお互いをほめるサンクスカードのアプリ版「wizpra card（ウィズプラカード）」を提供した。2014年8月に顧客ロイヤルティを測るマーケティング指標「ネット・プロモーター・スコア」 (NPS) を用いた顧客分析サービス「wizpra NPS」を開発して提供する。
2016年12月に株式会社Emotion Techへ社名変更するとともに、「wizpra NPS」も「EmotionTech CX」に名称変更。2017年7月には顧客や従業員の体験毎に生じる感情を調査・分析・可視化する技術の特許を取得し、同年8月に「EmotionTech EX（旧：EmployeeTech）」を提供開始。2019年9月には顧客体験や従業員体験の評価結果を分析するための特許を取得している。
沿革

2013年
2013年3月8日：株式会社wizpra設立
2014年
2014年5月14日：グリーベンチャーズを引受先とした5000万円の第三者割当増資を実施
2014年8月：「wizpra NPS」を開発・提供
2015年
2015年1月27日：グリーベンチャーズ、モバイル・インターネットキャピタル、SMBCベンチャーキャピタル、みずほキャピタルを引受先とした2億3000万円の第三者割当増資を実施
2016年
2016年12月1日：株式会社Emotion Techへ社名変更するとともに、「wizpra NPS」も「EmotionTech CX」に名称変更
2017年
2017年7月29日：顧客や従業員の、体験毎に生じる感情を調査・分析・可視化する技術の特許を取得（特許第6176813号）
2017年8月31日：「EmotionTech EX（旧：EmployeeTech）」を開発・提供
2019年
2019年9月12日：顧客体験や従業員体験の評価結果を分析するための特許を取得（特許第6588176号）
BOOM BOOM

| --- | --- |
: この項目では、テレビ番組について説明しています。同名の異名を持つプロレスラーについては「スコット・コルトン」を、同名の愛称を持つアイスホッケー選手については「バーニー・ジョフリオン」をご覧ください。
| --- | --- |
: この項目では、テレビ番組について説明しています。嵐の曲については「Lotus (嵐の曲)」をご覧ください。
| BOOM BOOM |
| --- | --- |
ジャンル:  音楽番組/バラエティ番組
企画:  沖縄アクターズスクール ライジングプロダクション
出演者:  B.B.WAVES 山田優 三浦大知 岩井証夫 ほか
製作
制作:  沖縄テレビ

放送
音声形式: ステレオ放送
放送国・地域:  日本

1999年3月まで
放送期間: 1996年5月4日 - 1999年3月27日
放送時間: 土曜日 14:00 - 14:30
放送分: 30分

1999年4月から
放送期間: 1999年4月3日 - 2001年9月29日
放送時間: 土曜日 18:30 - 19:00
放送分: 30分
テンプレートを表示
『BOOM BOOM』（ブーン・ブーン）は、一部フジテレビ系列局と一部独立UHF局で放送されていた沖縄テレビ (OTV) 製作のテレビ番組。製作局の沖縄テレビでは1996年5月4日から2001年9月29日まで放送。
概要

毎週土曜日に放送されていた若者向けの音楽バラエティ番組で、沖縄アクターズスクールとライジングプロダクション（現：ヴィジョンファクトリー）が制作協力をしていた。沖縄アクターズスクール所属のアイドルグループB.B.WAVESなどが出演して歌やダンスなどのミニライブを展開していたほか、スクールのレッスンドキュメントや、最新のCD発売情報とイベント情報なども放送し、沖縄在住の10代を中心とする若い年代層に絶大な人気を誇った[要出典]。なお、この番組には当時10代前半だった山田優もレギュラー出演していた。
1997年にサガテレビが本番組のネットを開始して以来、他のフジテレビ系列局や独立UHF局も番組をネットするようになった。他のOTV製作番組は、『郷土劇場』のような長寿番組であっても普段沖縄県外の民放テレビ局でネットされることはなく、あってもCSチャンネルのみでの放送なので、いくつかの民放テレビ局で放送された本番組は非常に珍しいケースと言える。