15:40:31 RRSAgent has joined #rdf-star 15:40:36 logging to https://www.w3.org/2024/01/18-rdf-star-irc 15:50:15 pfps has joined #rdf-star 15:54:31 niklasl has joined #rdf-star 15:55:47 AndyS has joined #rdf-star 15:59:14 present+ 16:00:05 present+ pfps 16:00:05 present+ niklasl 16:00:05 present+ AndyS 16:00:06 olaf has joined #rdf-star 16:00:16 ora has joined #rdf-star 16:00:26 agenda: https://www.w3.org/events/meetings/5ecc5c5f-5cd2-410c-b97c-6b13c6b843f1/20240118T110000/ 16:00:26 clear agenda 16:00:26 agenda+ Discussion of chairs' proposal [1] 16:00:27 Souri has joined #rdf-star 16:00:32 present+ 16:00:33 present+ 16:00:36 present+ 16:00:48 meeting: RDF-star WG biweekly long meeting 16:00:59 present+ 16:01:35 tl has joined #rdf-star 16:01:35 present+ 16:01:44 present+ 16:01:44 chair: ora 16:01:48 present+ 16:01:50 present+ 16:01:54 present+ 16:02:00 RRSAgent, draft minutes 16:02:01 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html TallTed 16:02:05 RRSAgent, make logs public 16:02:19 previous meeting: https://www.w3.org/2024/01/11-rdf-star-minutes.html 16:02:28 next meeting: https://www.w3.org/2024/01/25-rdf-star-minutes.html 16:02:47 scribe+ 16:02:59 doerthe has joined #rdf-star 16:03:06 present+ 16:03:06 present+ 16:03:33 present+ 16:03:52 present+ 16:04:07 eBremer has joined #rdf-star 16:04:10 scribe+ 16:04:49 ora: we have a proposal to start from the concrete syntax and go from there 16:04:57 RRSAgent, draft minutes 16:04:58 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html TallTed 16:05:14 i/meeting: RDF-star WG biweekly/scribe: Timothe 16:05:24 !present 16:05:29 https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jan/0095.html 16:05:41 present+ eBremer 16:05:53 RRSAgent, draft minutes 16:05:55 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html TallTed 16:06:04 https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jan/0077.html 16:06:09 enrico has joined #rdf-star 16:06:10 Dominik_T has joined #rdf-star 16:06:13 present+ 16:06:14 present+ 16:06:51 pchampin: I wrote about starting on the general form of the concrete syntax 16:06:58 ...: we generally agree on this syntax proposal 16:07:38 ...: now we need to agree on entailment 16:08:21 s/!present// 16:08:36 ...: in this proposal the syntax derives into standard reification 16:08:52 q+ 16:08:58 q? 16:09:13 ack enrico 16:09:15 ...: we would then introduce a notion of "well-formed" RDF 16:09:54 RRSAgent, draft minutes 16:09:55 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html TallTed 16:10:09 enrico: I'm terrified by this proposal with standard reification 16:10:10 q+ 16:10:12 q+ 16:10:23 q+ 16:10:39 ...: this would not be compatible with current uses of standard reification 16:11:03 ack tl 16:11:09 ...: we could introduce "non-standard" reification, with a new alphabet, as in the CG 16:11:51 ack pchampin 16:11:55 thomas: we should define most precise kind of reification 16:12:47 pchampin: response to enrico: not worried about backward compatibility. I would be happy with RDF-star quoted triples beeing very loosly constrained in terms of semantics. 16:12:50 eBremer has joined #rdf-star 16:12:53 more precise like "fact" and "claim" as subclasses of rdf:Statement and refering to asserted and unasserted statements respectively 16:12:59 q+ 16:13:14 ...: but if there is agreement over a risk, I wouldn't oppose a new vocabulary 16:13:47 ack pfps 16:14:01 There are a bunch of things here. What I see as the main points are: 16:14:01 1/ no change to the abstract syntax 16:14:01 2/ no change to the semantics 16:14:01 3/ several concrete syntaxes have new shorthands that expand to RDF reification 16:14:04 4/ a new notion of well-formed RDF, which could allow for optimized implementations 16:14:24 pfps: agree with Pierre-Antoine, I don't see any problem with backward compat, as long as there is no change in syntax/semantics 16:14:28 q+ 16:14:32 AZ has joined #rdf-star 16:14:36 present+ 16:14:36 ack enrico 16:14:54 +1 to these, and let #4 be for optimization (not necessarily "bad meaning") 16:16:15 q+ 16:16:51 ack ora 16:17:05 enrico: I would agree if you can write anything you want. The rdf:Statement class should be semantically defined. If its just syntactic sugar then its fine. 16:17:39 +1 to well-formed (and ill-formed) reification 16:17:39 The semantics that includes named triples in the domain of discourse doesn't really add anything to RDF. Even though named triples are new they don't have any special semantics. 16:18:07 q+ 16:18:18 s|let #4 be for| let 4/ be for| 16:18:34 ora: about point 2) (in the referenced email?): the idea that would could optimize is nice. The same idea could be used to optimize lists 16:18:58 q? 16:19:02 ack niklasl 16:19:26 https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jan/0094.html 16:21:05 niklasl: I think using reification is fine and can cover many use cases. 16:21:16 ack pchampin 16:22:20 pchampin: to enrico: I understand that its a shame to not be more specific about the semantics of the new syntax. However I think it's too late. 16:22:54 q+ 16:23:05 ...: we could say the same for classes in RDF, they are very loosly defined. People more into ontologies might find they are not used correctly 16:23:11 ...: its a feature not a bug 16:23:27 q? 16:23:31 ack enrico 16:24:51 q+ 16:25:15 enrico: all the RDF alphabet is here so its a meta language for syntax. Its semantically void and its fine. But what if, in the wedding example, what does it mean to have a "starting date". This can't just be syntax. 16:26:04 ...: now where to go: say we give special meaning to these things (e.g. believe property and so on) 16:26:18 I prefer "weak semantics" than "semantic-less" :) 16:26:37 ...: I we want to stay abstract "semantic-less", we need to give support for opacity 16:26:43 ack AndyS 16:27:19 q+ 16:27:57 AndyS: if the syntax is in triple or nquads, the fact they are streaming is important for large datasets. If you optimize reification you can't stream anymore, you have to track 16:28:34 ...: about well-formedness: you can't split files anymore, because then you get ill-formed files 16:28:55 q+ 16:29:02 ...: I propose we define a new term, reification descriptor, s-p-o that's a term 16:29:09 ...: then it can't be split out 16:29:16 ack Souri 16:29:18 ...: they have to be written out together 16:29:38 scribe+ 16:29:41 q+ 16:29:55 Souri: I agree with what Andy said. In practice, things come by parts, not as a whole. 16:30:12 ... It is important to allow for that streaming. 16:30:40 ... Reification maybe OK as the abstract syntax, but in the concrete syntax, inc. N-Triples, we need to have those triples packaged into one. 16:31:09 ... As part as *one* statement, that remove any possibility of the ill-form thing coming in. 16:31:26 ... Nobody expected to write the 4 triples in N-Triples. 16:31:51 ... N-Triples is used for streaming, it must support that adequately. 16:32:02 ack ora 16:32:31 ora: What I had in mind for well-formed-ness is similar to the definition of "error" in Common-LISP. 16:32:43 ... The spec says, in a number of places "It is an error to...". 16:32:56 ... Implementations can chose not to detect or signal those errors. 16:33:20 ... This allow to defer well-formed-ness, not necessarily at load time. Can happen later on. 16:33:33 ... At execution, you get undefined behaviour. 16:33:45 ... I realize that the optimization aspect may be difficult. 16:34:07 ... I'm not saying the idea is entirely without problem, but I find it attractive. 16:34:15 q+ 16:34:18 AndyS: would you be interested in a syntactic solution to that? 16:34:40 ... The idea that a term in the data model keeps the three parts together. 16:35:22 q+ 16:35:22 q+ 16:35:38 ack tl 16:35:43 ... Souri's suggestion about N-Triples changes the spirit of N-Triples, if one line is not anymore a single triple. 16:36:42 tl: if we keep the abstract syntax unchanged, but have concrete syntaxes to help, this should address Andy's and Souri's concerns. 16:36:44 q+ 16:37:07 ... We don't need a quoted term in the model to get to that. 16:37:08 ack pfps 16:37:11 AndyS: we do. 16:37:38 pfps: I'm confused as to what these streaming implementations are going to do. 16:38:16 AndyS: writing out your graph is a streaming operation. 16:38:36 pfps: if you have the graph in advance, this is not streaming. 16:39:11 AndyS: I'm not talking about stream-processing of RDF. Just importing triples in, or serializing triples out. 16:39:47 ... Triples can come in any order, but may be important for implementations. 16:40:23 q+ 16:41:00 ack Souri 16:41:13 ... I repeat that we also need to consider the criticism on reification, especially the "bloat" problem. 16:42:03 Souri: the basic idea is to have a triple spo, and add properties to it. 16:42:16 ... My idea was to split this in two parts in N-Triples. 16:42:37 ... One statement to associate a name to spo. You don't need any more complication. 16:42:53 ... Users really need something along that line. 16:45:01 ... Also, you do not risk to break it by separating the N-Triples file in multiple parts. 16:45:17 ... From customers, we often get the feedback that RDF is complex and PGs are nice and simple. 16:45:25 ... I want to reduce this perceived complexity. 16:45:26 ack niklasl 16:45:47 niklasl: N-Triples is now and probably should stay a subset of Triples. 16:45:51 ... We need to preserve that. 16:45:51 q+ 16:46:08 ... N-quads has more leaway, in the sense that it is not a subset of TrIg. 16:46:34 ack AndyS 16:46:50 ack pchampin 16:47:05 ack olaf 16:47:14 ... [comment on implementations optimized for lists, which are even more complicated] 16:47:33 NQ is more fundamental for databases than NT. 16:47:39 olaf: about N-quads, we should not mix up N-Quads with anything meant to capture triples 16:47:44 ... N-Quads is for datasets. 16:48:16 ... We should not use the term quads, as it has a meaning different from what we are talking about. 16:48:47 ... To Souri: from the point of view of reading the data in, order would matter 16:49:06 q+ 16:49:06 ... you need to read the "naming statement" first if your named statements are stored in a different data structure 16:49:58 ... if a simple "s p o" triple occurs and you don't know yet that s is the name of a named triple / edge, this might cause problem 16:50:29 ... ??? 16:50:45 ack Souri 16:51:24 ... Generally, I could live with considering the concrete syntax as syntactic sugar for std reification. 16:52:22 I have to leave, bye 16:53:03 Souri: In Turtle, it is ok to have, on the same line, the naming of a triple ("spo is named e") and adding a property to it ("e a b"), but in N-Triples I would separate the two. 16:54:19 ... About the order: there is no issue when a "naming statement" comes, there is no issue if the subject was used before. 16:54:36 ... What is difficult is to check for circular references. 16:54:45 q+ 16:54:50 ack olaf 16:55:09 olaf: circular references are indeed a problem. 16:55:24 q+ 16:55:49 "Turtle, the Terse RDF Triple Language" suggests we'd need a new thing, maybe the somewhat absurd "Turntle, the Terse RDF Named Triple Language". 16:55:49 "N-Triples is an easy to parse line-based subset of Turtle" means that we need a new thing for this naming, perhaps "N-Named-Triples". 16:55:49 "N-Quads [is] an extension of N-Triples" so we probably need another new thing, perhaps "N-Named-Quads, an extension of N-Named-Triples" 16:56:03 ... but depending on your order in which you get the triples, you might need to move things from a data structure into another one. 16:56:20 q+ 16:56:31 ... Consider ":s :p :o." You put this in your "reguar triples" structure. 16:57:31 ... Then you encounter ":a :b :c | :s" (:s is the name of a triple). 16:57:31 ack AndyS 16:57:31 ... Then you must move the first triple to your "annotations" structure. 16:57:31 s/reguar/regular 16:57:31 q- 16:57:45 TallTed: what is being discussed now can not be down with the existing language. 16:58:21 q+ 16:58:28 ... We need new languages, this is a complete re-design and a rabbit hole. 16:58:30 ack AndyS 16:58:53 AndyS: about optimization, I think that olaf is talking about a different case. 16:59:17 q+ 16:59:20 ... We initially talked about representing the reification; olaf is talking about representing the annotations. 16:59:55 ... Old-style reification triples can invalidate well-formed-ness. 17:00:20 ack tl 17:00:30 ... With triple terms, we can make the "naming statement" a regular triple, with specific predicate "rdf:nameOf" for example. 17:00:36 q+ 17:01:14 tl: @@1 17:01:46 AndyS: a cycle of references i not so bad, because of the indirection introduced by the name 17:02:09 +1 re. reference cycles 17:02:10 a bit of history -- https://www.w3.org/DesignIssues/Reify.html 17:02:29 ack ora 17:02:40 q+ 17:02:58 ora: I'd like to gauge the group's sentiment about that direction 17:03:17 q+ 17:03:23 ack Souri 17:03:35 Souri: I like the direction in which this is going. 17:03:36 perhaps we need rdfstar:subject, rdfstar:predicate, rdfstar:object -- similar to, but not identical to, rdf:subject, rdf:predicate, rdf:object -- to avoid breaking on previously reified data 17:04:10 s/@@1/would the problems just discussed be resolved by going back to defining the occurrence in a separate triple, eg :X rdfx:occurrenceOf << :s :p :o >> 17:04:57 ... about introducing a new term, with rdf:occurrenceOf, is basically doing the same 17:05:06 ack pchampin 17:05:25 scribe+ 17:05:53 pchampin: hearing needing of a triple needs to be atomic. 17:06:05 s/hearing needing/hearing naming/ 17:06:25 ... Proposal mentioned: New kind naming statement 17:06:30 ... a graph is a usual graph and also the naming of triples. 17:07:01 ... Proposal mentioned: Use form in CG report with a naming triple 17:07:16 ... two ways of doing the same thing 17:07:34 ... see merits in both - prefer second 17:08:03 ... circular refs ... maybe define triple terms as non recursive. 17:10:07 present+ 17:10:41 +1 17:10:48 Strapoll: should we pursue this? 17:10:48 Strawpoll by Ora: Is this productive direction? 17:10:51 ora: do people feel the current discussion is productive? 17:10:54 +1 17:10:55 +1 17:10:56 +1 17:10:56 +1 17:10:57 +1 17:10:58 +1 17:10:58 +1 17:10:59 +1 17:11:02 +1 17:11:03 +1 17:11:04 +1 it's as good as the other ways that have been explored 17:11:14 +1 17:11:14 +1 17:11:19 +0 17:11:24 +1 17:11:45 Yes to using reification the basis (or reification like thing) 17:12:09 ora: pfps, is this in line with option 1 in your message from some time ago? 17:12:09 q+ 17:12:22 ack pfps 17:12:27 pfps: I don't remember that message specifically 17:12:28 The Turtle syntax is good. 17:12:37 ... We can hash out the details tomorrow 17:12:51 ora: it make sense 17:13:05 ... we can conclude this meeting now and reconvene tomorrow. 17:13:18 ... Or do we want to continue this conversation now? 17:13:26 ... People might need some time to digest. 17:13:33 q? 17:13:43 RRSAgent, draft minutes 17:13:44 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html ktk 17:14:28 q+ 17:14:33 q+ 17:15:05 AndyS: if we go for the reification thing, we could go for a different kind of reification. 17:15:33 ack tl 17:15:38 Regrets: fsasaki 17:15:50 ... If would be good to know what people are expecting. 17:16:18 ack Souri 17:16:20 tl: I don't see what the expansion of the chevron syntax into naming statements means or implementations 17:17:10 Souri: today, reification makes an instance of rdf:Statement. What if we introduced a new type (which I'd like to call Edge, but could be something else) 17:17:37 ... we can say "this is a specifc type with specific properties", detached from rdf:Statement 17:17:38 q+ 17:17:38 q+ 17:18:19 ack pchampin 17:19:09 :a :b :c | :e. 17:19:33 SELECT * WHERE { :e ?p ?o } 17:19:49 q+ 17:20:09 ack Souri 17:20:20 A more precise statement of this is 17:20:29 Souri: your query would not match anything. 17:20:31 Note that optimized systems must behave correctly so there five (four?) results from 17:20:31 SELECT ?s WHERE { 17:20:31 ?s ?p ?o . 17:20:31 } 17:20:35 when querying 17:20:35 ... only an "edge pattern" would match 17:20:37 << :a :b :c >> :d :e . 17:20:43 ack ktk 17:20:44 Compare to -- :e rdf:occurrenceOf <<( :a :b :c )>> # A new term thingy 17:21:12 q+ 17:21:25 ack AndyS 17:21:48 AndyS: I get nervous when we start saying that an RDF graph is no longer just a set of triples 17:21:51 q+ 17:21:59 ... now it would be "a set of triples + a set of edges" 17:22:06 ... we should be very cautious about that 17:22:15 ack Souri 17:22:26 I agree, and that's why I prefer the 'rdf:occurrenceOf' way of naming 17:22:41 q+ 17:22:51 Souri: we are introducing new things anyway. occurrences are not behaving the same as triples. 17:23:20 ... Yes, RDF 1.2 is RDF 1.1 + something, here a set of edges, which can be empty 17:23:35 "simple" changes can have VERY complex impacts 17:23:45 ... This brigdes the gap with PGs, in a backward compatible way 17:24:24 ... PGs has shown that this was useful; RDBs have had it from day one. 17:24:46 ack AndyS 17:24:56 AndyS: I agree with the objectives you state. 17:25:40 ... pchampin has highlighted the difference above: 17:26:06 ... do we had a new kind of things we describe, or a new structure in the graph 17:26:07 q+ 17:26:39 p+ 17:27:30 s/do we had a new kind of things we describe, or a new structure in the graph/ are edges a new kind of terms, or a new kind of constructs in graphs 17:28:13 Souri: from a user's point of view, I don't really care how this is done internally 17:28:29 ... I'm interested in the syntax. 17:28:56 ... I think that a triple with the association of a name provides a better mental model. 17:29:16 ... That's where I'm coming from. 17:29:36 AndyS: if in your syntax, the vertical bar was replaced by a property "as name of", would that work for you? 17:30:08 Souri: in my opinion, it would be the same, but I aim to avoid the introduction of a new term. 17:30:33 ... I like the Turtle syntax. I would like something similar in the N-Triples syntax. 17:31:52 AndyS: we could also have a dedicated keyword for this "has name of" property, similar to the "a" keyword in Turtle, would that meet your usability concerns? 17:31:54 `<< :s :p :o >> named :fred` 17:32:27 q? 17:32:27 Souri: it is basically equivalent, although I would prefer a simple symbol. 17:32:41 `<< :s :p :o >> Ω :fred` 17:33:00 AndyS: it is acceptable if it is a triple. That way we don't need a new set in the definition of graphs. 17:33:18 Souri: we introduce new complexity at one level or another. Either at the term level, or at the graph level. 17:33:25 ack pchampin 17:33:43 scribe+ 17:34:08 pchampin: question is the point where the complexity goes. 17:34:40 ... lean towards term extension that being said that might open up other issues 17:35:15 q+ 17:35:18 scribe- 17:35:24 ack olaf 17:35:35 olaf: I wanted to call this out explicitly: 17:36:07 ... AndyS, you propose that we have a new type of term (triple terms), but they can be used only as a subject of a specific predicate, and the object would be a blank node or IRI. 17:36:11 ... Is that the proposal? 17:36:44 AndyS: yes, with the caveat that this would not be a MUST 17:36:55 ... People could use those terms differently, and suffer the consequences 17:37:31 ... Just like there are good usage and bad usages of reification, there would be good usage and bad usage of this new kind of terms 17:37:43 q+ 17:37:50 ack ktk 17:38:17 can we understand 17:38:24 << a: | :s :p :o >> :x :y . 17:38:30 as syntactic sugar for 17:38:36 :a :isNameOf << :s :p :o >> . 17:38:39 ktk: did you talk about well-formed? I would like to discuss how they relate to lists. 17:38:43 :a :x :y . 17:38:51 and then also << :s :p :o >> as syntactic sugar for standard reification quad 17:38:56 i.e. a two step sugar-ing? 17:39:33 ... I ran into hard problems with lists. 17:39:50 The recommended usage give nice syntax, the less good way gives no helper syntax. 17:39:50 .. If we go towards well-formed-ness, we must think of problems like that. 17:40:59 ora: I wrote examples in slides of how to manipulate collections, this is indeed hell. 17:41:32 ... What about tomorrow's call? 17:41:49 AndyS: can anybody who is participating actively to this discussion make it tomorrow? 17:42:11 olaf: I can't, but I'll be on vacation next week, so don't postpone. 17:42:17 q+ 17:42:25 tl: I can make it 17:42:31 ora: me too 17:42:50 https://www.w3.org/groups/tf/rdf-star-semantics/calendar/ 17:43:36 ack pchampin 17:45:04 pchampin: olaf, my understand is that you are ok with the current approach of extending the abstract syntax (either at the term level, or at the graph level) 17:45:27 olaf: yes; my interest is in defining the behaviour of SPARQL on top of it 17:45:58 Thank you for this discussion, it seems to move into a great direction! 17:46:12 ora: I'm encouraged by this discussion; it could be seen as a step back, but I think it is a step forward in order to produce a recommendation 17:46:35 RRSAgent, draft minutes 17:46:36 I have made the request to generate https://www.w3.org/2024/01/18-rdf-star-minutes.html TallTed 17:46:50 olaf has left #rdf-star 17:46:55 pfps has left #rdf-star i|ora: we have a proposal|topic: Seeking consensus regrets+ gkellogg