+ All Categories
Home > Documents > Intelligent Architectures for Electronic Commerce Prolog/JADE Tutorial.

Intelligent Architectures for Electronic Commerce Prolog/JADE Tutorial.

Date post: 03-Jan-2016
Category:
Upload: aubrey-webb
View: 225 times
Download: 3 times
Share this document with a friend
Popular Tags:
22
Intelligent Architectur es for Electronic Commerce Prolog/JADE Tutorial
Transcript

Intelligent Architecture

s for Electronic Commerce

Prolog/JADE Tutorial

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

2

Overview

1. JADE2. CIAO Prolog3. Prolog and JADE

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

3

1. JADE

• Standard platform for agent communication

• Provides useful services:– Visualisation of messages;– Sending/receiving messages manually;– GUI, etc.

• We need to use some such platform to run our agents, otherwise how would we test them?

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

4

1. JADE

Container

Agent

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

5

2. CIAO Prolog

• Efficient, free implementation of Prolog• Higher-level than Java, C++, Delphi:

– Allows symbolic reasoning– Terse syntax

• Common complaints:– Non-intuitive and outlandish– Difficult to understand– Inefficient– Odd choice for a programming language (if

it is not Java it is simply not cool…)

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

6

3. Prolog and JADE

• Means to “agentify” Prolog programs• Prolog programs may then:

– Send messages to other agents– Receive messages from other agents

• Prolog can then “talk” to any other languages– Current examples are all Prolog agents

• Our Prolog agents were isolated from the rest of the world!

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

7

3.1 Connecting Prolog/Jade

• JADE is for Java, not Prolog….• One solution:

– Prolog process has a “proxy” Java agent in JADE

– Prolog process sends and receives messages via proxy agent

– Diagrammatically

JADE

Ag1 Ag2 Ag4 PrologAg3

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

8

3.2 Proxy Agent

• Proxy agent is a simple Java program• Reads from/writes to a socket open on a port• Prolog program sends a message via proxy:

– Writes term onto socket– Term must be in a specific format (more later…)

• Proxy agent reads in Prolog term (message to be sent) and translates it onto FIPA-ACL

• Creation and registration of proxy agents is performed via StarterAgent

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

9

3.3 StarterAgent (1)

• Each Prolog process needs a proxy agent

• Prolog cannot start an agent in JADE• Solution: an agent inside JADE who is

responsible for starting up proxy agents!

• This is what StarterAgent is

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

10

3.3 StarterAgent (2)

• Started up manually using JADE’s service:

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

11

3.3 StarterAgent (3)

• Then you should type on the pop-up window:Name of the Starter Agent JAVA Class

Parameters: Port Number and “verbose” option

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

12

3.3 StarterAgent (4)

Look!!

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

13

3.3 StarterAgent (5)

• How to get hold of StarterAgent:1.Copy folder JADE-InterAgent into your jade folder2.Add

c:\jade\JADE-InterAgent to your CLASSPATH

• You can now start up your StarterAgent as before

• Choose a port which is not being used to use as a parameter when starting the agent

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

14

3.4 The Prolog Part (1)

• Download file agent.pl• Load it in CIAO Prolog• Type in

?- connect_to_jade(1450,ag1,starterAgentCool).

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

15

3.4 The Prolog Part (3)

1. Prolog connects to port 14502. Sends a request to the StarterAgent in the

form

request(Me,[StarterAg],register(Me)))

3. Receives a message with the port of the Proxy agent

inform(StarterAg,[Me],registered(Me,NewPort)))

3. Connects to the NewPort port4. And that’s all!

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

16

3.4 The Prolog Part (5)

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

17

3.4 The Prolog Part (6)

Look!!

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

18

3.4 The Prolog Part (7)

• After process connects to the port, it can send and receive messages via its proxy agent in JADE.

• You can, for instance, send a message using the JADE service, in order to test your Prolog agent.

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

19

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

20

3.4 The Prolog Part (10)

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

21

3.4 The Prolog Part (11)

• There are predicates defined to send and receive messages.

• Messages must be in the format

perf-name(id-sender,ListOfRecs, contents)

where ListOfRecs is a list of recipients’s id• Please read the documentation in the file agent.pl

Intelligent Architectures for Electronic CommerceTimothy J Norman and Wamberto Vasconcelos

22

4. Final Words

• No standard connection:– We’re free to create and propose solutions– How would you connect Prolog to JADE?

• This is state-of-the-practice stuff – There might be problems…– Let me know and I will try to help!

• Enjoy it!


Recommended