Parsing 如何将文本文件转换为swi 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

我希望prolog读取用户上传的文本文件,将其转换为prolog事实并存储在知识库中。我对prolog相当陌生,所以,我不知道它是否可能,因为文本文件中有一些垃圾和重复数据,我只想获取其中的某些部分

示例:这是文本文件

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+,_,_,_)).