-
Notifications
You must be signed in to change notification settings - Fork 68
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
R2L rules for dealing with temporal RelEx relations (e.g. _time(), after(), before()) #124
Comments
These are definitely useful. Maybe it's better to use PredicateNode instead of inventing those new link types, according to what @amebel pointed out http://wiki.opencog.org/w/EvaluationLink#As_syntactic_sugar
|
Thanks for your comment, @ruiting. What you point out sounds reasonable. Otherwise we would need 7 distinct links for temporal reasoning alone. @amebel, @bgoertzel, would you mind commenting as well? |
Sure, using predicate node is ok ... On Saturday, July 19, 2014, Sebastian Ruder [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
@ruiting, @amebel, @williampma, should these rules create a "timemarker" which can then be processed in the post-processing component? I'm not quite up-to-date on the current status of the post-processing. Should I implement this or has this already been discussed and someone is assigned to this and you'd suggest that I should focus on something else? |
I think this is an important area to deal with, because information coming So far as I know nobody else is working on it... ben On Tue, Aug 12, 2014 at 7:31 AM, Sebastian Ruder [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
This certainly seems doable in post-processing with a "timemarker", by searching the related links containing the node "have" and "go" in the above example. It might be better to follow the More complex sentence might end up with
Though I find it to be very strange for RelEx to produce relations on the word "have" like If you create the R2L rule and helper function for creating the "timemarker", I could go and create the post-processing function for "timemarker" for you. I want to see how the other markers' post-processing functions will interact with this one, since the order different "marker" are post-processed will change the final result for more complex sentences. |
The And one more thing about a general "timemarker", since it needs to work for both "after" and "before", I guess the word "after" and "before" need to be included as part of the "timemarker".
|
Actually (sorry, kind of brainstorming), why do we need post-processing? With
PLN should be able to inference from the instance "have@1111" and "go@2222", and get to the links created by SVO, SVIO, SV, etc, right? |
@williampma, true. If we just refer to the unique PredicateNodes, PLN will be able to reason with them. Somehow I had envisioned embedding the whole EvaluationLink but I think this works equally well and doesn't require post-processing. |
@williampma, I created the three rules described above and their corresponding helper functions here and here. Would you mind reviewing them? |
About the part-of-speech thing: looks like you found a bug I thought I completely fixed in #94 but it seems I have missed a case. I will work on fixing it. |
BTW, with regards to whether post-processing is needed, and whether
is enough for PLN, it has been an ongoing confusion for me. I recall I have a similar confusion when working with Hmmm, so you think
Is the same as
That's true if nobody adds links to delicious@1234 later , I guess ... But, suppose we use the first representation given above. If the Atomspace also has
in it, then PLN induction will yield
or something like that.... Then we will have
in the Atomspace.... But then, when you look at
-- how will you know that the relevant fact is "I tell you that pumpkin is delicious" rather than "I tell you that pumpkin is delicious and maybe cute" ?? On the other, we can say
with confidence that nobody is going to change
into something else later on. |
I can answer this if someone reminds me what sentence is being represented;
Oops, sorry about that.. The practical crux of that email was that this representation Evaluation seems unproblematic. However, after that discussion we decided to use representations like Evaluation
EmbeddedTruthValueLink
However Evaluation that tell delicious@1234
ben |
The alternatives to ponder are: "she had lunch shortly after she got |
So the alternative is EvaluationLink This alternative constitutes a link that is guaranteed to always represent On the other hand, EvaluationLink EvaluationLink have@123 she@123 lunch@123 is not guaranteed to always represent what the sentence said, because later Inheritance go@123 slowly Then, looking at EvaluationLink EvaluationLink have@123 she@123 lunch@123 there seems no way for the system to figure out which links were part of So if seems if we are going to use EvaluationLink EvaluationLink have@123 she@123 lunch@123 then we might want something like an InterpretationNode, with semantics like ReferenceLink specifying which links constitute the direct interpretation of the -- Ben On Fri, Aug 15, 2014 at 5:10 PM, Linas Vepstas [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
Why is it important to preserve the original sentence? The original Now, philosophicaqlly speaking, yes its usually best to apply But, at some point, after analyzing dozens of sentences that are telling a |
Yes, in general, the system won't need to preserve knowledge regarding what However (as you allude in your first paragraph), we don't want to commit to ben On Fri, Aug 15, 2014 at 9:07 PM, Linas Vepstas [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
If we choose the representation
shouldn't it then later be possible to retrieve all the relevant and additional information to the sentence by looking up the incoming sets of the PredicateNodes, i.e. (EvaluationLink have@123 she@123 lunch@123) and (EvaluationLink go@123 she@123 home@123). I imagine we would be able to reconstruct the sentence this way without the need to provide the full interpretation here. What do you think? |
The main point I don't fully understand is this
Let's modify the above to talk about "after" instead. I guess I understand other links could attach to nodes like "go@2222" afterward for
like from anaphora resolution perhaps. But how is that different from
Wouldn't other links still be able to attach to the node "go@2222" with this representation? What is the difference? |
And I think we have already been breaking apart sentences even for simple sentence like
|
On Mon, Aug 18, 2014 at 5:29 AM, William Ma [email protected]
So, the above relation says, roughly: (A)
(B) Of course, A can be made equivalent to B by adding on additional A1) and A2) ... Then, modulo some rearrangement, A + A1 + A2 = B My point was just that the meaning of the sentence is either B or A+ A1+A2; So, breaking apart sentences is OK, but if we want to map a sentence S to ReferenceLink or ReferenceLink or something like that... ben
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
Interesting... @amebel's recent code for SuReal will already do this, so with that functionality are we saying it's OK to keep the sentence broken apart? No post-processing needed for rules that simply tries to bring things together (eg. that-rule, before-rule, after-rule, and-rule, but-rule, or-rule, etc)?? |
On Mon, Aug 18, 2014 at 6:08 AM, William Ma [email protected]
thx |
Here you go http://wiki.opencog.org/w/RelEx2Logic_representation Of the rules I mentioned, only the "that-rule" has post-processing implemented, since the other rules are still under discussion. On the other hand, all-rule, maybe-rule, etc would probably still require post-processing I assume, since they are not simply just bring in links together, but actually modifying them. |
I don't get how a non temporal instance she@123 occur between other In line with (A) i interpreted the above as, The instance of she called she@123 had a lunch called lunch@123 after she What am i missing? |
Ah, sorry for confusing language.... I just meant (B) -- no temporality was implied... -- ben On Mon, Aug 18, 2014 at 8:41 AM, Amen Belayneh [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
On Mon, Aug 18, 2014 at 7:20 AM, William Ma [email protected]
Hmm, so if we didn't do post-processing, what would the "final" " look like?
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
Kind of like the
|
To repeat myself: -- The goal here is NOT to precisely reconstruct sentences, but rather, to What Ben is saying is that, by breaking the sentence apart into many capiche? |
Assuming the terms that span multiple relationships such as "that" and On Tue, Aug 19, 2014 at 4:58 AM, William Ma [email protected]
Ben Goertzel, PhD "In an insane world, the sane man must appear to be insane". -- Capt. James "Emancipate yourself from mental slavery / None but ourselves can free our |
The final output of r2l are
In line with http://wiki.opencog.org/w/Linguistic_interpretation |
As pointed out here, I'd like to come up with a temporal reasoning demo which covers the whole pipeline -- from parsing natural language with RelEx and RelEx2Logic until performing inference with PLN on its output.
As there are no RelEx2Logic rules which deal with temporal relations yet, I propose to write R2L rules which convert the following RelEx relationship into the respective atom space representation:
-->
-->
-->
Concerning 1): As UnixTime is used as default, the TimeNode in the first example should only consist of a number which should be set according to some system, e.g. 6 pm = 12_60 + 6_60 = 1080. If the time is stated by using a form of "to be", e.g. "The concert is at 6 pm", the relation is
_pobj(at, pm)
instead ofat(have, pm)
.Concerning 1)+2)+3): The relation link should consist of the links/nodes that are part of its relation. These are produced by other rules, e.g. SV, SVO, SVP, and would need to be accessible to the temporal rule so they can be used inside of the ListLink.
Are these desirable representations and are these rules that you consider useful? I'm glad about your feedback.
The text was updated successfully, but these errors were encountered: