Re: possible stances with respect to multiple reification

On Mon, Apr 22, 2024 at 4:18 PM Lassila, Ora <ora@amazon.com> wrote:

> Peter,
>
> this is good. I have some questions/observations, though:
>
> Option #1: On some level, we could say those examples are not RDF graphs,
> but the question in my mind is about how easy/possible is it to detect
> those cases? Detecting that "abc" :b :c is not an RDF graph is trivial, but
> the reification case maybe not so much (at least there is a very different
> implementation burden).
>

I gave it a try in eye and it is pretty straightforward to detect and throw
an exception.
For instance uncommenting line 9 or line 16 in
https://github.com/eyereasoner/eye/blob/4c35d85322ecfe6c5a71e9e60a3cbfd964f7e9b3/reasoning/temp/edge.ttl
throws a malformed_edge_extra_reifies/3 exception.

Option #3: Saying "can cause problems" is somewhat vague. Again, when do
> you find out that there is a problem? What if we have an implementation
> that simply refuses to ingest the "single reifier multiple triples" -style
> graph? That would be a different kind of problem than the :range example
> you give (ingestion vs. reasoning).
>
> I really would like to see how far we could take the idea of
> "well-formedness". I understand it may not be easy to formalize, but I am
> sure we could do better than what people say about pornography ("I cannot
> define it but I know it when I see it"). Implementations could accept
> non-well-formed graphs, or reject them. In case they do accept them,
> outcomes could be unpredictable (ranging from practically nothing to
> annoying or worse). People building systems that rely on predictable
> behavior on non-well-formed graphs would be "on their own".
>
> Ora
>
>
> On 4/22/24, 9:22 AM, "Peter F. Patel-Schneider" <pfpschneider@gmail.com
> <mailto:pfpschneider@gmail.com>> wrote:
>
>
> CAUTION: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
>
>
>
>
>
> I would find it useful to have an enumeration of the possible stances with
> respect to multiple reification. I see four:
>
>
> 1/ Multiple reification is completely illegal so
> << :r | :a :b 42 >> :c :d .
> << :r | :a :b 43 >> :c :d .
> is not an RDF graph, just as
> "abc" :b :c .
> is not an RDF graph.
>
>
> 2/ Multiple reification is possible but something to be avoided, like
> :l rdf:first "abc" .
> :l rdf:first "def" .
> :l rdf:next rdf:nil .
> is a valid RDF graph but is to be avoided or similar to
> :age rdfs:range xsd:int .
> :liz :age "abc" .
> is a valid RDF graph but is to be avoided. That is, these graphs do not
> make
> sense for any purpose.
>
>
> 3/ Multiple reification is possible but can cause problems and thus should
> not
> be encouraged, like
> :r rdfs:subPropertyOf rdfs:subPropertyOf .
> :r rdfs:subPropertyOf rdfs:subClassOf .
> is a valid RDF graph but can cause problems or
> :age rdfs:range xsd:int .
> :liz :age :f .
> is a valid RDF graph but can cause problems. That is, anyone who creates
> these graphs should understand the consequences of what they are doing.
>
>
> 4/ Multiple reification is possible and has no negative connotations, like
> :liz :married :dick .
> :liz :married :eddie .
> is a valid RDF graph and has no problems as far as RDF is concerned.
>
>
>
>
> I have a preferred stance here, a stance I cannot live with, one I can live
> with, and one I am uncertain about.
>
>
> peter
>
>
-- https://josd.github.io

Received on Monday, 22 April 2024 14:53:59 UTC