- From: Jos De Roo <josderoo@gmail.com>
- Date: Mon, 22 Apr 2024 16:53:50 +0200
- To: "Lassila, Ora" <ora@amazon.com>
- Cc: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, "public-rdf-star-wg@w3.org" <public-rdf-star-wg@w3.org>, "Thompson, Bryan" <bryant@amazon.com>
- Message-ID: <CAJbsTZeZtWt4xQOQZoqLsVGO0wHPUP-N86m4x_r9ed6fOD3QSw@mail.gmail.com>
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