ユダヤ教・キリスト教・イスラームの祖であるアブラハム（イブラーヒーム）の墓がある。旧約聖書によれば、この地はアブラハムがエジプトから逃れ、銀400シェケルで初めて手に入れた土地であるとされている。この墓所のあるマクペラの洞穴は、ユダヤ教だけでなくイスラームでも聖所とされており、建物の内部で二分されている。1929年に暴徒化したアラブ人によるユダヤ人67名(ただしうち５５名はヨーロッパ人であり生存した４３５名のユダヤ教徒は地元ムスリムによりかくまわれた)の虐殺、1994年のユダヤ教過激派の医師によるイブラーヒーミー・モスク（マクペラの洞穴）で起きた銃乱射事件で29人のパレスチナ人が死亡するなど、宗教・民族対立における惨劇の舞台でもある。ヘブロンはイスラエル建国以降ヨルダン支配下であったが、1967年の第三次中東戦争にてイスラエルに占領された。占領後は、1929年にアラブ人によって追放されたユダヤ人の元住民が戻り始め、郊外にキリヤト・アルバ（ヘブライ語: קִרְיַת־אַרְבַּע‎、英語: Kiryat Arba）入植地を建設した。以来ユダヤ人の入植が続く。しかし、1980年に6人の入植者がパレスチナ人に銃撃されたのを契機に、時のイスラエル政府はイブラーヒームの聖廟近くに住むパレスチナ人を追放して、代わりにユダヤ人入植者を住まわすことで報復した。1997年のヘブロン合意により80%をパレスチナ自治政府の治安部隊が、20%の入植地をイスラエル軍管理下に置くことで合意した。　近年、ユダヤ教右派の入植者とパレスチナ・アラブ人住民との間で、深刻な住民対立が起きている。1994年2月25日、ユダヤ人入植者によるパレスチナ人礼拝者へのテロ事件があり、29人が殺された（マクペラの洞窟虐殺事件）。実行犯はその場で殺害されたが、イスラエル兵による発砲もあり（イスラエル側は否定）、総犠牲者は50人とも60人とも言われている。その後、国連安全保障理事会の勧告を受け、ノルウェーなどがヘブロン暫定国際監視団（Temporary International Presence in Hebron、TIPH）を設立。国際社会の介入を嫌うイスラエルも受け入れた。5月8日にヘブロン入りした。ヘブロンではユダヤ人入植者による、パレスチナ人を追い出そうとする暴力や嫌がらせが後を絶たないため、国際監視団はこれを監視し、抑制するのが任務である。国際監視団は非武装で、強制力はないが、外部の目を光らせることで、抑止効果を期待している。ノルウェーの他、スウェーデン、デンマーク、スイス、イタリア、トルコより監視員を派遣している。2002年3月27日には何者かに監視員2名が殺され、国連のコフィー・アナン事務総長は非難声明を出した（イスラエル軍はパレスチナ過激派の犯行と主張しているが、パレスチナ側はこれを否定。ロイター通信が伝える病院関係者の話によれば、監視員を殺害した銃弾は、イスラエル軍のものだったという）。2006年には、ムハンマド風刺漫画掲載問題の余波で事務所にパレスチナ人らの投石を受け、一時避難していた。その後、再びヘブロンに戻り、監視活動を続けている。
Concurrent PrologはPrologから派生した並行プログラミングと並列実行のためのプログラミング言語で、論理変数を介して通信を行う複数の軽量プロセスのネットワークとしてプログラムを記述する。多くの並行プログラミング言語が逐次処理言語に並行実行の機能を追加したものであるのに対して、Concurrent Prologは並行実行が基本で、並行処理を素直に記述できる。Concurrent Prologの派生言語として、組み込み述語のみをガード部に記述できるように制限してより単純化した Flat Concurrent Prolog（FCP）がある。1983年の発表以降、Shapiroにより様々なFCPのバリエーションが提案され、分析されている。Concurrent Prologではホーン節にガードを導入した以下のような規則(Clause)の集まりでプログラムを記述する。"|"はコミット演算子と呼ばれる。G はガード部、B はボディ部と呼ばれる。Head、G、Bはそれぞれ原子論理式である。ガード部の条件がない場合、ガード部とコミット演算子は省略できる。Head :- G₁, ..., Gₙ| B₁, ..., Bₘ.  (n,m≧0)Headとガード部はプロセス書き換えのための条件、ボディ部は書き換え後のプロセスを表す。生成されたプロセスは全て並行に実行される。また、各プロセスごとの書き換え条件のチェックも複数の節で並行に実行してよく、コミット時にただ1つの節が選択される（コミッティッド・チョイス）。Prologと異なりバックトラックの機能はない。プロセス間の通信にはプロセス間で共有する論理変数を使用する。多くの場合、プロセス間の通信には論理変数を含んだリストで表現されたストリームを用いる。ストリームは [<メッセージ>|<変数>] のようなリストで実現する。 論理変数を共有するプロセスの数に制限はないため、ストリーム通信は1対1だけではなく1対Nのブロードキャストなど、様々な形態が可能である。簡単なプログラム例を以下に示す。2本のストリームをマージして1本のストリームにするプログラムで、Prologと同様、A や Xs など英大文字や"_"で始まる項は変数を表す。mergeの最初の2引数が入力ストリーム、最後が出力ストリームである。merge([A|Xs],Ys,[A|Zs]) :- true | merge(Xs?,Ys,Zs).merge(Xs,[A|Ys],[A|Zs]) :- true | merge(Xs,Ys?,Zs).merge([],Ys,Ys) :- true | true.merge(Xs,[],Xs) :- true | true.Concurrent Prologでは、プロセス間の同期のための中断のメカニズムとして読み出し専用標記 (Read Only Annotation)を用いる。読み出し専用標記は"?"で表され、任意の変数に付与することができる。読み出し専用標記が付加された変数へのアクセスは入力モードだけが許され、読み出し専用変数を変数以外の項に具体化しようとする試みは中断させられる。つまり、これにより変数が具体化されるまで待つという同期と、変数毎のデータ入出力の方向性の指定とができる。例えば、上記プログラムの最初の節では、最初の引数が[A|Xs]のようなリストの形になっていない場合は中断し、他のプロセスにより[A|Xs]の形に具体化された(具体的に値が決まった)場合に実行を再開する。この時点でXs自体は具体化されていなくても構わないため、リストの先頭からインクリメンタルに具体化されるストリームを素直に処理できる。また、ガードの実行(ヘッドとガード部の実行)で行われた変数への書き込みは、その後の失敗により変更される可能性があるため、どれか1つの節がコミットされるまで他のプロセスに公開されない。例えば、上記マージプログラムの最初の節での [A|Zs] と2番目の節での [A|Zs] とは値が異なる可能性がある。Concurrent Prologでは、ガード実行時に節ごとで変数の値が異なる多重環境を管理する必要があり、全ての節の並行実行を行う際に管理が複雑になる。