1
jpl이 다중 프롤로그 vms를 지원하지 않기 때문에 Prolog 파일을 모듈로 참조하려고합니다. swipl 콘솔에서jpl에서 모듈로 파일을 참조하는 방법
, 나는이 성공적으로 자바에서
?- consult(mod1:'data/load.pro') .
(물론, 실제로 스칼라,하지만 그들은 JVM의 상단에 있습니다), 나는 파일을 참조 할 수 있습니다 직접 w/O를 같이 뭔가를 할 수 문제가
scala> import jpl._
scala> val q = new Query("consult", Array[Term](new Atom("data/load.pl")))
scala> q.query()
...
true
그러나 내가 모듈로 파일을 참조하려고했을 때, 나는 항상 예외를 얻는다.
scala> val q = new Query("consult", Array[Term](new Atom("mod1:data/load.pl")))
scala> q.query()
jpl.PrologExcepion: PrologException: error(existence_error(source_sink, 'mod1:data/load.pl'), _0)
at jpl.Query.get1(Query.java:336)
at jpl.Query.hasMoreSolutions(Query.java:258)
at jpl.Query.oneSolution(Query.java:688)
at jpl.Query.query(Query.java:747)
at .<init>(<console>:15)
at .<clinit>(<console>)
....
jpl의 모듈로 프롤로그 파일을 참조하는 올바른 방법을 알려줄 수 있습니까? 감사!
불행하게도,이 작동하지 않습니다, 나는 얻었다 예외, "jpl.JPLException : Term.putParams : 공식보다 더 많은 실제 매개 변수". 지금까지는 쿼리에 대한 문자열 인수로 직접 프롤로그 구문을 넣습니다. 새 쿼리 ("consult (mod1 : 'data/load.pro')") – Sheng
새 쿼리 ("mod1 : consult ('data/load.pro') ")'? – CapelliC
네, 작동합니다 :-) – Sheng