Re: [rdf-star] multi-level embedded triples and quoted vs. asserted


On 10/06/2022 15:05, Souripriya Das wrote:
> What would be the best ways to represent the two cases of the 
> following sentence in RDF-star:
>       Alice heard that Bob knew that Cindy read, from email and in 
> paper, that Dan adores Eve
> i.e.,
>       Alice heard []
>                           |
>                          Bob knew []
>                                            |
>                                            Cindy read {from email; in 
> paper} []
>                                 |
> Dan Adores Eve
>
For a start, I will neglect the "from email, in paper" part, see below.


> Case 1: The only asserted triple should be: Alice heard <something>. 
> All the remaining triples (i.e., those that make up the <something> 
> portion) should be quoted triples only (i.e., not asserted triples).

In Turtle-star, this would  be


:alice :heard <<
   :bob :knew <<

     :cindy :read <<

       :dan :adores :eve

     >>

   >>
 >>.

>
> Case 2: Every triple used to represent this sentence should be an 
> asserted (i.e., not just quoted) triple.

same as above + assert all the nested triples, i.e.


;bob :knew << :cindy :read << :dan :adores :eve >> >>.
:cindy :read << :dan :adores :eve >>.

:dan :adores :eve.


The annotation syntax can not be used to reduce redundancy here, because 
it is designed for cases where the quoted triple is the *subject*, while 
in your example they all appear in *object* position.

If we assumed an alternative vocabulary, where predicate would be in the 
other direction, you could write it:


:dan :adores :eve {|

     :readBy :cindy {|

       :knownBy :bob {|

         :heardBy :alice

       |}

     |}

|}.


----

Now, about "from email; in paper".
This makes the example tricky, because basically, what Bob knew can no 
longer be represented by a single triple. We could model this by stating 
that bob knew several triples:


;bob :knew

     << :cindy :read << :dan :adores :eve >> >> ;
     << << :cindy :read << :dan :adores :eve >> >> :from :email123 >> ;

     << << :cindy :read << :dan :adores :eve >> >> :from :paper456 >> .


But then in turn, that's 3 triples that alice must have heard of...


Another way to model this would be to *name* the set of beliefs of bob:


:alice :heard << :bob :knew :sb >> .

:sb :triples (

     << :cindy :read << :dan :adores :eve >> >>
     << << :cindy :read << :dan :adores :eve >> >> :from :email123 >>

     << << :cindy :read << :dan :adores :eve >> >> :from :paper456 >>

).


This can be seen as an RDF-star-encoded named graph.


   best

>
> Thanks,
> Souri.
>

Received on Wednesday, 15 June 2022 22:50:35 UTC