Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Marco Perez
    @marcophrd_twitter
    if I keep the networking disabled it does run, but the behaviour is the same I described yesterday
    Marco Perez
    @marcophrd_twitter
    I replicated the same error by creating my own java configuration as explained in section 2 here: http://www.sarl.io/docs/official/gettingstarted/RunSARLAgentEclipse.html
    Stéphane Galland
    @gallandarakhneorg
    Ok, I cannot reproduce on my own system. Could you provide to me screenshots of the run configuration wizard. I would like to check the configuration, because "com/google/gson/Gson" is not a valid agent name.
    Stéphane Galland
    @gallandarakhneorg
    Issue solved: sarl/sarl#885
    Not yet published into a stable release. May be in the next 0.9 at beginning of February.
    Marko Gollisky
    @mg6831_gitlab

    Hi There,

    I‘m new to agent-oriented programming and just started to explore SARL. My goal is similar to Marcos. I also started with the PingPongSpace Example from the Tutorial. I then tried to separate the BootAgent into two new Boot Agents. One should start the PingAgent, the other one should start the Pong Agent. I used the same code from the original BootAgent, but had only one spawn call in it. And I defined a hard coded UUID with which I created the comspace.

    What I find irritating is, that when I start the PingAgent, it founds the PongAgent. Although it is not started yet. Meaning the if (comspace.participants.size > 1) ist true. When I then start the PongAgent it creates a new comspace. So there is no communication between the two agents. In debug mode the comspace ids look like this:

    comspace EventSpaceImpl (id=384)
    comspace EventSpaceImpl (id=381)

    Where am I wrong? What is a proper way to do this? BTW, an example of network communication in the tutorial section of the documentation would be nice.

    I‘m using eclipse SARL Version: 0.8.6

    Thanks and best regards
    Marko

    Stéphane Galland
    @gallandarakhneorg
    The test "comspace.participants.size > 1" is not the best way for detecting the partner. You should use a more complex approach based on the AgentSpawned event that is fired when another agent is appearing into the system. The use of this event is not enough, because the partner (PongAgent) may be already launched and waiting for the PingAgent. One way is to define a presentation protocol used by both agent for ensuring the discovering of the partner.
    I think we should update the tutorial in order to provide a complete example of such complex protocol.
    Gillian Basso
    @gbasso
    Can you provide a release date for the new version of SARL that resolves the sarl/sarl#885 ?
    Stéphane Galland
    @gallandarakhneorg
    March 15th.
    Gillian Basso
    @gbasso
    Great tank you!
    Stéphane Galland
    @gallandarakhneorg
    Release is delayed to March 25th because I have found an issue into the Maven plugin of SARL that must be fixed before the release. It is not a huge problem since the officially planned release date is March 31th.
    Gillian Basso
    @gbasso

    Hello,
    I created a new world space in the inner context of an Agent with this code :

            this.worldSpace = innerContext.getOrCreateSpaceWithID(OpenEventSpaceSpecification, uid)
            this.worldSpace.register(asEventListener)

    then, I try to add an Agent to this new space with that code (the Agent was not created in the innerContext):

            val worldSpace = worldContext.getOrCreateSpaceWithSpec(OpenEventSpaceSpecification, worldSpaceIaD)
            worldSpace.register(asEventListener)

    (I verified that the contextID and the spaceID are the same, and it is the case)
    But the first Agent seems to never receive the MemberJoined event.
    Is it normal ? Did I do something wrong ?

    Stéphane Galland
    @gallandarakhneorg
    I think the problem is due to the call to getOrCreateSpaceWithID in one hand, and getOrCreateSpaceWithSpec on the other hand.
    The first tries to find a space with the given ID into the inner context.
    The second tries to find a space with the given specification into the world context.
    Are the worldContext and innerContext the same?
    Gillian Basso
    @gbasso
    Oh... well... this is probably the problem.
    Stéphane Galland
    @gallandarakhneorg
    Please, double check. A bug is always possible.
    Gillian Basso
    @gbasso

    Finally, I am not sure if it was the problem...
    I complete the information with some logs, maybe it could help...

    this.worldSpace = innerContext.getOrCreateSpaceWithID(OpenEventSpaceSpecification, uid)
    this.worldSpace.register(asEventListener)
    [INFO, 9:41:37am, Janus SRE] Space SpaceID [
      type = "SpaceID"
      id = 15029ea2-0c1b-437b-b4ce-9ef4b94744dc
      contextID = 005a4b66-cde2-4af5-8570-0adf92c3246d
      spaceSpec = interface io.sarl.util.OpenEventSpaceSpecification
    ] is created
    info("Joining the World organisation: " + occurrence.spaceID + " (" + occurrence.context + ").")
    
    val worldContext = occurrence.context
    val worldSpaceID = occurrence.spaceID
    
    val worldSpace = worldContext.getOrCreateSpaceWithID(OpenEventSpaceSpecification, worldSpaceID)
    worldSpace.register(asEventListener)
    [INFO, 9:41:37am, VirtualPedestrian-b087b4b7-8c67-4e40-b856-98c3697da5a2] Joining the World organisation: 15029ea2-0c1b-437b-b4ce-9ef4b94744dc (005a4b66-cde2-4af5-8570-0adf92c3246d).

    Do you find something wrong ?

    Gillian Basso
    @gbasso
    It seems to have the same problem if my Agent try to join the defaultSpace (of the innerContext). Also, no new EventSpace is created when I call getOrCreateSpaceWithID for the second time as nothing is displayed and if I change the ID, something appends Space SpaceID [...] is created.
    Stéphane Galland
    @gallandarakhneorg
    I have to study this behavior of the system.
    Gillian Basso
    @gbasso
    Thank you
    Stéphane Galland
    @gallandarakhneorg
    Eclipse is now release every 3 months (March, June, September, December). It causes compilation errors for SARL that force us to upgrade to the new version. Consequently, we need time for upgrading and validating the SARL product.
    The two release months of SARL should be changed to end of April (the "April" version) and end of October (the "October" version).
    We are very sorry for who is waiting for the new version.
    Gillian Basso
    @gbasso
    Hello, is it possible to have a Generic <T> in an Event ? In other words, I cannot create event MyEvent<T> to store a parameter as T, is it possible to overcome this ?
    Stéphane Galland
    @gallandarakhneorg
    From a pure technical point of view, it is possible. Now, we have to clearly define the semantic of this feature and how it is supposed to be supported in emitting agent and receving agent.
    In other words, emit(new MyEvent<Float>) is easy to understand. The question is related to a clear definition into the receiving agent regarding different syntaxes, e.g. "on MyEvent{}", "on MyEvent<Float> {}", "on MyEvent<? extends Number> {}", etc.
    Before implementing this feature, we need to have an agreement.
    Could you put an issue on Github in order to open the discussion with the community?
    Cornelius Carstens
    @ccarstens

    Hi, I am new to Sarl and just tried to set up Sarl in Eclipse with Maven. The Eclipse Download from the Website did not work, when launching Eclipse.app I receive an error message, that an error has occurred after choosing the working directory (macOS)

    I followed all the steps from the tutorial and just tried to set up a launch configuration in eclipse. I have Janus added as a dependency, and had maven update the project, but I cannot add the Janus Library to the launch config. I would be really grateful for help. Thank you!

    Stéphane Galland
    @gallandarakhneorg
    You do not need to add Janus into the launch configuration if the pom.xml file contains dependencies to Janus.
    Stéphane Galland
    @gallandarakhneorg
    Release Candidate 1 of SARL 0.9.0 is now reader for download and test.
    You could download, compile and test this RC.
    Stéphane Galland
    @gallandarakhneorg
    Version 0.9.0 is now released.
    Stéphane Galland
    @gallandarakhneorg
    Summary of the discussions during the first European Forum for SARL users and developers is available on: http://www.multiagent.fr/Conferences:EuSarlCon19
    Stéphane Galland
    @gallandarakhneorg
    SARL will move to Eclipse 2019-09 and the next associated Xtext.
    Stéphane Galland
    @gallandarakhneorg
    Release Candidate 1 of SARL is ready to be download and tested: http://www.sarl.io/download/index.html#download_devel_version
    shahshahkir
    @shahshahkir_twitter
    I am new to SARL but can run JADE hello agent on ubuntu. How can I run SARL Hello agent on ubuntu?
    Stéphane Galland
    @gallandarakhneorg
    Have you followed the installation and hello world tutorials on sarl.io.
    The document also explains how to run the agents, including on Ubuntu.
    Stéphane Galland
    @gallandarakhneorg
    Tim555
    @Tim555
    Hi, for my master thesis, I am investigating the possibility of using SARL for modeling and simulation. However, I have a few questions about the operational semantics of the Janus SRE. If run on a single device, if a new agent is spawned, is the new agent run in a separate process or does it use a new thread within a single process? How are events passed to the appropriate agents. Is there some literature available on these topics? Thanks in advance.
    Stéphane Galland
    @gallandarakhneorg
    The operational semantic of Janus associates one thread to each "on X" clause within an agent. It means what a single agent may run multiple threads at the same time.
    Because the Janus SRE is a Java application, a executor service is used for supporting the parallel execution of the "on X" clauses. Consequently, there is a single process for a single Janus instance, and all agents that are spawn into this JAnus instance are associated to threads.
    If you need multiple processes, you must launch manually (from the command line or with different Eclipse run configurations) several instances of Janus.
    By default, when an agent is fired, it is dispatched and provided to all the agents that are involved into the communication space in which the event is fired. You could limit the number of agents that are receiving an event by specifying a scope as argument of the "emit" function. This scope must be true for the agents that should receive the event.
    Stéphane Galland
    @gallandarakhneorg
    A paper that is explaining the basics of the operational semantics will be published during the next couple of weeks. Send to me stephane.galland@utbm.fr an email in order to obtain a draft copy of this paper.