15:58:11 RRSAgent has joined #rdf-star 15:58:15 logging to https://www.w3.org/2024/04/25-rdf-star-irc 15:58:15 TallTed has joined #rdf-star 15:58:35 tl has joined #rdf-star 15:58:35 meeting: RDF-star WG biweekly focused meeting 15:58:49 pfps has joined #rdf-star 15:58:54 Agenda: https://www.w3.org/events/meetings/5ecc5c5f-5cd2-410c-b97c-6b13c6b843f1/20240425T120000/ 15:58:54 clear agenda 15:58:54 agenda+ Discuss if a single id can reify more than one triple 15:59:22 RRSAgent, draft minutes 15:59:23 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html ktk 15:59:26 AndyS has joined #rdf-star 15:59:28 RRSAgent, make log public 15:59:36 enrico has joined #rdf-star 15:59:42 present+ 15:59:42 olaf has joined #rdf-star 16:00:06 present+ 16:00:07 present+ 16:00:11 present+ 16:00:20 scribe: gtw 16:01:04 Regrets+ gkellog, darndt Dominik_T 16:01:08 eBremer has joined #rdf-star 16:01:29 present+ 16:01:29 s/darndt Dominik_T/darndt, Dominik_T/ 16:01:29 ora has joined #rdf-star 16:01:31 present+ 16:01:31 present+ 16:01:43 present+ 16:01:49 chair: ora 16:02:11 RRSAgent, draft minutes 16:02:12 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html ktk 16:02:18 present+ 16:02:42 AndyS has changed the topic to: RDF-star WG - 2024-04-25 16:02:51 q+ 16:03:04 ack enrico 16:03:17 enrico: I prepared 3 slides to summarize what I can live with. 16:03:27 ... 1 slide per profile. 16:04:07 (presenting slides) 16:04:11 Zakim, next item 16:04:11 agendum 1 -- Discuss if a single id can reify more than one triple -- taken up [from agendabot] 16:04:20 enrico: profile 1: many-to-many. 16:04:39 ... syntax already discussed. unrestricted sytnax. 16:04:43 AndyS has changed the topic to: RDF-star WG - 2024-04-25 -- https://www.w3.org/events/meetings/5ecc5c5f-5cd2-410c-b97c-6b13c6b843f1/20240425T120000/ 16:05:03 ... semantics treats triple term as resources depending on interpretation of its 3 arguments. 16:05:05 niklasl has joined #rdf-star 16:05:06 present+ 16:05:16 present+ 16:05:31 ... interesting bit is simple entailment doesn't need to change much. matching still works. simple entailment based on matching. 16:05:50 ... extend matching over triple terms, but still just matching. 16:06:17 ... profile 2: many-to-one transparent. additional restriction on rdf:reifies to be functional. 16:06:39 ... triple terms denote resources based on 3 components. 16:06:58 ... additional restriction on rdf:reifies. syntactic restriction. 16:07:37 ... entailment not based on graph matching. simple entailment is not the basis for BGP matching. 16:08:19 ... bad for merge and data integration because different ids could be many-to-one by different users, but after merging ... different URIs. 16:08:38 ... profile 3: many-to-one opaque. solves issue of entailments. 16:08:45 ... triple terms are interpreted as a canonical literal. 16:08:57 ... not based on graph matching. 16:09:27 s/profile 3/profile 2-opaque/ 16:10:04 enrico: profile 2-joke: many-to-one. 16:10:06 q? 16:10:27 ora: serious food for thought. 16:10:44 ... We've had internal meetings on this. The thing that troubles us is not wanting to stand in the way of progress. 16:10:54 ... Are these slides available? 16:11:02 Souri has joined #rdf-star 16:11:03 q+ 16:11:07 ... Send pdf to the mailing list. 16:11:11 present+ 16:11:16 ack tl 16:11:39 tl: Question - if we had document on best practices for reification having only one object (many-to-one), adding SHACL constraing for enforcement, which profile would that map to? 16:11:59 enrico: SHACL profile can only restrict the syntax, so profile 2-joke, I think. 16:12:04 q+ 16:12:24 ... SHACL would restrict shape, but language itself would still have the semantics. Either there's a functional restriction or not. 16:12:26 ack ora 16:12:32 An OWL restriction can semantically restrict a specific class, for specific uses. 16:13:08 ex:Statement rdfs:subClassOf [ a owl:Restriction ; owl:onProperty rdf:reifies ; owl:cardinality 1 ] . 16:13:09 ora: Given your profile 1 and 2-joke, what do people think if we deal with this as a best practice issue? 16:13:09 :p {| a ex:Statement ; :timestampMills 1714060073 |} . 16:13:24 enrico: I would support this strongly. 16:13:26 q+ 16:13:42 ... idea would be to have several cases that you could cover with RDF 1.2 many-to-many. 16:14:01 ... you can represent LPG and other cases with these semantics. This is not directly reflected by entailment in queries. 16:14:04 ... this does not effect your application. 16:14:15 ora: Once we mix LPGs into this, entailment becomes weird anyways. 16:14:42 (also, with :timestampMillis rdfs:domain ex:Statement, explicitly typing the reifier is not necessary) 16:14:44 enrico: Queries have a quality. I can craft a query (SPARQL, OC, ...) in which I enforce the quality by using the symbol in multiple places. 16:14:55 ... if you don't enforce functionality in the algorithm, that's not what you expect. 16:15:17 ora: Understood. Shouldn't ask LPG people about entailment. 16:15:23 ack pfps 16:15:51 pfps: The idea of profiles is to do something useful. What's the utility here? 16:16:08 ... I'm trying to get somethign I can believe that has any utility whatsoever for restricting. I'm not hearing anythign I find positive about this restriction. 16:16:31 ... as far as use cases go, sure let's take the use cases we've got and add some and create a document saying here's how you might use this thign we're adding to RDF. 16:16:49 ... the provenance use case, e.g. With the many-to-many reification, you get a lot fewer triples. 16:17:02 +1 16:17:53 ora: Appreciate what Enrico did. The thing that has worried us is the whole question of entailment. 16:18:13 ... We need to have more internal discussions. 16:18:55 ... Speaking as myself (not chair or AWS), I really like the way you formulated these things. It would be easy to buy the profile-1. 16:19:00 q+ 16:19:06 ack olaf 16:19:16 Kurt has joined #rdf-star 16:19:22 olaf: I want to understand better: is the idea that we can have multiple of these profiles? Or you are presenting them and we have to pick one? 16:19:28 ... Can we have 1 and 3? 16:19:44 q+ 16:20:04 enrico: I don't care. What' I'm saying is we can have 2 profiles or 3. Whatever you want. I prefer 1 with use cases. 16:20:16 ... only to point out that whatever you choose, profile-2 has some consequences. 16:20:27 ... you will not get rid of consequences. 16:20:48 ... I would prefer 2-opaque. This characterises what you really want. 16:21:02 ... For DB, you really want to have the full opacity. 16:21:14 ... I would be fine with that. Strong decision. At least the standard would not be ambiguous. 16:21:47 olaf: If we have both of these profiles, a vendor can decide that "my system supports profile-3" meaning if I read in any data that violates syntactic restirctions, I'm just giving an error message...? 16:22:00 enrico: this would be silly. If you support profile-3, you get profile-1 support for free. 16:22:50 ... RDF option-3 could map to LPG for those who don't care about RDF. If you have an engine supporting profile 3, then it is a very complex implementation. 16:23:00 ... it will also work with profile-1. 16:23:03 Only profile 1 would be real RDF 1.2. The other things would be ... something else ... 16:23:09 ack tl 16:23:10 ... So yes you can, but I don't see it happening in reality. 16:23:21 tl: Can we have a sub-property of reifies that follows a different profile? 16:23:33 ... rdf:edgeOf that is opaque or many-to-one semantics? 16:23:39 ... syntactically enforce via shacl constraint... 16:23:52 ex:edgeOf a owl:FunctionalProperty ; rdfs:subPropertyOf rdf:reifies . 16:23:52 ... you could guarantee that if somebody uses edgeOf property, expected to follow many-to-one rules. 16:24:07 ... would that be possible? to constrain profile on a specific property? 16:24:20 enrico: yes. interesting way to sell a profile. you still have to have a semantics and implementation for it. 16:24:27 It's just "using RDF with OWL". 16:24:40 ... if you want to go with BP and use-cases, we can standardize an rdf property which is meant for BP. 16:24:46 q+ 16:24:49 ... not part of the proper standard, just part of the BP. 16:25:13 ... you can do edges with PGs, you can, but you have to live with unwanted consequences. 16:25:23 ack ora 16:25:23 Cf. The informal restriction on skos:prefLabel in SKOS (one per language). 16:25:23 ... you have to emphasize that this is open. 16:25:28 tl: how open? 16:25:31 enrico: completely. 16:26:17 ora: I want to understand, if I started out in this subset where I only use reifier for a single triple, under what conditions am I taken out of that subset to where reification reifies multiple triples? 16:26:33 ... If I voluntarily only reify one triple, at which point does that break? 16:26:38 q+ 16:27:11 q+ 16:27:12 enrico: If you strictly enforce syntactically "correct" data for your edge properties, does not forbid anybody from writing a query where you get unexpectred results. 16:27:38 ... it's just a profile-1 graph. 16:28:01 ... your engine is an option 1 engine for SPARQL entailment, even if you are strict, queries may have unexpected meaning. 16:28:25 ack Souri 16:28:45 Souri: if you start out with many-to-one only, how could it move to many-to-many, I see 3 ways: 16:29:09 ... 1) you create such things; 2) if you actually use entailment 16:29:15 ora: now we're in OWL domain? 16:29:51 Souri: 3) via merge 16:30:24 ... those are the 3 ways I see you can end up with many-to-many. 16:30:44 :e rdf:reifies <<( :s1 :p1 :o1 )>> . 16:30:44 :e rdf:reifies <<( :s2 :p2 :o2 )>> . 16:30:44 :s1 :p1 :o1 . 16:30:53 ASK WHERE { _:x rdf:reifies <<( :s1 _:y :o2 )>> } ==> TRUE 16:31:02 ... besides these possibilities, I see many-to-many, you're doing an "edge set". You're saying something about that edge set through the single reifier. 16:31:19 ... My understanding is that if I say somethign about the single reifier, we are saying things about the *set* of triple terms. 16:31:40 ... If you want to say things about a single triple, cannot have it as part of a set of triple terms with a single reifier. 16:31:52 ... Such triple term sets cannot have parallel edges. 16:32:10 ... Those are the restrictions on many-to-many that would arise. 16:32:29 ... I don't have strong opinion about which way to go. I like the idea that tl just said. 16:32:52 ... For supporting, both can be used. Have talked about LPG profile. Would be nice to say this RDF data is validated to convert to LPG. 16:33:12 ack niklasl 16:33:41 niklasl: I think Souri said much of what I wanted to say. I will add that if you have entailment like symmetric properties, you also have to put it back in the graph for it to become a problem. 16:34:01 ... it depends on how the system works. As pfps has said, you should not even put the entailed data into the same graph. 16:34:12 ... relies on expectation that the system has multiple graphs which LPGs don't. 16:34:17 ... I wouldn't worry to much about it. 16:34:36 ... On merge or user-error would multiple reifiers be added. Could be added if you had an IFP on the reifier itself. 16:35:07 ... That's a regular semantic error. Have to work pretty hard to mess up reifiers to go from one to two reifiers. 16:35:19 ... Valid use-case. If you have a type like Statement. You're expected to use one reifier on that. 16:35:30 ... You could control via SHACL or app specific code. 16:35:31 q+ 16:35:35 previous meeting: https://www.w3.org/2024/04/19-rdf-star-minutes.html 16:35:36 next meeting: https://www.w3.org/2024/04/26-rdf-star-minutes.html 16:35:40 RRSAgent, draft minutes 16:35:42 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html TallTed 16:35:48 ... many-to-many case does not preclude the many-to-one case. 16:35:53 q- 16:35:57 q+ 16:35:59 ... a lot of functional properties out there. you can use them incorrectly, too. 16:36:35 ... to the point of the sets, if I know two people, I don't know the set of those. Having two statements does not mean it's a set. 16:36:36 present+ pfps, tl 16:36:47 ... reifiers with many-to-many are not graphs. Graphs are more than just two things. They are closed sets. 16:36:55 ora: why a closed set? 16:37:07 niklasl: doesn't have to be closed, but named graphs are thought of as closed in databases. 16:37:28 ... not defined like that. pchampin had an example with list of triples being the more useful way to represent graphs if you had to using triple terms. 16:38:00 ... only thing I've heard is the strong position that having to reify two triple terms on the same reifier doesn't mean that is a graph. The reifier isn't necessarily a graph of those triples. Depends on type and interpretation. 16:38:01 ack olaf 16:38:21 olaf: Based on what others are saying, I want to understand better profile 3. 16:38:46 ... question: Souri mentioned 3 ways to end up with many-to-many. One fo them is entailment. In context of profile 3, do entailments have an effect? 16:39:05 enrico: probably not because simple entailment you don't have equality. In SPARQL it may be enforced. 16:39:20 ... I'm not sure. Maybe profile 2-opaque is not so badly behaving implementation-wise. 16:39:47 ... We cannot enforce equality over literals. This may simplify things. 16:39:59 ... We can have a profile which is fully opaque and functional. 16:40:40 olaf: I want to make sure we mean the same thing by "syntactic restrictions." Different grammar? If the grammar is different, you can restrict things by making the grammar more restrictive. 16:41:01 ... my view: on top of the grammar, we can define different constraints. Is your understanding based only on grammar? 16:41:13 enrico: grammar with semantic constraints is still a grammar. Same thing. 16:41:36 ... grammar has semantic condtiions that you can check. Up front you can tell if the graph is well formed. 16:41:43 olaf: not semantic restrictions. syntactic. 16:41:59 enrico: if you want to define a profile, a compiler should be able to tell if you belong to that profile or not. 16:42:03 RRSAgent, draft minutes 16:42:04 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html AndyS 16:42:23 ... people have different understanding on how the fragments should behave. there should be a notion of a syntactic fragment. 16:42:38 olaf: my understanding is that you can also have some that you cannot express in the grammar. 16:42:38 q+ 16:42:49 enrico: can be context dependent but still a grammar. 16:43:04 ... you can still have a grammar in the sense of a compiler that rejects based on some condition. 16:43:36 olaf: Related to tl's new predicate subproperty of rdf:reifies, carrying meaning of making things opaque. 16:43:50 tl: didn't have a decision if it would mean opaque or not. 16:44:27 Defined as a owl:FunctionalProperty would mean semantic restriction (all triples would denote same relation). 16:44:28 olaf: if we would introduce a new property that captures the idea of profile 3 (2-opaque), can this be a subproperty of the property for which we have many-to-many with transparency? 16:44:32 ... does it have to be the other way around? 16:44:41 enrico: profile-1 with OWL can do all of this. 16:45:00 ... if you add subproperties, then you need OWL to say new property is functional. 16:45:24 ... if you have bijection between triples in canonical form, in OWL you have to say they are disjoint. 16:45:36 ... I can emulate in profile 1 the edge with opacity and many-to-one. 16:46:05 Profile 3 = Profile 2-opaque (many-to-one) 16:46:07 q- 16:46:47 ... If you want to restrict reifier, you dont' need subproperty. rdf:reifies with constraint. If you have a way to write canonical triples, profile-1 is more than enough to talk about profile-1 with opacity. 16:47:06 ora: Thoughts? 16:47:25 +1 too 16:47:27 q+ 16:47:35 ack AndyS 16:47:56 AndyS: earlier, olaf talked abotu a vendor with engine with a profile. Can you write an engine that is profile-neutral? 16:48:07 ... want engine to support different data, different usages. 16:48:46 enrico: In our notion of RDF 1.2, this would be the neutral thing. Simple matching works. Profile-1, syntactic restrictions does not effect implementation. 16:49:11 ... same engine would work for all these things. after discussion, this engine would be sound for profile-2. 16:49:32 ... it would miss some answers, but all given answers would be good for profile 2. 16:49:51 ... you'd miss some inferences and query answers. 16:50:05 ... because this engine would be sound but incomplete for LPG queries, you might be happy with that. 16:50:37 ora: are we having a semantics call tomorrow? 16:50:40 enrico: yes. 16:50:57 AndyS: subject? 16:51:05 enrico: maybe distinction between profiles. 16:51:13 ora: I'd like to continue that. Will be there tomorrow. 16:52:18 q+ 16:52:37 ack Souri 16:52:41 Souri: I agree with what AndyS said. THere will be different use-cases. 16:53:00 q+ 16:53:04 ... some people will just need LPG semantics. Some need to create multiple triple-terms under the same (reifier). 16:53:18 ... can optimize how we process query based on difference. 16:53:58 ack TallTed 16:54:00 ... how people use these things to model, we don't know. Profile-1 will be used, but don't know how many/what percentage. 16:54:21 TallTed: I think we'll find quickly people think they're going to use one profile, then a query or dataset surfaces that uses a different profile and they'll need to mix them. 16:54:26 q+ 16:54:29 ... optimally, all engines will be agnostic. 16:54:36 ... using a query hint to change on the fly or something like that. 16:54:51 q+ 16:54:54 ... in Virtuoso, ability to turn on and off owl/rdfs profiles so you can have owl:sameAs active or not active for a given query. 16:55:03 ... it makes a difference. 16:55:14 ... based on owl:sameAs data out in the world. 16:55:26 ... will bite people if engine cannot change on the fly based on query or data that is in play. 16:55:26 ack AndyS 16:55:44 AndyS: clarification: you reference option 3 wiki page. which of those abstract syntaxes do you mean? 16:55:48 enrico: in a sense both. 16:55:54 TallTed attaching "profiles" to specific properties might help against messing things up 16:56:01 ... first one is what everyone wants anyway. well-formed syntax would match all the profiles. 16:56:09 AndyS: unrestricted rdf data model? 16:56:14 enrico: to be fair, I don't like it. 16:56:24 AndyS: my understanding of profiles, choices users can make. 16:56:31 ... underlying definitions will have to be general. 16:57:20 enrico: proposal: no profiles. rdf:reifies property many-to-many. subproperty rdf:edge which is meant to capture many-to-one. 16:58:17 ... just one profile. standard RDF style. only allow well-formed grammar. but we don't have profiles. reifies is many-to-many. subproperty rdf:edge is meant to be many-to-one if implementors decide to implement it. 16:58:23 ... no problem of recognizing profiles. 16:58:34 ... profiles are problemantic because syntactically they look the same. 16:59:01 ... if we differentiate the properties, then we can say it's still option-1 (unrestricted), but optionally implementors decide. 16:59:11 q+ 16:59:23 q- 16:59:27 For the record: I would only approve of triples as subjects if literals are. And then still thoroughly prevent that from being unknowingly used (I bet 99.9% of use cases do without those *primitives* as subject). 16:59:29 RRSAgent, draft minutes 16:59:30 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html TallTed 17:00:11 sorry Andy, just dropped. was that a question for me? 17:00:29 olaf has left #rdf-star 17:00:41 No Q - hard scribing - should count x2 ! 17:15:48 Zakim, end meeting 17:15:48 As of this point the attendees have been enrico, ktk, AndyS, gtw, fsasaki, olaf, TallTed, ora, AZ, eBremer, niklasl, Souri, pfps, tl 17:15:48 RRSAgent, please draft minutes 17:15:49 I have made the request to generate https://www.w3.org/2024/04/25-rdf-star-minutes.html Zakim 17:15:55 I am happy to have been of service, TallTed; please remember to excuse RRSAgent. Goodbye 17:15:55 Zakim has left #rdf-star 17:16:00 RRSAgent, bye 17:16:00 I see no action items