質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Prolog

Prologは、非手続き型プログラミング言語です。述語論理を使った論理型言語と言われており、自然言語解析や理解、推論などのAIに有効です。エキスパートシステム開発などに用いられています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

0回答

1236閲覧

Python3のPyswipにおいて、日本語文字列を含む論理式を処理したい

13K

総合スコア7

Prolog

Prologは、非手続き型プログラミング言語です。述語論理を使った論理型言語と言われており、自然言語解析や理解、推論などのAIに有効です。エキスパートシステム開発などに用いられています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2020/01/19 08:57

以下のようなコードにおいて、エラーメッセージがでてしまい正しい出力が得られません。
日本語の文字コードの設定の仕方が悪いのかもしれませんが。。。

#コード1:
from pyswip import Prolog

p = Prolog()

p.assertz('車(ビートル)')

print(list(p.query('車(Which)')))

#Pycharmにおけるコード1の出力結果:
ERROR: Syntax error: Operator expected
ERROR: assertz((
ERROR: ** here **
ERROR: e≫\u008A(a\u0083\u0093a\u0083\u00BCa\u0083\u0088a\u0083≪))).
Traceback (most recent call last):
File "C:/Users/golf/PycharmProjects/proleg_proc/sample1.py", line 5, in <module>
p.assertz('車(ビートル)')
File "C:\Users\golf\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyswip\prolog.py", line 140, in assertz
next(cls.query(assertion.join(["assertz((", "))."]), catcherrors=catcherrors))
File "C:\Users\golf\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyswip\prolog.py", line 127, in call
"Returned: '", str(term), "'."]))
pyswip.prolog.PrologError: Caused by: 'assertz((車(ビートル))).'. Returned: 'error(syntax_error(operator_expected), string(b'assertz((\xe8\xbb\x8a(\xe3\x83\x93\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab))). ', 9))'.

Process finished with exit code 1

一方で、以下のような英語の文字のみのコードでは問題なく出力結果が出ています。

#コード2:
from pyswip import Prolog

p = Prolog()
p.assertz('car(beatle)')
print(list(p.query('car(Which)')))

#Pycharmにおけるコード2の出力結果:
[{'Which': 'beatle'}]

ご回答のほど、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問