Lihat Log Perubahan.
Jika Anda sudah menginstal SWI-Prolog, itu hanya:
pip install -U pyswip
Lihat Memulai untuk petunjuk rinci.
PySwip adalah antarmuka Python-Prolog yang memungkinkan kueri SWI-Prolog dalam program Python Anda. Ini menampilkan antarmuka bahasa asing SWI-Prolog, kelas utilitas yang memudahkan pembuatan kueri dengan Prolog dan juga antarmuka Pythonic.
Karena PySwip menggunakan SWI-Prolog sebagai perpustakaan bersama dan ctypes untuk mengaksesnya, instalasi tidak memerlukan kompilasi.
PySwip dipersembahkan oleh komunitas PySwip. Terima kasih kepada semua kontributor.
from pyswip import Prolog
Prolog . assertz ( "father(michael,john)" )
Prolog . assertz ( "father(michael,gina)" )
list ( Prolog . query ( "father(michael,X)" )) == [{ 'X' : 'john' }, { 'X' : 'gina' }]
for soln in Prolog . query ( "father(X,Y)" ):
print ( soln [ "X" ], "is the father of" , soln [ "Y" ])
# michael is the father of john
# michael is the father of gina
Basis pengetahuan yang ada yang disimpan dalam file Prolog juga dapat dilihat dan ditanyakan. Dengan asumsi nama file "knowledge_base.pl" dan Python dijalankan di direktori kerja yang sama, konsultasinya seperti ini:
from pyswip import Prolog
Prolog . consult ( "knowledge_base.pl" )
from pyswip import Prolog , registerForeign
def hello ( t ):
print ( "Hello," , t )
hello . arity = 1
registerForeign ( hello )
Prolog . assertz ( "father(michael,john)" )
Prolog . assertz ( "father(michael,gina)" )
print ( list ( Prolog . query ( "father(michael,X), hello(X)" )))
from pyswip import Functor , Variable , Query , call
assertz = Functor ( "assertz" , 1 )
father = Functor ( "father" , 2 )
call ( assertz ( father ( "michael" , "john" )))
call ( assertz ( father ( "michael" , "gina" )))
X = Variable ()
q = Query ( father ( "michael" , X ))
while q . nextSolution ():
print ( "Hello," , X . value )
q . closeQuery ()
# Outputs:
# Hello, john
# Hello, gina
Fungsi inti Prolog.query
didasarkan pada prolog.py domain publik Nathan Denny.
PySwip digunakan dalam artikel ilmiah, disertasi, dan proyek mahasiswa selama bertahun-tahun. Kunjungi Komunitas PySwip untuk informasi lebih lanjut dan tautan komunitas.
Apakah Anda memiliki proyek, video, atau publikasi yang menggunakan/menyebutkan PySwip? ajukan masalah atau kirim permintaan penarikan.
Jika Anda ingin mereferensikan PySwip dalam dokumen LaTeX, Anda dapat menggunakan file BibTeX yang disediakan. Anda juga dapat menggunakan informasi berikut untuk merujuk ke PySwip:
PySwip dilisensikan di bawah lisensi MIT.