Commonsense rules development: erinevus redaktsioonide vahel
| 48. rida: | 48. rida: | ||
== High level steps for constructing logical form == | == High level steps for constructing a logical form == | ||
Construction of logical form consists of the following steps: | Construction of logical form consists of the following steps: | ||
# Finding predicates and specify their arguments (number, type) | # Finding predicates and specify their arguments (number, type) | ||
## Concepts and events - predicate/1 | |||
## Roles - predicate/2 | |||
# Constructing corresponding atoms | # Constructing corresponding atoms | ||
# Dividing atoms on same level into groups | # Dividing atoms on same level into groups | ||
Redaktsioon: 16. detsember 2021, kell 14:08
A place to develop and maintain commonsense rules for quasimodo etc.
Static knowledge encoding
Description of current Quasimodo/ConceptNet encoding coming soon
Event encoding
We use Neo-Davidsonian encoding with semantic roles:
- actor (subject)
- patient (object)
- ...
Event type is the verb that describes the event.
Example: "Brutus stabbed Caesar in the agora"
event_subject(brutus, ev1). event_object(caesar, ev1). event_type(stab, ev1). event_location(agora, ev1).
Connecting Static Knowledge to Events
This is mostly unsolved. This minimal example may help get things started:
"Did grape juice turn into wine?"
event_subject(grape_juice, ev1). event_type(turn_into, ev1).
There are multiple ways of encoding that this is a question, for example:
event_object(wine, ev1) => $ans(yes).
Assuming we have commonsense knowledge about fermenting grape juice:
be(grape_juice, X) => ovs(wine, turn_into, X). % reflexivity be(X, X).
Proposal SVO triples can be connected to events like this:
ovs(Z, Y, X) & event_type(Y, W) & event_subject(X, W) => event_object(Z, W).
This example does not fully make sense yet, since the event itself lacks context. Work in progress.
High level steps for constructing a logical form
Construction of logical form consists of the following steps:
- Finding predicates and specify their arguments (number, type)
- Concepts and events - predicate/1
- Roles - predicate/2
- Constructing corresponding atoms
- Dividing atoms on same level into groups
- Specifying connectives between atoms of each group and construct corresponding formulas.
- Dividing formulas and/or any of the remaining atoms of the same level into groups. If there are no groups go to step 7
- Specifyng connectives between elements of each group
- Specifying quantifers for the variables.
- Constructing the final FOL formula.