Parsing 如何将文本文件转换为swi prolog事实?
我希望prolog读取用户上传的文本文件,将其转换为prolog事实并存储在知识库中。我对prolog相当陌生,所以,我不知道它是否可能,因为文本文件中有一些垃圾和重复数据,我只想获取其中的某些部分 示例:这是文本文件Parsing 如何将文本文件转换为swi prolog事实?,parsing,prolog,swi-prolog,file-conversion,Parsing,Prolog,Swi Prolog,File Conversion,我希望prolog读取用户上传的文本文件,将其转换为prolog事实并存储在知识库中。我对prolog相当陌生,所以,我不知道它是否可能,因为文本文件中有一些垃圾和重复数据,我只想获取其中的某些部分 示例:这是文本文件 Main Menu </cgi/regweb/stu_login.main_menu> _ *Academic Transcript*_ *Year/Semester:* 2013 / 1 *Number :* 2013
Main Menu </cgi/regweb/stu_login.main_menu>
_
*Academic Transcript*_
*Year/Semester:*
2013 / 1 *Number :* 20131234
*Name :* Mary Georgia *Advisor :* Mr.Paul Watson
*Degree :* B.Sc. in Information Systems *Status :*
------------------------------------------------------------------------
*Course* *Course Name* *Credit* *Grade* *Status* *Repeated*
ENGL 154 LANGUAGE DEVELOPMENT I 3 A - 0
ITCS 103 COMPUTER PROGRAMMING 1 4 A - 0
ITIS 101 PERSONAL PRODUCTIVITY WITH IS TECHNOLOGY 3 A- - 0
MATHS 101 CALCULUS I 3 B+ - 0
------------------------------------------------------------------------
*Semester Credits Attended :* 13 *Passed:* 13 *GPA:* 3.92
*Cumulative Credits Attended:* 13 *Passed:* 13 *GPA:* 3.92
------------------------------------------------------------------------
*/STUDENT COPY - äÓÎÉ ÇáØÇáÈ /*
*åÐå ÇáäÓÎÉ ÛíÑ ÑÓãíÉ æáÇ ÊÚÑÖ ÍÇáÉ ÇáØÇáÈ ÇáÃßÇÏíãíÉ
Úáì ÇáØÇáÈ ÇÓÊÎÑÇÌ äÓÎÉ ßÔÝ ÇáÏÑÌÇÊ ÇáÑÓãíÉ ãä ãßÊÈ ÇáÊÓÌíá*
*This is not an Official Transcript and Does Not State The Academic Status
Students must obtain detailed Official Transcript of their Academic
Status from the Registration Offices *
------------------------------------------------------------------------
***************** End Of Transcript For 2013 / 1 *******************
------------------------------------------------------------------------
*Year/Semester:*
2013 / 2 *Number :* 20131234
*Name :* Mary Georgia *Advisor :* Mr.Paul Watson
*Degree :* B.Sc. in Information Systems *Status :*
------------------------------------------------------------------------
*Course* *Course Name* *Credit* *Grade* *Status* *Repeated*
ACC 112 FINANCIAL ACCOUNTING I 3 B- - 0
ECON 140 MICROECONOMICS 3 A- - 0
ENGL 155 LANGUAGE DEVELOPMENT II 3 A - 0
ITCS 104 COMPUTER PROGRAMMING 2 4 A - 0
MGT 131 INTRO. TO BUSINESS ADMINISTRATION 3 A - 0
------------------------------------------------------------------------
*Semester Credits Attended :* 16 *Passed:* 16 *GPA:* 3.82
*Cumulative Credits Attended:* 29 *Passed:* 29 *GPA:* 3.87
------------------------------------------------------------------------
*/STUDENT COPY - äÓÎÉ ÇáØÇáÈ /*
*åÐå ÇáäÓÎÉ ÛíÑ ÑÓãíÉ æáÇ ÊÚÑÖ ÍÇáÉ ÇáØÇáÈ ÇáÃßÇÏíãíÉ
Úáì ÇáØÇáÈ ÇÓÊÎÑÇÌ äÓÎÉ ßÔÝ ÇáÏÑÌÇÊ ÇáÑÓãíÉ ãä ãßÊÈ ÇáÊÓÌíá*
*This is not an Official Transcript and Does Not State The Academic Status
Students must obtain detailed Official Transcript of their Academic
Status from the Registration Offices *
------------------------------------------------------------------------
***************** End Of Transcript For 2013 / 2 *******************
------------------------------------------------------------------------
课程表(编号、年份、学期、课程表(课程1、课程2、课程3、课程4、课程5、课程6、课程7)、年级(课程1年级、课程2年级、课程3年级、课程4年级、课程5年级、课程6年级、课程7年级)
在剩下的学期里,如果有的话,也要这样做
任何帮助都将不胜感激。从一个较小的示例开始!对于新手来说太复杂了。当然有可能。这只是一点工作。:)你看过SWI Prolog文档中的I/O谓词吗?@false事实上,这是我课程项目的一部分,AI学术顾问。现在,我可以选择更简单的方法,即假设学生是四年级学生,并根据他们的CGPA建议他/她唯一的四级课程,从而限制范围。然而,对我来说,直接从学生的成绩单中存储学生的信息和课程信息似乎更实用、更好。所以,尽管如此,我还是要尝试一下,如果没有成功,那么我会选择更简单的方法。@潜伏者,这就是我所困惑的。我遇到过一些库,比如解析html、xml的sgml,。。文件,然后还有一个叫做DCG的,我相信它能解析简单的短语或句子。我认为这些在我的情况下都不起作用。那么,我能用I/O谓词来做吗?或者还有其他库可以工作吗?您的文件只是一个文本文件,没有HTML、XML等特殊格式。所以您不需要特殊的库。您需要使用并自己进行一些解析。这就是我的意思,这只是一点工作。:)从一个小的例子开始!对新手来说太复杂了。当然有可能。这只是一点工作。:)你看过SWI Prolog文档中的I/O谓词了吗?@false事实上,这是我课程项目的一部分,AI学术顾问。现在,我可以选择更简单的方法,即假设学生是四年级学生,并根据他们的CGPA建议他/她唯一的四级课程,从而限制范围。然而,对我来说,直接从学生的成绩单中存储学生的信息和课程信息似乎更实用、更好。所以,尽管如此,我还是要尝试一下,如果没有成功,那么我会选择更简单的方法。@潜伏者,这就是我所困惑的。我遇到过一些库,比如解析html、xml的sgml,。。文件,然后还有一个叫做DCG的,我相信它能解析简单的短语或句子。我认为这些在我的情况下都不起作用。那么,我能用I/O谓词来做吗?或者还有其他库可以工作吗?您的文件只是一个文本文件,没有HTML、XML等特殊格式。所以您不需要特殊的库。您需要使用并自己进行一些解析。这就是我的意思,这只是一点工作。:)
student(20131234,'Mary Georgia',29,3.87,'Mr.Paul Watson').
coursestaken(20131234,2013,1,courseslist(ENGL154,ITCS103,ITIS101,MATHS101,_,_,_),grades(A,A,A-,B+,_,_,_)).