carneades / carneades-4

Version 4 of Carneades, implemented in Go
https://carneades.github.io/
Other
48 stars 13 forks source link

Specification for the YAML format #50

Open mgttlinger opened 3 months ago

mgttlinger commented 3 months ago

I'm currently playing around with the YAML input and would like to know whether there is a specification or documentation for the expected format. The examples are very different in their structure. What is the best resource in general to get to know Carneades and it's capabilities?

tfgordon commented 3 months ago

Unfortunately I never got around to writing a manual. But there are some articles which you might find sufficient, or at least helpful.

My full list of publications is at: https://tfgordon.github.io/publications

Of these let me recommend

If anything is still unclear, I am happy to help.

Regards,

Tom


Tom Gordon @.***

On 2024-07-03 16:12, Merlin wrote:

I'm currently playing around with the YAML input and would like to know whether there is a specification or documentation for the expected format. The examples are very different in their structure. What is the best resource in general to get to know Carneades and it's capabilities?

-- Reply to this email directly, view it on GitHub [1], or unsubscribe [2]. You are receiving this because you are subscribed to this thread.Message ID: @.***>

Links:

[1] https://github.com/carneades/carneades-4/issues/50 [2] https://github.com/notifications/unsubscribe-auth/AAFQ764ZXRW2SSVCDXG45NLZKQBEXAVCNFSM6AAAAABKJVSJHSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM4DQNZVGEZDIOI

mgttlinger commented 3 weeks ago

Sorry for taking so long to get back to you. I've carefully read the papers and was curious to learn how you avoid the pitfalls of bipolar argumentation having both issues and arguments in the format. You seem to avoid this by not propagating the effects of issues backwards along arguments. Take the following example input file:

statements:
  p: P
  np: ~P
  x: ¬app(a1)
  q: Q

issues:
  i1:
    positions: [p, np]

arguments:
  a1:
    premises: [q]
    conclusion: p
    undercutter: x
  a2:
    premises: [q]
    conclusion: np

assumptions: [q]

Here I would expect as solution

in: [q,x,np]
out: [p]

however Carneades produces

in: [q]
out: [p,np,x]

weirdundercut

because x is unsupported and hence labelled out. Did I get that right that this behaviour is expected? If so, can this be configured somehow to tweak the CAES semantics to more closely align with the intuition in such cases?

tfgordon commented 3 weeks ago

Hello Merlin,

The behavior is indeed expected. And it seems intuitive to me. But then I am not very familiar with the semantics of bipolar argumentation, which apparently is the source of your intuition.

Let me try to make the semantics of Carneades in this case more intuitive for you. In Carneades, at most one position of an issue may be in. But in this example, there are equally good arguments for both p and np. Indeed, both arguments are derived from the same assumption, q. Since not both n and np can be in and there is no reason to prefer one of the arguments, especially since the undercutter for a1 is out, then both n and np must be out.

Is it the case in bipolar argumentation the propositions are out by default, so that there is a preference for np? There is no preference in Carneades for any position of an issue. There is nothing comparable to negation by failure. Rather, all of the positions of an issue can "fail", as in this example, so that we remain agnostic about both p and np. (Side note: an issue can have any number of positions, not just 2, which is intended to make Carneades useful for practical reasoning comparing multiple solutions to

a problem.)

Also, I do not understand your intuition behind making x in in this example, since x has no support by any argument and has not been assumed.

That said, of course you are free to tweak the semantics of Carneades by modifying your copy of the code, if you would like.

Regards,

Tom


Tom Gordon @.***

On 2024-09-10 16:10, Merlin wrote:

Sorry for taking so long to get back to you. I've carefully read the papers and was curious to learn how you avoid the pitfalls of bipolar argumentation having both issues and arguments in the format. You seem to avoid this by not propagating the effects of issues backwards along arguments. Take the following example input file:

statements: p: P np: ~P x: ¬app(a1) q: Q

issues: i1: positions: [p, np]

arguments: a1: premises: [q] conclusion: p undercutter: x a2: premises: [q] conclusion: np

assumptions: [q]

Here I would expect as solution

in: [q,x,np] out: [p]

however Carneades produces

in: [q] out: [p,np,x]

weirdundercut.png (view on web) [1]

because x is unsupported and hence labelled out. Did I get that right that this behaviour is expected? If so, can this be configured somehow to tweak the CAES semantics to more closely align with the intuition in such cases?

