1.1.1 • Published 3 years ago

thumder-ontology v1.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

THUMDER Ontology

CommandDescription
npm run devBuild the app. Your built files are in the /dist folder
npm run dev:serverBuild the example for server
npm run dev:clientBuild the example for client
npm run node:serverExecute the example for server
npm run node:clientExecute the example for client
npm run testTest the app with jest

Via npm

npm install thumder-ontology --save

Via npm with version

npm install thumder-ontology@<version> --save

Examples

import { ACLMessage, Performative, InteractionProtocol } from "thumder-ontology";

const createFile = new CreateFile('path/to/folder', 'tests/', 'example_00.s')
const createFile_string = JSON.stringify(createFile)
const message = new ACLMessage()
message.setSender(new AID({
    name: "Client",
    localName: "Client-" + this.coreAgents.clientID,
    address: this.coreAgents.clientID
}))
message.setPerformative(Performative.REQUEST)
message.setOntology(new Ontology("Make-File"))
message.setContent(createFile_string)

this.coreAgents.addTask(new Task_CreateFile_RequestInitiator("Make-File", message)).then((data) => {
    // ... CODE
})

Define Task - SERVER

import { ACLMessage, AchieveREResponder } from "thumder-ontology";

export class Task_CreateFile_RequestResponse extends AchieveREResponder {
    constructor(taskName: string) {
        super(taskName);
        console.log("Task_CreateFile_RequestResponse")
    }

    handleRequest(request: ACLMessage): ACLMessage {
        console.log("Task_CreateFile_RequestResponse handleRequest", this.getTaskName())
        const message_reply = request.createReply();
        message_reply.setPerformative(Performative.AGREE);
        return message_reply
    }
}

Define Task - CLIENT

import { AchieveREInitiator, ACLMessage } from "thumder-ontology";

export class Task_CreateFile_RequestInitiator extends AchieveREInitiator {
    constructor(taskName: string, message: ACLMessage) {
        super(taskName, message)
        console.log("Task_CreateFile_RequestInitiator")
    }

    handleAgree(agree: ACLMessage): any {
        console.log("Task_CreateFile_RequestInitiator handleAgree")
        return "Agree"
    }

    handleRefuse(refuse: ACLMessage): any {
        console.log("Task_CreateFile_RequestInitiator handleRefuse")
        return "Refuse"
    }

    handleInform(inform: ACLMessage): any {
        console.log("Task_CreateFile_RequestInitiator handleInform")
        return "Inform"
    }
}

Add Task

import { CoreAgentsServer } from "./CoreAgentsClient";

const coreAgents = new CoreAgentsServer(<any>io)
coreAgents.addTask(new Task_RequestResponse())

io.on("connection", (socket) => {
    socket.on("disconnect", (args) => {
        coreAgentsServer.deleteSocket(socket.id)
        consoleManager.deleteSocket(socket.id)
    })
    coreAgentsServer.addNewSocket(socket)
    consoleManager.addSocket(socket)
});
import { CoreAgentsClient } from "./CoreAgentsServer";

const coreAgents = new CoreAgentsClient(<any>socket)

socket.on("connect", () => {
    console.log('connect', socket.id)
    coreAgents.clientID = socket.id
})

Design of ontology

Concept

README_Concept

AgentAction

README_AgentAction

Predicate

README_Predicate

Tasks

README_Predicate

README_Predicate

README_Predicate

README_Predicate

README_Predicate

README_Predicate

README_Predicate