Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schemes with conclusion being a variable cause problems during instantiation #25

Closed
pallix opened this issue Mar 28, 2017 · 5 comments
Closed

Comments

@pallix
Copy link
Member

pallix commented Mar 28, 2017

Hi Tom :),

When the premises of a scheme having a variable as a conclusion can be grounded with statements put in the assumptions, it fails to generate an argument but also blocks the generation for the other schemes.

For example the following file stops to produce any argument during the evaluation, when the commented lines are uncommented:

meta:
  title: Walton Argumentation Schemes
  notes: >
    Here we illustrate one way to represent many of the argumentation schemes of Doug Walton,
    including critical questions. 
  source: >
    Walton, Douglas and Reed, Chris and Macagno, Fabrizio (2008). 
    Argumentation Schemes. Cambridge University Press.

language:
  just/1: "just %s"
  in/2: "%s contains %s as a member."
  more_coherent_explanation/2: "There exists a more coherent explanation than theory %s of observation %s."
  observed/1:  "%s has been observed."
  explanation/2: "Theory %s explains %s."
  has_occurred/1: "An event %s has occurred."
  causes/2: "Event %s causes event %s."
  interference/1: "An event has occurred which interferes with event %s."
  will_occur/1: "An event %s will occur."

statements:
   expert(joe,climate): Joe is a climate expert.
   in_domain(¬caused_by(global_warming,humans),climate): >
      The claim that global warming is not caused by humans is in the climate domain.
   asserts(joe,¬caused_by(global_warming,humans)): >
      Joe asserts that global warming is not caused by humans.
   ¬caused_by(global_warming,humans): >
      Global warming is not caused by humans.
   based_on_evidence(asserts(joe,¬caused_by(global_warming,humans))): 
      "Joe's assertion is based on evidence."
   observed(s): observed
   explanation(t,s): explanation
   in(t,h): in

argument_schemes:

  # - id: abduction
  #   variables: [S,T,H]
  #   conclusions: [H]
  #   premises:
  #     - observed(S)
  #     - explanation(T,S)
  #     - in(T,H)
  #   exceptions:
  #     - more_coherent_explanation(T,S)

  - id: abduction_working
    variables: [S,T,H]
    conclusions:
      - just(H)
    premises:
      - observed(S)
      - explanation(T,S)
      - in(T,H)
    exceptions:
      - more_coherent_explanation(T,S)

assumptions:
  - observed(s)
  - explanation(t,s)
  - in(t,h)

Yours,
Pierre

@tfgordon
Copy link
Member

tfgordon commented Mar 28, 2017 via email

@tfgordon
Copy link
Member

tfgordon commented Mar 28, 2017

But the expert witness scheme works, also when its premises match assumptions. I can reproduce the problem with the abduction scheme, but do not yet see the difference between these two schemes causing this problem. I will keep looking. The example below works, but you need to add the langauge. Statements need not be declared; they will be derived automatically.

argument_schemes:
  - id: abduction
    variables: [S,T,H]
    conclusions: [H]
    premises:
      - observed(S)
      - explanation(T,S)
      - in(T,H)
    exceptions:
      - more_coherent_explanation(T,S)
        

  - id: expert_opinion
    meta:
      title: Argument from Expert Opinion
      source: >
        Douglas Walton, Appeal to Expert Opinion, The Pennsylvania University Press,
        University Park, Albany, 1997, p.211-225.
    variables: [W,D,S]
    premises:
      - expert(W,D)
      - in_domain(S,D)
      - asserts(W,S)
    exceptions:
      - untrustworthy(W)
      - inconsistent_with_other_experts(S)
    assumptions:
      - based_on_evidence(asserts(W,S))
    conclusions:
      - S

assumptions:
  - biased(joe)
  - expert(joe, climate)
  - asserts(joe,¬caused_by(global_warming,humans))
  - in_domain(¬caused_by(global_warming, humans), climate)
  # - observed(wet)
  - explanation(weather,wet)
  - in(weather,rain)

@tfgordon
Copy link
Member

I found the problem. The predicate of the conclusion of the abductive argument, s, was not
declared in the language block. The predicates of all statements to be derived by the schemes must also be declared. The abduction example below, with the predicate of the conclusion added to the language,
works.

meta:
  title: Abduction Argumentation Scheme
  note: This example only works if the conclusion, rain, is
        declared in the language. More generally, the predicates
        of all statements to be derived by the schemes must be declared.
  source: >
    Walton, Douglas and Reed, Chris and Macagno, Fabrizio (2008). 
    Argumentation Schemes. Cambridge University Press.

language:
  explanation/2: "Theory %s explains %s."
  in/2: "%s contains %s as a member."
  more_coherent_explanation/2: "There exists a more coherent explanation than theory %s of observation %s."
  observed/1:  "%s has been observed."
  rain/0: "It rained."

argument_schemes:
  - id: abduction
    variables: [S,T,H]
    conclusions: [H]
    premises:
      - observed(S)
      - explanation(T,S)
      - in(T,H)
    exceptions:
      - more_coherent_explanation(T,S)

assumptions:
  - observed(wet)
  - explanation(weather,wet)
  - in(weather,rain)

@tfgordon
Copy link
Member

Please let me know if I can close this issue now.

@pallix
Copy link
Member Author

pallix commented Mar 30, 2017

Indeed, it works. Thank you. I'm closing the issue.

@pallix pallix closed this as completed Mar 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants