prolog中的图书馆系统

prolog中的图书馆系统,prolog,rules,Prolog,Rules,我需要一个prolog库系统的帮助 我试图以这种方式定义我图书馆中的所有书籍: book(['programming in logic'], [nm(k, clark), nm(f, mcCabe)], ['programation'], ['editorial 123']). ?- book(Title,Autgor,Genre,Editorial), findall( Genre, (member('programation', Genre)), [

我需要一个prolog库系统的帮助

我试图以这种方式定义我图书馆中的所有书籍:

book(['programming in logic'],
     [nm(k, clark), nm(f, mcCabe)], 
     ['programation'],
     ['editorial 123']).
?- book(Title,Autgor,Genre,Editorial), 
   findall( Genre, (member('programation', Genre)), [G]).
我尝试用这种方式查询所有编程书籍:

book(['programming in logic'],
     [nm(k, clark), nm(f, mcCabe)], 
     ['programation'],
     ['editorial 123']).
?- book(Title,Autgor,Genre,Editorial), 
   findall( Genre, (member('programation', Genre)), [G]).
但我需要按体裁、作者推荐书


我还需要做统计、最受欢迎的书、最受搜索的类型、最受欢迎的作者等等,但我不确定如何定义执行这些查询的规则。我搜索了一些例子,但只找到了像家谱之类的东西,我不明白。如果您能为本练习提供示例,我将不胜感激。

当然,为库系统建模可能是一个非常复杂的主题

我建议开始学习RDF,例如使用SWI Prolog,它有一个非常强大的库专门用于此任务

我只是尝试使用RDF来建模比biblio域更简单的对象

总之,我在谷歌上搜索了“圣经本体论”,得到了一些合理的结果,比如


开始时,也许你可以考虑一些介绍性的材料。

如果你只想帮助获得所有的编程书籍,我们可以很容易地修改你的查询,但是这不是正确的地点,给你一个关于如何用PROlog执行查询的长的一般教程。我想把这个查询转换成规则,因为我假设这是我用来提出建议的问题。。但是我想用sugestion_book(x,y)的方式:-blablabla suggestion_作者:-blablabla还是最好留作查询?查询实际上是关于Prolog的交互式使用。通常,你会想把你做的任何有意义的事情编成法典。