[Attempto] [Illegal argument: arglist_namevaluelist/2 error]

Mohammed Nasri mohammed.nasri at gmail.com
Mon Feb 1 12:07:59 CET 2016


Hi Kaarel,

---------------
Sincères salutations
Mohammed NASRI

2016-01-31 23:38 GMT+00:00 Kaarel Kaljurand <kaljurand at gmail.com>:

> Hi,
>
> you don't need to have an internet connection to use the HTTP-based
> service (i.e. APEWebservice). Just start the server:
>
>     ./ape.exe -httpserver
>
> and then call from your application, e.g.
>
> http://localhost:8000/?text=Every+man+is+a+human.&solo=drsxml


​Ok, I think it's a good solution. the only concern is the fact that in our
platform (Amine), things must not be complicated for users, which are often
not computer scientists, so they would not have to run any external
program. If the APE HTTP server start/stop operations can be performed
programmatically, it would be perfect, the platform runs the server before
the analysis of the ACE text, and stop it once the DRS is generated.

What do you think ? and if the command line *ape.exe -httpserver* runs the
server, how to stop it ?


>
> and parse the result. Actually the Java Interface for APE does the
> parsing for you, see the Javadoc
> http://attempto.ifi.uzh.ch/site/docs/java/apidocs/index.html and a
> concrete example how to use the webservice:
>
>
> https://github.com/Attempto/APE/blob/master/java/src/test/java/ch/uzh/ifi/attempto/ape/APEWebserviceTest.java
>
> i.e. you just need to start the server and have attempto-ape.jar on
> your classpath to be able to use it via simple Java methods.
>

​It's perfect.
​


>
> I agree, getting the JPL-based access (i.e. APELocal) to work is
> complicated. That's one of the reasons I prefer the HTTP-interface.
> Your error (NoClassDefFoundError) indicates that JPL is not found on
> the Java class path. Have you tried the instructions on
> https://github.com/Attempto/APE/tree/master/java? I just tried, and
> all the tests worked (mvn test). I had to make the following
> modification:
>
>
> https://github.com/Attempto/APE/commit/b1eab4e0640ab09fecdeb69ccccb8473dd4af947
>
>
​I made the modifications, but I have probably a jar versionning problem,
the version of my jpl is ​7 (because I have SWI-Prolog 7.3.16), which is, I
suppose, not compatible with the attempto-ape.jar.​

You probably need to do something similar. (We don't currently have a
> more general solution, that would work out of the box.)
>
> I'd prefer to continue this discussion on the mailing list, in this
> way other users can profit from it as well.


> Best,
> Kaarel
>
>
> On Sun, Jan 31, 2016 at 11:33 PM, Mohammed Nasri
> <mohammed.nasri at gmail.com> wrote:
> > Hi Kaarel,
> >
> > Thank you for you answers and your suggestions.
> >
> > For information, here is the exact command line I generate :
> > /Users/mohammednasri/Travail/TLN/tln/tools/APE/ape.exe -text "John eats
> an
> > apple." -solo drsxml
> >
> > When I copy/paste this line and run it in the terminal, it seems to be
> > correct, but with the java application, I get the following error :
> > ERROR: Illegal argument: arglist_namevaluelist/2: eats
> >
> > Otherwise, I cannot use the APE HTTP interface if it requires an internet
> > connection.
> >
> > I suppose, on the other hand, that the Java bridge is the best solution,
> if
> > it calls the locat APE instance. The problem with this bridge is, in my
> > opinion, so complicated to implement. I tried many times but in vain.
> Today,
> > I began from the begining, I installed the SWI prolog 7.3.16 (recommended
> > for mac os El Captain), it contains the jpl.jar library and I created a
> new
> > java application. In this application I added the attempto-ape.jar and
> the
> > jpl.jar libraries, I created a sample class with the following code :
> >
> > String s = APELocal.getInstance().getSoloOutput("John eats an apple.",
> > OutputType.DRSXML);
> > System.out.println(s);
> >
> > But I get this error : Exception in thread "main"
> > java.lang.NoClassDefFoundError: jpl/Term
> >
> > I tried an other solution, by following the steps you recommend in the
> > https://github.com/Attempto/APE/tree/master/java.
> > I created a new maven project, with the pom you gave in the URL. But I
> > always get the error that the artifact jpl:jpl:jar:6.4.1 is missing, I
> tried
> > others versions of the jar: 2.0.2 and 1.0.1 but in vain.
> >
> > Now if you already have a java project with all the dependencies or a
> java
> > project that successefully run the APE local project, I would be very
> > thankfull if you can shared it with me.
> >
> > Best regards.
> >
> > ---------------
> > Sincères salutations
> > Mohammed NASRI
> >
> > Hi,
> >
> > it's hard to tell for sure without seeing the actual command line that
> > is generated by the application, but I suspect that the quotation
> > marks are not represented correctly and APE thinks that "eats" is not
> > meant to be part of the input text but some (unsupported) command.
> >
> > May I suggest to call APE via its HTTP interface
> > (https://github.com/Attempto/APE#http-interface-to-ape) or the Java
> > bridge (https://github.com/Attempto/APE/tree/master/java). It would be
> > _much_ faster and would also avoid errors in commandline generation.
> >
> > Best,
> > Kaarel
> >
> > On Fri, Jan 29, 2016 at 4:59 PM, Mohammed Nasri
> > <mohammed.nasri at gmail.com> wrote:
> >> Hello,
> >>
> >> I developed a Java application that uses APE (Attempto Parser Engine).
> In
> >> this application, I get the ACE text from a input text field and then I
> >> generate the command line to be passed to APE.
> >>
> >> For example, the command line I generate for the following example :
> "John
> >> eats an apple." is :
> >>
> >> APE_PATH/ape.exe -text "John eats an apple." -solo drsxml
> >> or
> >> APE_PATH/ape.exe -noclex -ulexfile CUSTOM_CLEX_PATH/clex_lexicon.pl
> -text
> >> "John eats an apple." -solo drsxml
> >>
> >> Depending on whether we use or not a custom clex file.
> >>
> >> When I run these two command lines in the terminal directly, APE works
> >> fine
> >> and prints the following same result:
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >>
> >> <DRS domain="A B">
> >>   <object
> >>       ref="A"
> >>       noun="apple"
> >>       struct="countable"
> >>       unit="na"
> >>       numrel="eq"
> >>       num="1"
> >>       sentid="1"
> >>       tokid="4"/>
> >>   <predicate
> >>       ref="B"
> >>       verb="eat"
> >>       subj="named('John')"
> >>       obj="A"
> >>       sentid="1"
> >>       tokid="2"/>
> >> </DRS>
> >>
> >> But when I run this sentence within my application, I get this error :
> >>
> >> Illegal argument: arglist_namevaluelist/2: eats
> >>
> >> Do you have any idea of what can be the source of the issue ?
> >>
> >> Thank you.
> >>
> >>
> >> ---------------
> >> Sincères salutations
> >> Mohammed NASRI
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ifi.uzh.ch/pipermail/attempto/attachments/20160201/fdfd376a/attachment.html>


More information about the attempto mailing list