The Wayback Machine - https://web.archive.org/web/20240321125059/https://www.slideshare.net/matsubaramasanao/ss-37767338
SlideShare a Scribd company logo
1 of 30
Download to read offline
普通のエンジニアが 
【ロジバン】やってみた
まず、ロジバンって”何”?
ロジバンは”人工言語”です 
つまりは 
● 指輪物語のエルフ語 
● スタートレックのグリンゴン語 
● 国際補助語のエスペラント 
等と同じ括りのもの! 
特にエスペラントの様な国際補助語としての 
使われ方を期待されています
ロジバンの特徴 
他の人工言語にないロジバンの特徴として 
● 一階述語論理を理論的基礎としている 
● 文法がプログラム言語の定義などで使われて 
いるBNFで定義されている 
という2点がある 
つまりは、他の有名な人工言語と違って 
数学的に構文解析可能という利点がある
今回のルールその1 
他にもロジバンは、言語学の様々な分野の成 
果を結集していますが 
● 音韻論 
● 意味論 
● 統語論 
● 語用論
今回は文法を扱う「統語論」のみに絞ります 
一つの言語全体を扱うには 
スライドの枚数が足りなすぎるので
今回のルールその2 
一般的な言語学で、動詞や名詞、形容詞に当 
たるものは分かりやすさのために、すべて同 
じ意味の漢字に変換します 
とにかくスライドの枚数 
足りないので!!
ロジバンの基本 
● ロジバンは基本論理学の「AはBである」を 
ベースに組み立てられています 
孝子は私の母である 
la .takakon. mi manta 
孝子 私 母
意味解析 
語順が大事で、意味は前から順番に評価され 
るので入れ替えると意味が変わります 
孝子は私の母である 
la .takakon. mi manta 
孝子 私 母 
私は孝子の母である 
mi la .takakon. cu manta 
私 孝子  母
ロジバン基本:接続詞 
次の日本語: 
ドラえもんとのび太かジャイアンが行く。 
これは、日本語だと2種類の解釈が出てしま 
う
一つ目の解釈は 
「ドラえもんとのび太」か「ジャイアン」 
2つ目の解釈は 
「ドラえもんとのび太」か「ドラえもんと 
ジャイアン」 
日本語ではどちらの意味で行っているのか 
は、切り分け不可能、英語でも無理!!
ロジバンの基本:接続詞 
ロジバンの場合は、係り受けの解釈の順番ば 
決まっているので、曖昧さが発生しない!! 
下のように言い分けさせる 
● 解釈1: 
ドラえもん e のび太 onai ジャイアン 行く 
● 解釈2: 
● ドラえもん e ke のび太 onai ジャイアン ke'e 
行く 
(ke〜ke'eは括弧で囲うという意味がある)
他の接続詞もついでに紹介しますが 
2人以上の集合を表す場合には「se」を使い 
ます。 
例: 
サナエとタカシとレイコとマツモトの中から 
サナエを私は選ぶ 
私 選ぶ サナエ ce タカシ ce レイコ ce マツモ 
ト 
mi cuxna la .sanaen. ri ce la .takacin. ce la 
.reikon. ce la .matsumot.
その他の記号 
● 1行に2文以上を突っ込みたくなった場合に 
は、構文境界「.i」を使います 
● 私はカレーを食べる。それはおいしい。 
● mi citka lo cidjrkari .i ri kukte 
● 私 食べる カレー。それ おいしい 
● 動詞に no が付くと否定になります
色々出てきたので、整理すると 
ロジバンの接続詞その他はプログラム言語の 
演算子に似ている 
※そして実は結合の優先順位が有ります 
ロジバンrubyの演算子 
e && 
onai || 
ke〜ke'e () 
se ,(配列) 
.i ; 
no !
ロジバン基礎:指示代名詞 
文法解説としては「ギョッ」とする概念ですが 
ロジバンには、プログラム言語で言う変数の概 
念があります 
具体的には「それ」に当たる単語が複数存在し 
て、定義した順番で言い換えできます
ロジバン基礎:”それ”の種類 
代項詞意味 
ri それ1 
ra それ2 
ru それ3 
mi citka lo cidjrkari .i ri kukte .i ri se zbasu do .i 
mi ba za'ure'u citka ra 
私 食べる カレー。それ(1) おいしい。それはあ 
なたに作られた。私 いつかもう一度 食べる そ 
れ(2)。
ロジバン基礎:”それ”の種類2 
それで使い分けられない場合には、変数とし 
て保存できる 
其一ko'a 
其二ko'e 
其三ko'i 
ko'a goi la .lenon. klama .i ko'a sanga 
其一 つまり レノンが来る。レノンが歌う。 
(goiは代入演算子=と同じ)
最後に:文章を書いてみる 
ここまでの構文を元に文章を作ってみる 
一階述語論理をベースにしているので 
論理学パズルを書くのに適しているはずなの 
で 
作成するのは論理学パズルの「川渡り問題」
問題文 
農夫が狼と山羊とキャベツを持って川の左岸にいます。 
農夫はこれらを川の右岸へ運ばなければいけませんが、 
ボートにはそのうちのひとつしか乗せることができません。 
狼は山羊を好んで食べるため、この 2 つを同じ岸に残すこ 
とはできません。 
また、山羊はキャベツを好んで食べるため、この 2 つも同 
じ岸に残すことはできません。 
右岸へ運ぶ手順考えなさい。
ko'a goi lo purdi ce kanba ce purdi ce kobli cu 
sanli lo rirxe zunle zbani 
(其の一)(代入)農夫 ce 狼 ce 山羊 ce キャベツ 
cu 川 左 岸 
.i lo purdi e lo bloti cu bevri be ko'a bei lo rirxe 
pritu zbani bei lo zunle rirxe zunie 
農夫 e ボート 運ぶ be これら 左岸に bei 右岸 
から be'u
● 狼は山羊を好んで食べるため、この 2 つを同 
じ岸に残すことはできません。 
● .i lo labna e lo kabna na sanli .i lo labno citka lo 
kanba 
● 狼 e 山羊 (無い) 立つ。 狼 食べる 山羊 
● また、山羊はキャベツを好んで食べるため、 
この 2 つも同じ岸に残すことはできません。 
● .i lo kabna e lo kobli no sanli .i lo kabna citka lo 
kobli 
● 山羊 と キャベツ 無い 立つ。山羊 食べる 
キャベツ
右岸へ運ぶ手順を考えなさい。 
.i ko jinvi ko'a lo bevri rirxe pritu zbani 
(命令) 考える (その1) 運ぶ 川 右 岸 
書き終わりました…
ロジバンの感想:その1 
● とりあえず今回はここまでです 
● 接続詞も最低限に絞って、音声、時制、感情 
表現色々出来ませんでしたが次に回します
ロジバンの感想2 
● ですがやってみた感想として 
「ロジバンは難しい」 
● 今までやらされてきた英語や、第2外国語と 
かでやらされたドイツ語や中国語ともなんだ 
か違う体系の下にある 
● 今まで考えてこなかった新しい概念と何回か 
出会う
ロジバンの感想:その2 
● あと、対象が論理的に”何”なのかすごく考さ 
せられる 
● 逆に必要な語彙が少ない&理論的根拠がある 
ので安心感を持って進める感じがする 
● 発音が一致している&論理的に一貫している 
ので色々と応用範囲がありそう
Q. ロジバンをプログラミング言語として使え 
るの? 
一応出来るはずです、まだ誰も作っていませ 
んが… 
ただ、ロジバンは意味論に関しての解決を 
行っていません。 
具体的な問題としては 
ジョンは日本人と付き合いたい 
の文で、「日本人」というのが気になる特定 
の女性がいるのか、漠然と日本人なのかは、 
事前に定義されていないといけません
ですので、特定の狭い専門分野で無いならば 
それぞれの言葉の意味を定義したり、辞書か 
ら絞り込んだりしないと実行できるレベルま 
で曖昧さは排除できないと思います
おすすめ資料 
はじめてのロジバン 
http://seesaawiki.jp/hajiloji/ 
Wikibooks - ロジバン 
http://ja.wikibooks.org/wiki/ロジバン 
ロジバンのBNF定義 
http://w.livedoor.jp/lojban/d/EBNF 
The Complete Lojban Language 日本語抄訳 
http://ponjbogri.github.io/cll-ja/
ありがとうございました

More Related Content

What's hot

プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門Makoto SAKAI
 
Looking glass + videoplayer
Looking glass + videoplayerLooking glass + videoplayer
Looking glass + videoplayer優介 黒河
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!Yu Tanaka
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方Takashi Ohtsuka
 
JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013Vladimir Ivanov
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうTakuya Ueda
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture AppDynamics
 
Advantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepoAdvantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepoIanDavidson56
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in KubernetesRafał Leszko
 
Toi pham IQ thap - Tu Kim Tran.pdf
Toi pham IQ thap - Tu Kim Tran.pdfToi pham IQ thap - Tu Kim Tran.pdf
Toi pham IQ thap - Tu Kim Tran.pdfHongHanhPham3
 
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業kazuhiro harada
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩kiita312
 
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテスト
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテストスーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテスト
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテストMasanori Sumitomo
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道uchan_nos
 
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]DeNA
 
