Closed zariuq closed 1 year ago
I like this change, but it looks like the specifics need more work and double-checking. It's a somewhat big change. For example, the first axiom shown in the diff has hasExpertise, which requires an instance argument
Yeah, it would ideally involve checking every field of study to make sure it's not used as an instance of Proposition in some way. (In terms of bugs, it'd be easier to just fix the use of Theology.)
I think hasExpertise's arguments are Human and FieldOfStudy. It uses "realization", which requires an instance of Proposition so I modified the rule to say that there exists an instance of the FieldOfStudy that the expert knows. Which is a bit hacky.
I am happy to leave it open (or just committed on my repo) :- ).
I think it makes more sense for fields of study to be subclasses than instances.
Kantian Philosophy might, arguably, be an instance of a proposition. Philosophy as a whole is a class of such propositions, however.
Moreover, the below is probably a bug (instance of an instance) whereas it's fine when Theology is a class ;- ).
(instance Theology FieldOfStudy) (documentation Theology EnglishLanguage "The systematic study of religion.")
(=> (instance ?X Theology) (exists (?Y) (and (instance ?Y ReligiousProcess) (refers ?X ?Y))))
subField is now an irreflexive version of subclass (pretty much).
In two cases I added that there is an instance of the FieldOfStudy to preserve the logical statements.
(It's possible there are some uses of the particular fields of study that I missed. I'll understand if this pull request is not merged. At least it's on my personal branch 😉. I don't seem to get syntax errors when loading it to Sigma.)