-- Reply to this email directly, view it on GitHub [2], or unsubscribe [3]. You are receiving this because you commented.Message ID: @.***>

Links:

[1] https://github.com/user-attachments/assets/59d664f1-5061-4c46-86d8-725763ec7937 [2] https://github.com/carneades/carneades-4/issues/50#issuecomment-2340938562 [3] https://github.com/notifications/unsubscribe-auth/AAFQ765K33SQKUXNBV22DFLZV34WVAVCNFSM6AAAAABKJVSJHSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBQHEZTQNJWGI

mgttlinger commented 3 weeks ago

Thanks for the detailed explanation!

My intuition and the reason for having the x are as follows: Assumptions are taken as true, and everything else is undecided. We have equally good arguments a1 and a2 deriving the two positions of the issue from the in-labelled assumption. Since at most one of them can be true (as witnessed by the issue) the solution at hand (assuming the assumptions or the argument system as a whole weren't already inconsistent in some way) is to see if other statements in the system which are undecided as of now can be decided in such a way that this conflict goes away. Hence labelling x in. Essentially this propagates effects from issues backwards along arguments while the Carneades semantics only move forwards along the connections.

Bipolar argumentation is an extended form of abstract argumentation so it doesn't have structure to the statements and hence no preference between one node or the other. They do have support and attack relations which interact (in different ways depending on the authors of the paper) by forming derived edges in the graph. So for example supporting a node which is the target of an attack would create a derived attack from the source of the attack to the source of the support in some sense pulling the attack backwards along the support edge. This behaviour comes with loads of algorithmic pitfalls often resulting in heavy restrictions of the underlying graph like being acyclic.

I think the mismatch in intuition stems from labelling unsupported statements like x out while I would intend such unsupported and unassumed statements as truly undecided and hence have no preference for a default labelling of those. The out by default semantics employed are reasonable in a "I don't accept things when there is no argument for it" setting while I envision more a kind of "open minded" semantics of "we haven't argued about these statements but maybe there were implicit assumptions that follow from the rest of the arguments" (like resolving the inconsistency between a1 and a2 in my example)

mgttlinger commented 3 weeks ago

But coming back to the actual issue about the YAML format. I think I'm familiar enough with the workings of Carneades to take a stab at documenting the format. Your papers were a good read for that! I would write a JSON Schema as this seems like the official way to specify YAML files if you think that would be a valuable addition to the project.

tfgordon commented 3 weeks ago

Hi Merlin,

I'm getting home late today, but will try to get back to you tomorrow.

Regards,

Tom


Tom Gordon @.***

On 2024-09-11 09:19, Merlin wrote:

Thanks for the detailed explanation!

My intuition and the reason for having the x are as follows: Assumptions are taken as true, and everything else is undecided. We have equally good arguments a1 and a2 deriving the two positions of the issue from the in-labelled assumption. Since at most one of them can be true (as witnessed by the issue) the solution at hand (assuming the assumptions or the argument system as a whole weren't already inconsistent in some way) is to see if other statements in the system which are undecided as of now can be decided in such a way that this conflict goes away. Hence labelling x in. Essentially this propagates effects from issues backwards along arguments while the Carneades semantics only move forwards along the connections.

Bipolar argumentation is an extended form of abstract argumentation so it doesn't have structure to the statements and hence no preference between one node or the other. They do have support and attack relations which interact (in different ways depending on the authors of the paper) by forming derived edges in the graph. So for example supporting a node which is the target of an attack would create a derived attack from the source of the attack to the source of the support in some sense pulling the attack backwards along the support edge. This behaviour comes with loads of algorithmic pitfalls often resulting in heavy restrictions of the underlying graph like being acyclic.

I think the mismatch in intuition stems from labelling unsupported statements like x out while I would intend such unsupported and unassumed statements as truly undecided and hence have no preference for a default labelling of those. The out by default semantics employed are reasonable in a "I don't accept things when there is no argument for it" setting while I envision more a kind of "open minded" semantics of "we haven't argued about these statements but maybe there were implicit assumptions that follow from the rest of the arguments" (like resolving the inconsistency between a1 and a2 in my example)

-- Reply to this email directly, view it on GitHub [1], or unsubscribe [2]. You are receiving this because you commented.Message ID: @.***>

Links:

[1] https://github.com/carneades/carneades-4/issues/50#issuecomment-2342851824 [2] https://github.com/notifications/unsubscribe-auth/AAFQ766JD4LTTFYAZ3LKX2TZV7VGRAVCNFSM6AAAAABKJVSJHSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBSHA2TCOBSGQ

tfgordon commented 3 weeks ago

Hi Merlin,

OK. I understand better your intuitions. Thank you for the explanation. It seems to me that your intuitions are more in line with semantics for abstract argumentation which try to maximize the number of accepted arguments. Carneades, on the other hand, is more like grounded semantics. Or, if you prefer, more like intuitionistic (constructive) logic. Rather than trying to maximize the number of accepted arguments (or statements) if is very conservative and only accepts statements which can be grounded in arguments derived from explicit assumptions. This is also way unsupported undercutters like x are out. Out does not mean false, but rather more like unsupported.

Also, no decisions are made by the system. The user makes the decisions. The system can only help users to make decisions which are well-supported by reasons. In statements are well supported. Out statements are not. I guess this can be viewed as the opposite of abstract argumentation, where an argument is accepted unless it has been attacked. Here, x is not acceptable (in) for lack of support, even though it has not been attacked.

So, I guess you can say Carneades is not so "open-minded". It does not give you the benefit of the doubt, that there may be some justification for an unsupported statement such as x, which has not been made explicit. It requires you to make the argument explicit before x can be labelled in.

Regards,

Tom


Tom Gordon @.***

On 2024-09-11 09:19, Merlin wrote:

Thanks for the detailed explanation!

My intuition and the reason for having the x are as follows: Assumptions are taken as true, and everything else is undecided. We have equally good arguments a1 and a2 deriving the two positions of the issue from the in-labelled assumption. Since at most one of them can be true (as witnessed by the issue) the solution at hand (assuming the assumptions or the argument system as a whole weren't already inconsistent in some way) is to see if other statements in the system which are undecided as of now can be decided in such a way that this conflict goes away. Hence labelling x in. Essentially this propagates effects from issues backwards along arguments while the Carneades semantics only move forwards along the connections.

Bipolar argumentation is an extended form of abstract argumentation so it doesn't have structure to the statements and hence no preference between one node or the other. They do have support and attack relations which interact (in different ways depending on the authors of the paper) by forming derived edges in the graph. So for example supporting a node which is the target of an attack would create a derived attack from the source of the attack to the source of the support in some sense pulling the attack backwards along the support edge. This behaviour comes with loads of algorithmic pitfalls often resulting in heavy restrictions of the underlying graph like being acyclic.

I think the mismatch in intuition stems from labelling unsupported statements like x out while I would intend such unsupported and unassumed statements as truly undecided and hence have no preference for a default labelling of those. The out by default semantics employed are reasonable in a "I don't accept things when there is no argument for it" setting while I envision more a kind of "open minded" semantics of "we haven't argued about these statements but maybe there were implicit assumptions that follow from the rest of the arguments" (like resolving the inconsistency between a1 and a2 in my example)

-- Reply to this email directly, view it on GitHub [1], or unsubscribe [2]. You are receiving this because you commented.Message ID: @.***>

Links:

[1] https://github.com/carneades/carneades-4/issues/50#issuecomment-2342851824 [2] https://github.com/notifications/unsubscribe-auth/AAFQ766JD4LTTFYAZ3LKX2TZV7VGRAVCNFSM6AAAAABKJVSJHSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBSHA2TCOBSGQ

tfgordon commented 3 weeks ago

Hi Merlin,

Thank you for offering to take on this task. That would be very helpful. I would really appreciate you doing this.

Regards,

Tom


Tom Gordon @.***

On 2024-09-11 10:42, Merlin wrote:

But coming back to the actual issue about the YAML format. I think I'm familiar enough with the workings of Carneades to take a stab at documenting the format. Your papers were a good read for that! I would write a JSON Schema as this seems like the official way to specify YAML files if you think that would be a valuable addition to the project.

-- Reply to this email directly, view it on GitHub [1], or unsubscribe [2]. You are receiving this because you commented.Message ID: @.***>

Links:

[1] https://github.com/carneades/carneades-4/issues/50#issuecomment-2343020359 [2] https://github.com/notifications/unsubscribe-auth/AAFQ767EW3R6Q4XBRTSF6Z3ZV767RAVCNFSM6AAAAABKJVSJHSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBTGAZDAMZVHE