{"id":1300,"date":"2014-05-09T14:09:28","date_gmt":"2014-05-09T14:09:28","guid":{"rendered":"https:\/\/www.arg.tech\/?page_id=1300"},"modified":"2015-08-24T13:39:38","modified_gmt":"2015-08-24T13:39:38","slug":"dgep","status":"publish","type":"page","link":"https:\/\/www.arg.tech\/index.php\/research\/dgep\/","title":{"rendered":"The Dialogue Game Execution Platform (DGEP)"},"content":{"rendered":"<p>Draft documentation for the Dialogue Game Execution Platform (DGEP) API.<\/p>\n<ul>\n<li><strong>\/available<\/strong> returns a list of protocols corresponding to the DGDL+ files that are\u00a0available within the system. For example, this service currently returns a list of nine games: {&#8220;dgdl&#8221;: [&#8220;RPD&#8221;, &#8220;CB&#8221;, &#8220;mm&#8221;, &#8220;IMPACT&#8221;, &#8220;TDG&#8221;, &#8220;DC&#8221;, &#8220;Prakken&#8221;, &#8220;PPD&#8221;, &#8220;Lorenzen&#8221;]}<\/li>\n<li><strong>\/dialogue\/new\/&lt;PROTOCOL&gt;<\/strong> is used to initiate a dialogue according to a given\u00a0protocol. When this occurs, DGEP communicates with the Argument Web to create a new NodeSet, which will later be used to store the nodes created in the course of this particular dialogue. DGEP also makes an entry in its own internal database at this stage, recording the protocol being used, the AIFdb NodeSetID and a dialogueID, that will be used for all future interactions in this dialogue.<\/li>\n<li><strong>\/dialogue\/&lt;DIALOGUEID&gt;\/roles<\/strong> returns a list of the roles available in the dialogue. In this case DGEP\u2019s internal database is also consulted to determine any roles which may already have been filled.<\/li>\n<li><strong>\/dialogue\/&lt;DIALOGUEID&gt;\/join\/&lt;ROLE&gt;<\/strong> allows for a new user joining a dialogue. The client application specifies the dialogueID for the dialogue that they are joining, and the role which they wish to have within the dialogue. DGEP again stores this information in its local database and generates a participantID that can then be used to retrieve the user\u2019s available move list as well as to make a move.<\/li>\n<li><strong>\/dialogue\/&lt;DIALOGUEID&gt;\/moves<\/strong> and <strong>\/dialogue\/&lt;DIALOGUEID&gt;\/moves\/&lt;PARTICIPANTID&gt;<\/strong> return available legal moves globally or for a specific participant.\n<p>An example available move returned would be:<br \/>\n<code>{<br \/>\n\"aif\": \"{\\\"locutions\\\": [], \\\"nodes\\\": [{\\\"text\\\": \\\"Britain should disarm\\\", \\\"type\\\": \\\"I\\\", \\\"nodeID\\\": 1}, {\\\"text\\\": \\\"$q\\\", \\\"type\\\": \\\"I\\\", \\\"nodeID\\\": 2}, {\\\"text\\\": \\\"YA\\\", \\\"scheme\\\": \\\"Asserting\\\", \\\"type\\\": \\\"YA\\\", \\\"nodeID\\\": 3}, {\\\"text\\\": \\\"L\\\", \\\"type\\\": \\\"L\\\", \\\"nodeID\\\": 4}, {\\\"text\\\": \\\"YA\\\", \\\"scheme\\\": \\\"Asserting\\\", \\\"type\\\": \\\"YA\\\", \\\"nodeID\\\": 5}, {\\\"text\\\": \\\"L\\\", \\\"type\\\": \\\"L\\\", \\\"nodeID\\\": 6}, {\\\"text\\\": \\\"DefaultConflict\\\", \\\"scheme\\\": \\\"DefaultConflict\\\", \\\"type\\\": \\\"CA\\\", \\\"nodeID\\\": 7}, {\\\"text\\\": \\\"YA\\\", \\\"scheme\\\": \\\"Contradicting\\\", \\\"type\\\": \\\"YA\\\", \\\"nodeID\\\": 8}, {\\\"text\\\": \\\"L\\\", \\\"type\\\": \\\"L\\\", \\\"nodeID\\\": 9}], \\\"edges\\\": [{\\\"to\\\": 1, \\\"from\\\": 3}, {\\\"to\\\": 3, \\\"from\\\": 4}, {\\\"to\\\": 2, \\\"from\\\": 5}, {\\\"to\\\": 5, \\\"from\\\": 6}, {\\\"to\\\": 7, \\\"from\\\": 2}, {\\\"to\\\": 1, \\\"from\\\": 7}, {\\\"to\\\": 7, \\\"from\\\": 8}, {\\\"to\\\": 8, \\\"from\\\": 9}]}\",<br \/>\n\"reply\": {<br \/>\n\"q\": \"$q\",<br \/>\n\"p\": \"Britain should disarm\"<br \/>\n},<br \/>\n\"opener\": \"I disagree with \\\"Britain should disarm\\\" because $q\",<br \/>\n\"moveID\": \"DisagreeReason\"<br \/>\n}<br \/>\n<\/code><br \/>\nHere &#8216;aif&#8217; is a JSON-AIF representation of the AIF that would represent this move if it were to be made. This is generated by DGEP from the force and target information in the specification. This AIF structure is particularly useful in the case of an artificial participant determining what content to provide for a move based on the content of an existing AIF structure representing their beliefs. The &#8216;reply&#8217; section is the JSON that the user will return, having replaced any variables ($LETTER) with the content they wish to provide. The opener and moveID are extracted directly from the specification. The moveID is used to make the move and the opener is provided only for the user&#8217;s information.<\/li>\n<li><strong>\/dialogue\/&lt;DIALOGUEID&gt;\/interaction\/MOVEID<\/strong> allows a participant to make a specifically identified legal move.<\/li>\n<li><strong>\/dialogue\/&lt;DIALOGUEID&gt;\/transcript<\/strong> and <strong>\/dialogue\/&lt;DIALOGUEID&gt;\/status<\/strong> can be used by an application to get a list of moves carried out so far and the current status of the dialogue (w.r.t. participant roles, termination and so on).<\/li>\n<\/ul>\n<p><strong><br \/>\nExample Usage<\/strong><\/p>\n<p>In order to have a dialogue, you will want to do roughly the following steps:<\/p>\n<p>Create a new dialogue:<br \/>\nGET http:\/\/dgep.url\/dialogue\/new\/PROTOCOL<br \/>\nYou will get back a dialogue ID to use in the commands below.<\/p>\n<p>Join the dialogue as in a role e.g.:<br \/>\nGET http:\/\/dgep.url\/dialogue\/DIALOGUEID\/join\/Initiator<br \/>\nThis will give you the participant ID for the Initiator.<\/p>\n<p>You can now get the move list:<br \/>\nGET http:\/\/dgep.url\/dialogue\/DIALOGUEID\/moves<br \/>\nThis will give you a list of moves that are available.<\/p>\n<p>You will then need to do one of these moves, something like:<br \/>\ncurl -i -X POST -d &#8216;{&#8220;speaker&#8221;:&#8221;INITIATORID&#8221;, &#8220;reply&#8221;:{&#8220;p&#8221;:&#8221;Britain should disarm&#8221;, &#8220;target&#8221;:PARTICIPANTID}}&#8217; http:\/\/dgep.url\/dialogue\/DIALOGUEID\/interaction\/Question<\/p>\n<p>The requested interaction will be performed, and the available move list updated.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Draft documentation for the Dialogue Game Execution Platform (DGEP) API. \/available returns a list of protocols corresponding to the DGDL+ files that are\u00a0available within the system. For example, this service currently returns a list of nine games: {&#8220;dgdl&#8221;: [&#8220;RPD&#8221;, &#8220;CB&#8221;, &#8220;mm&#8221;, &#8220;IMPACT&#8221;, &#8220;TDG&#8221;, &#8220;DC&#8221;, &#8220;Prakken&#8221;, &#8220;PPD&#8221;, &#8220;Lorenzen&#8221;]} \/dialogue\/new\/&lt;PROTOCOL&gt; is used to initiate a dialogue according [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":96,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1300","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/pages\/1300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/comments?post=1300"}],"version-history":[{"count":5,"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/pages\/1300\/revisions"}],"predecessor-version":[{"id":1610,"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/pages\/1300\/revisions\/1610"}],"up":[{"embeddable":true,"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/pages\/96"}],"wp:attachment":[{"href":"https:\/\/www.arg.tech\/index.php\/wp-json\/wp\/v2\/media?parent=1300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}