carneades / carneades-4

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

Argument from scheme not generated when adding an assumption #27

Closed pallix closed 7 years ago

pallix commented 7 years ago

Hi again,

I have this file where uncommenting the commented line causes the argument to not be generated from the scheme:

meta:
  title: something

language:
  concluded/1: "We conclude %s"
  to/2: "%s can conclude %s."
  rendered_obsolete/2: "Theory %s has been rendered obsolete, by some other unknown theory, for observation %s "
  observed/1:  "%s has been observed."
  from/2: "Theory %s can be used to conclude something from %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."
  t/0: "Theory implies something "
  would_be_known/1: "%s would be known if it were true."
  uninvestigated/1: "The truth of %s has not been investigated."
  known/1: "%s is known to be true."

argument_schemes:

  - id: abduction
    variables: [S,T,H]
    conclusions:
      - concluded(H)
    premises:
      - observed(S)
      - from(T,S)
      - to(T,H)
    exceptions:
      - rendered_obsolete(T,S)

statements:
  technical_mistake: technical mistake
  ¬technical_mistake: not a technical mistake

assumptions:
  # - technical_mistake
  - observed(obs)
  - from(t,obs)
  - to(t,conc)
tfgordon commented 7 years ago

Thanks Pierre. Very mysterious. We will look into it and get back to you. Tom


From: Pierre Allix notifications@github.com Sent: Tuesday, March 28, 2017 7:04 PM To: carneades/carneades-4 Cc: Subscribed Subject: [carneades/carneades-4] Argument from scheme not generated when adding an assumption (#27)

Hi again,

I have this file where uncommenting the commented line causes the argument to not be generated from the scheme:

meta: title: something

language: concluded/1: "We conclude %s" to/2: "%s can conclude %s." rendered_obsolete/2: "Theory %s has been rendered obsolete, by some other unknown theory, for observation %s " observed/1: "%s has been observed." from/2: "Theory %s can be used to conclude something from %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." canary_missing_implies_subpoena/0: "A missing canaray implies a subpoena was served " would_be_known/1: "%s would be known if it were true." uninvestigated/1: "The truth of %s has not been investigated." known/1: "%s is known to be true."

argument_schemes:

statements: technical_mistake: technical mistake ¬technical_mistake: not a technical mistake

assumptions:

- technical_mistake

- You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/carneades/carneades-4/issues/27, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAsP-_JGzBqxjQIDRWxlYyha_JJwFCZaks5rqT2jgaJpZM4Mr6sf.

tfgordon commented 7 years ago

confirmed.

tfgordon commented 7 years ago

I found the problem: technical_mistake was not declared in the language, which causes a runtime error to be raised by the CHR inference engine. I will post an issue to extend the validator to check that all predicates used in the statements and assumptions have been declared in the language.

This modified version works:

meta:
  title: something

language:
  concluded/1: "We conclude %s"
  to/2: "%s can conclude %s."
  rendered_obsolete/2: "Theory %s has been rendered obsolete, by some other unknown theory, for observation %s "
  observed/1:  "%s has been observed."
  from/2: "Theory %s can be used to conclude something from %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."
  t/0: "Theory implies something "
  would_be_known/1: "%s would be known if it were true."
  uninvestigated/1: "The truth of %s has not been investigated."
  known/1: "%s is known to be true."
  technical_mistake/0: "There was a technical mistake."

argument_schemes:

  - id: abduction
    variables: [S,T,H]
    conclusions:
      - concluded(H)
    premises:
      - observed(S)
      - from(T,S)
      - to(T,H)
    exceptions:
      - rendered_obsolete(T,S)

statements:
  technical_mistake: technical mistake
  ¬technical_mistake: not a technical mistake

assumptions:
  - technical_mistake
  - observed(obs)
  - from(t,obs)
  - to(t,conc)