Re: log:conclusion confusion

> On Oct 21, 2020, at 12:42 PM, Doerthe Arndt <doerthe.arndt@ugent.be> wrote:
> 
> Dear Gregg,
> 
> Filtering basically means that you select a set of rules and only show the result of these rules applied to your knowledge base (which can consist of rules and triples). In cwm, you get the result of filtering if you use the option --filter, in eye you can use --query instead. I try to also clarify the snippet from the design issues.
>> Perhaps you can help decipher the description of Filtering in DesignIssues:
>> 
>> Filtering
>> 
>> When a knowledge base (formula) contains a lot of information, one way to filter off a subset is to run a set of rules on the knowledge base, and take only the new data which is generated by the rules.   This is the filter operation.
>> 
>> When you apply rules to a knowledge base, the filter result of rules in H applied to K is the union of all σG for every statement F => G which is in H,  for every σ which s a transformation composed of universal eliminations of variables universally quantified in H such that K includes σF.
> Let's go through the different components.
> 
> We have a knowledge base K and a set of filter rules H.
> 
> To have an example, let 
> 
> K={ <a><b><c>.} 
> 
> So, we have just one triple. Note that the knowledge base can also contain rules, I just wanted to keep the example simple.
> 
> Let furthermore be 
> 
> H={ {?x <b> ?y}=>{?x <b> <d>}.}
> 
> So, again, our example contains only one rule, but the definition also allows multiple rules in the filter.
> 
> The rules in the filter all have the format 
> 
> F => G
> 
> (this is normal since they are all rules and rules have that format).
> 
> So, in our simple example we only have one rule with
> 
> F= ?x <b> ?y.
> 
> and 
> 
> G = ?x <b> <d>.
> 
> No, if you apply a rule, you normally make a substitution which is called σ in the definition. 
> You have some σF which is true in the knowledge base and can conclude from that σG.
> 
> On our example:
> 
> σ is a function which replaces ?x by <a> and ?y by <c>.
> 
> So we have σF = <a><b><c>.
> 
> Now, we have to apply the same σ to G, we get:
> σG = <a> <b> <d>.
> 
> And that  σG is now also the result of our filtering.
> 
> I just made the exercise here to explain you that the definition is actually close to your understanding: if you apply filtering, the output of this process should only be all the results of all the rules contained in the filter which can be derived from the knowledge in the knowledge base.
> 
> I hope that helps :)

Yes it does, and certainly aligns with my thinking; it’s just the logic of log:conclusions I was struggling with. Hopefully, someone else is running through the test suite to see if we agree on the results.

Gregg

> Kind regards,
> Doerthe
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>> 
>> The first paragraph seems to say that only the new data is generated. I’m not entirely sure what the second paragraph says. As most of these tests are run with filter; true, it would seem that the results should be consistent with this interpretation.
>> 
>> Gregg Kellogg
>> gregg@greggkellogg.net <mailto:gregg@greggkellogg.net>
>> 
>>> On Oct 21, 2020, at 9:48 AM, Gregg Kellogg <gregg@greggkellogg.net <mailto:gregg@greggkellogg.net>> wrote:
>>> 
>>>> On Oct 21, 2020, at 5:21 AM, Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu <mailto:pierre-antoine.champin@ercim.eu>> wrote:
>>>> 
>>>> 
>>>> 
>>>> On 21/10/2020 01:11, Gregg Kellogg wrote:
>>>>> Hi, I’ve been struggling with log:conclusion just running the conclusion-simple.n3 test (https://w3c.github.io/N3/tests/N3Tests/cwm_includes/conclusion-simple.n3 <https://w3c.github.io/N3/tests/N3Tests/cwm_includes/conclusion-simple.n3>)
>>>>> 
>>>>> {{<a> <b> <c>}=>{<test> a <SUCCESS> }.
>>>>>   <a> <b> <c>.
>>>>> }   a :TestRule.
>>>>> 
>>>>> {   ?x a :TestRule; log:conclusion ?y }  => { ?y a :TestResult }.
>>>>> 
>>>>> It seems to me that the conclusion would be the inferred triple contained in a formula:
>>>>> 
>>>>> {
>>>>>   <test> a <SUCCESS> .
>>>>> } a :TestResult .
>>>>> 
>>>>> However, CWM seems to include the inferred triple within the context of the premise:
>>>>> 
>>>>> {
>>>>>   <a> <b> <c> .
>>>>>   <test> a <SUCCESS> .
>>>>>   {<a> <b> <c> .} => {<test> a <SUCCESS> .} .
>>>>> } a :TestResult .
>>>> EYE does the same.
>>>>> 
>>>>> In my opinion, the conclusion would just contain the implied triple, 
>>>> That's the thing: all triples originally present in the formula are implied by the formula…
>>>> 
>>> If that’s the case, then either I’ve missed some statement about this, or we need to be more explicit. A number of tests may be inconsistent with this interpretation, but that will take a more detailed analysis and a comparison with the original source.
>>> 
>>> Gregg
>>>>   best
>>>> 
>>>>> but that seems to be at odds with convention. This also calls into question may other tests where the result is filtered to include just the conclusions from running rules in the store, rather than the store plus the conclusions. I think this needs a more formal description.
>>>>> 
>>>>> The conclusion.n3 test is more complicated, as it concludes the conjunction of the semantics of several other files, so the result would seem to be subject to further reasoning based upon those semantics.
>>>>> 
>>>>> Gregg Kellogg
>>>>> gregg@greggkellogg.net <mailto:gregg@greggkellogg.net>
> -- 
> Dörthe Arndt
> Researcher Semantic Web
> imec - Ghent University - IDLab | Faculty of Engineering and Architecture | Department of Electronics and Information Systems
> Technologiepark-Zwijnaarde 122, 9052 Ghent, Belgium
> t: +32 9 331 49 59 | e: doerthe.arndt@ugent.be <mailto:doerthe.arndt@ugent.be>

Received on Wednesday, 21 October 2020 21:24:54 UTC