NAT超えとはなんぞや
NAT超えとはなんぞやNAT超えとはなんぞや
NAT超えとはなんぞやnemumu
 

What's hot (20)

プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
Looking glass + videoplayer
Looking glass + videoplayerLooking glass + videoplayer
Looking glass + videoplayer
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方
 
Marp入門
Marp入門Marp入門
Marp入門
 
JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013
 
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろうGo mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Advantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepoAdvantages and disadvantages of a monorepo
Advantages and disadvantages of a monorepo
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in Kubernetes
 
Toi pham IQ thap - Tu Kim Tran.pdf
Toi pham IQ thap - Tu Kim Tran.pdfToi pham IQ thap - Tu Kim Tran.pdf
Toi pham IQ thap - Tu Kim Tran.pdf
 
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩
 
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテスト
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテストスーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテスト
スーパーコンピューターとクラウドでのOpenFOAM性能・費用ベンチマークテスト
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
 
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]
次世代タクシー配車サービス「MOV」を支える車載ハードウェアとソフトウェアの話 [DeNA TechCon 2019]
 
NAT超えとはなんぞや
NAT超えとはなんぞやNAT超えとはなんぞや
NAT超えとはなんぞや
 

More from baban ba-n

Typusとadministrateを比較してみよう
Typusとadministrateを比較してみようTypusとadministrateを比較してみよう
Typusとadministrateを比較してみようbaban ba-n
 
Typusと付き合ってきた話
Typusと付き合ってきた話Typusと付き合ってきた話
Typusと付き合ってきた話baban ba-n
 
ハッカソン。来た、見た、負けた! Spajam2016仙台予選
ハッカソン。来た、見た、負けた! Spajam2016仙台予選ハッカソン。来た、見た、負けた! Spajam2016仙台予選
ハッカソン。来た、見た、負けた! Spajam2016仙台予選baban ba-n
 
ガラホ、なるものに対応してきた
ガラホ、なるものに対応してきたガラホ、なるものに対応してきた
ガラホ、なるものに対応してきたbaban ba-n
 
Minitest調べてみた
Minitest調べてみたMinitest調べてみた
Minitest調べてみたbaban ba-n
 
人工言語ロジバン超入門編
人工言語ロジバン超入門編人工言語ロジバン超入門編
人工言語ロジバン超入門編baban ba-n
 
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介baban ba-n
 
Rubyのコードを読んでみよう(オブジェクト編)
Rubyのコードを読んでみよう(オブジェクト編)Rubyのコードを読んでみよう(オブジェクト編)
Rubyのコードを読んでみよう(オブジェクト編)baban ba-n
 
Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)baban ba-n
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説baban ba-n
 
名前重要 超重要
名前重要 超重要名前重要 超重要
名前重要 超重要baban ba-n
 
Rails-Plugin Flexturesの紹介
Rails-Plugin Flexturesの紹介Rails-Plugin Flexturesの紹介
Rails-Plugin Flexturesの紹介baban ba-n
 

More from baban ba-n (12)

Typusとadministrateを比較してみよう
Typusとadministrateを比較してみようTypusとadministrateを比較してみよう
Typusとadministrateを比較してみよう
 
Typusと付き合ってきた話
Typusと付き合ってきた話Typusと付き合ってきた話
Typusと付き合ってきた話
 
ハッカソン。来た、見た、負けた! Spajam2016仙台予選
ハッカソン。来た、見た、負けた! Spajam2016仙台予選ハッカソン。来た、見た、負けた! Spajam2016仙台予選
ハッカソン。来た、見た、負けた! Spajam2016仙台予選
 
ガラホ、なるものに対応してきた
ガラホ、なるものに対応してきたガラホ、なるものに対応してきた
ガラホ、なるものに対応してきた
 
Minitest調べてみた
Minitest調べてみたMinitest調べてみた
Minitest調べてみた
 
人工言語ロジバン超入門編
人工言語ロジバン超入門編人工言語ロジバン超入門編
人工言語ロジバン超入門編
 
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介
 
Rubyのコードを読んでみよう(オブジェクト編)
Rubyのコードを読んでみよう(オブジェクト編)Rubyのコードを読んでみよう(オブジェクト編)
Rubyのコードを読んでみよう(オブジェクト編)
 
Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)Rubyのソースコードを読んでみよう(入門編)
Rubyのソースコードを読んでみよう(入門編)
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説
 
名前重要 超重要
名前重要 超重要名前重要 超重要
名前重要 超重要
 
Rails-Plugin Flexturesの紹介
Rails-Plugin Flexturesの紹介Rails-Plugin Flexturesの紹介
Rails-Plugin Flexturesの紹介
 

普通のエンジニアが【ロジバン】やってみた