Re: A single reifier can reify more than one triple term

Enrico's example is flawed, in part because DBs don't store identifiers in 
most columns, they only store literals.  So the table is better shown as:


BIRTH-CERTIFICATE
+-----+----------+----------+------+
| ID  |  name    | location | date |
+-----+----------+----------+------+
| :b1 | "enrico" | "rome"   | 1962 |
| :b2 | "mary"   | "rome"   | 1962 |
| :b3 | "enrico" | "rome"   | 1980 |
| :b4 | "mary"   | "rome"   | 1980 |
| :b5 | "enrico" | "milan"  | 1962 |
| :b6 | "mary"   | "milan"  | 1962 |
| :b7 | "enrico" | "milan"  | 1980 |
| :b8 | "mary"   | "milan"  | 1980 |
+-----+----------+----------+------+

As well, there is the possibility of different birth certificates whose name, 
location, and date are the same so there is no alternate key

   Primary Key: ID

peter


On 3/25/24 04:12, Franconi Enrico wrote:
> I wish to insist on the meaningfulness of my example:
> 
> << :b1 | :enrico :born-in :rome >> :date 1962 .
> << :b1 | :enrico :born-on 1962 >> :location :rome .
> 
> Please read on to understand my argument.
> 
> Suppose there is a database in the registry office:
> 
> BIRTH-CERTIFICATE
> +-----+---------+----------+------+
> | ID  |  name   | location | date |
> +-----+---------+----------+------+
> | :b1 | :enrico | :rome    | 1962 |
> | :b2 | :mary   | :rome    | 1962 |
> | :b3 | :enrico | :rome    | 1980 |
> | :b4 | :mary   | :rome    | 1980 |
> | :b5 | :enrico | :milan   | 1962 |
> | :b6 | :mary   | :milan   | 1962 |
> | :b7 | :enrico | :milan   | 1980 |
> | :b8 | :mary   | :milan   | 1980 |
> +-----+---------+----------+------+
> Primary Key: ID
> Alternate Key: name, location, date
> 
> It is important to notice that no pair among the three attributes 
> name,location,date is sufficient to identify a birth certificate.
> Two departments decide to expose this data as LOD, but in different ways.
> 
> Generated graph-1:
> 
>     << :b1 | :enrico :born-in :rome >> :date 1962 .
>     << :b2 | :mary :born-in :rome >> :date 1962 .
>     << :b3 | :enrico :born-in :rome >> :date 1980 .
> 
>     etc
> 
> 
> Observe that they had to choose a different name for the attribute within the 
> context of the triple term: this is because the predicate :born-in in the 
> triple term relates the name of a person with its birth location, as opposed 
> the attribute :location which relates a birth certificate with the birth 
> location of the name of a person at a certain date.
> 
> Similarly for the second department - they also changed the predicate :date to 
> :born-on:
> 
> Generated graph-2:
> 
>     << :b1 | :enrico :born-on 1962 >> :location :rome .
>     << :b2 | :mary :born-on 1962 >> :location :rome .
>     etc
> 
> 
> If we merge the two LOD graphs (set union):
> 
>     *<< :b1 | :enrico :born-in :rome >> :date 1962 .*
>     *<< :b1 | :enrico :born-on 1962 >> :location :rome .*
>     etc
> 
> 
> which entails
> 
>     << :b1 | :enrico :born-in :rome >> :location :rome .
>     << :b1 | :enrico :born-on 1962 >> :date 1962 .
>     etc
> 
> 
> ➡️ *Observe that even if it seems that there is redundant information, the 
> predicates are different (:born-in vs :location, and :born-on vs :date). This 
> is because they serve different purposes: one applies to the name of a person, 
> the other applies to a certificate.*
> 
> I hope this clarifies:
> 
>  1. the need to allow a reifier to reify two distinct triple terms;
>  2. the possibility to express the same information in different ways.
> 
> 
> cheers
> —e.
> 
> 

Received on Monday, 25 March 2024 19:21:59 UTC