Java tuprolog和定分句语法

Java tuprolog和定分句语法,java,prolog,tuprolog,Java,Prolog,Tuprolog,我正在使用tuProlog()从java内部运行一些prolog子句。我对定分句语法有一些问题,我认为Stackoverflow可能是正确的地方 使用中的定冠词语法示例,我们有 s --> np,vp . np --> det,n. vp --> v,np. vp --> v. det --> [the]. det --> [a]. n --> [woman]. n --> [man]. v --&

我正在使用tuProlog()从java内部运行一些prolog子句。我对定分句语法有一些问题,我认为Stackoverflow可能是正确的地方

使用中的定冠词语法示例,我们有

s  -->  np,vp . 
np  -->  det,n. 
vp  -->  v,np. 
vp  -->  v. 
det  -->  [the]. 
det  -->  [a]. 
n  -->  [woman]. 
n  -->  [man]. 
v  -->  [shoots].
我使用以下java代码将其拉入tuProlog(已经在其他prolog示例上测试过)

但不幸的是,我得到了一个例外:

Exception in thread "main" alice.tuprolog.InvalidTheoryException: The term 's' is not ended with a period.
    at alice.tuprolog.TheoryManager.consult(TheoryManager.java:193)
    at alice.tuprolog.Prolog.addTheory(Prolog.java:242)
    at TestDefinateClauseGrammar.main(TestDefinateClauseGrammar.java:13) 
谁能告诉我这个问题吗?我理解tuprolog应该支持Definite子句语法,因为他们的手册()中包含以下引用:

5.2 ISOLibrary
Library Dependencies: BasicLibrary.
This library contains almost1 all the built-in predicates and functors that
are part of the ISO standard and that are not part directly of the tuProlog
core engine or other core libraries. Moreover, some features are added, not
currently ISO, such as the support for definite clause grammars (DCGs).

欢迎提出想法……

所以我通过电子邮件得到了答案(可能对其他人有用…)

你的异常意味着你的prolog理论不是按原样写的 预计在2Prolog中。为了测试prolog代码,您可以运行 2p.jar…它打开一个GUI,告诉您错误在哪里。来自java 你不太明白发生了什么事。你有没有可能 想写点什么吗:s:-np,vp?我从来没有用过--> 在2Prolog中,我认为这是不可能的


所以我通过电子邮件得到了答案(可能对其他人有用…)

你的异常意味着你的prolog理论不是按原样写的 预计在2Prolog中。为了测试prolog代码,您可以运行 2p.jar…它打开一个GUI,告诉您错误在哪里。来自java 你不太明白发生了什么事。你有没有可能 想写点什么吗:s:-np,vp?我从来没有用过--> 在2Prolog中,我认为这是不可能的


由于默认情况下未加载DCG库,因此必须显式加载DCG库

您可以通过两种方式完成:

  • 在理论中使用load_library指令,如:
    :-load_库('alice.tuprolog.lib.DCGLibrary')。
  • 在引擎上调用load library方法:
    engine.loadLibrary(“alice.tuprolog.lib.DCGLibrary”)
  • 请参阅此处的Google代码存储库(),在这里您可以找到最新版本的引擎和手册

    干杯


    Ale

    由于默认情况下未加载DCG库,因此必须显式加载DCG库

    您可以通过两种方式完成:

  • 在理论中使用load_library指令,如:
    :-load_库('alice.tuprolog.lib.DCGLibrary')。
  • 在引擎上调用load library方法:
    engine.loadLibrary(“alice.tuprolog.lib.DCGLibrary”)
  • 请参阅此处的Google代码存储库(),在这里您可以找到最新版本的引擎和手册

    干杯


    Ale

    可能是序言列表第一行结束期间之前的空格?可能是序言列表第一行结束期间之前的空格?太好了!(虽然只有第二种选择有效)非常感谢:)你可能对这个问题感兴趣。。。完美的(虽然只有第二种选择有效)非常感谢:)你可能对这个问题感兴趣。。。
    5.2 ISOLibrary
    Library Dependencies: BasicLibrary.
    This library contains almost1 all the built-in predicates and functors that
    are part of the ISO standard and that are not part directly of the tuProlog
    core engine or other core libraries. Moreover, some features are added, not
    currently ISO, such as the support for definite clause grammars (DCGs).