- From: Anthony Moretti <anthony.moretti@gmail.com>
- Date: Tue, 18 Jan 2022 14:32:54 +1030
- To: Pete Rivett <pete.rivett@agnos.ai>
- Cc: Fabio Vitali <fabio.vitali@unibo.it>, Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>
- Message-ID: <CACusdfRkzPHJWnXzAB9+0c5D4+bKjnYoHOeX6fsROpej9bx1nQ@mail.gmail.com>
If anybody isn't following Pierre-Antoine and me, I'll try to give a summary of what I think the problem might be, and I'll follow it with an example. There's an example in my last email too, Obama's first term as president. In typical modeling, events have an ID and you can use that ID to find statements about the start and end time of the event. If you have reoccurring events, like the celebrity marriage example, there's no problem because each event is uniquely identified. In RDF-Star, people are creating events by annotating triples with start and end times, and often there are accompanying annotations. If there's a reoccurring event, or if the annotations are only about a specific part of an event, when you do the expansions you no longer know which event the accompanying annotations are about because there are no event IDs and the core triples being used as the subject of those annotations are identical. In my view the problem isn't with RDF-Star it's with RDF. I think the basic unit of description, the triple, is missing components. Every triple describes a relationship and every relationship has an extent in time. Things can't be in a relationship if they don't exist yet, and the future is yet to happen, those two things mean that every relationship is implicitly lower-bounded by the existence of the things being described, and implicitly upper-bounded by the present. Some relationships have narrower extents in time than those two bounds, and some relationships have multiple discontinuous extents in time, but there's no place in a triple to describe those. Why? A similar idea applies to space, some relationships are only true in specific regions of space. I believe a fix for this would be optional time and space positions that can be left blank if not required: Subject Relation Object T1 T2 SpatialBound With that, event ambiguity is resolved without the need for event IDs. I'll go into it in another email, but the temporal range should ideally be inclusive-start and exclusive-end, so some of my earlier examples actually need correction around that. Here's a more complex example that involves both time and space and builds on an example I gave at the beginning of the thread: Using existing RDF-Star, and mimicking how others appear to be using it: :BigMac :price-USD 5.66 {| :quantitySold 550000000 :statedIn :Wikipedia :region :UnitedStates :startTime 2021 :endTime 2022 |} Which expands to: :BigMac :price-USD 5.66 << :BigMac :price-USD 5.66 >> :quantitySold 550000000 << :BigMac :price-USD 5.66 >> :statedIn :Wikipedia << :BigMac :price-USD 5.66 >> :region :UnitedStates << :BigMac :price-USD 5.66 >> :startTime 2021 << :BigMac :price-USD 5.66 >> :endTime 2022 There's so much ambiguity in both of the above. If the original intention was to describe the quantity sold in that specific region during that specific time then I think the expansion breaks that, or at the very least leaves it open to be broken by further statements if the price ever happens to be the same in a different period of time or a different region. Also, if the original intention was to say that all of the information was stated in Wikipedia, then I think the expansion breaks that too. A better way might be to use optional time and space positions and a "complex statement", which handily also results in metadata being separated from additional data: :BigMac :price-USD 5.66 2021 2022 :UnitedStates { :quantitySold 550000000 } {| :statedIn :Wikipedia |} Which expands to: :BigMac :price-USD 5.66 2021 2022 :UnitedStates { :BigMac :price-USD 5.66 2021 2022 :UnitedStates } :quantitySold 550000000 << :BigMac :price-USD 5.66 2021 2022 :UnitedStates >> :statedIn :Wikipedia << { :BigMac :price-USD 5.66 2021 2022 :UnitedStates } :quantitySold 550000000 >> statedIn :Wikipedia Even though this is a complex example, I think the time/space ambiguity and metadata ambiguity are both gone now. In summary, I feel like time and space positions should exist in RDF and it would fix some of the problems in RDF-Star too. Regards Anthony On Sat, Jan 15, 2022 at 1:48 PM Anthony Moretti <anthony.moretti@gmail.com> wrote: > I see your point, and I believe that's a valid approach. But I am not sure >> everyone wants to commit to that kind of ontological detail. As I wrote in >> my previous mail: conflating past and future event into the same class >> works well for many practical use cases. >> > > I agree. And, as Pete described, if the classification is important to a > reasoner it can be done by the reasoner anyway. My point was just to say > that implicit temporal bounds still seem to exist even for that very > difficult example, and, by doing that, I was trying to chop away at reasons > for not having optional time and space positions. > > In fact, optional time and space positions might actually help when > describing future events because they let you easily set expiry dates for > the things you say. For example, if you were planning WebConf2022 and the > dates for it were still changing you could release a statement that was > valid for only a certain period of time: > > :WebConf2022 :startDate "2022-04-25"^^xsd:date 2022-01-15 2022-01-21 > > And then if plans change the following week and the event gets pushed back > a month, which is happening a lot right now for in-person events (I know > WebConf2022 is online), you could release an updated statement that was > valid for a new period of time: > > :WebConf2022 :startDate "2022-05-23"^^xsd:date 2022-01-22 2022-01-28 > > Aside from modeling simplicity, I think the other major argument for time >> and space positions is that order of assertion matters. >> >> ?? >> >> Not in RDF, it does not. >> > > I don't want to say I'm certain of this, but I think for triples that are > time/space dependent and then used as the subject or object of another > statement (in plain RDF via the use of identifiers) it does seem to matter. > The triple needs to be completed first for further statements to make > sense, and I think RDF-Star exposes the problem. If that's not the case can > someone please give me a counterexample? > > The "Thomas traveling to Paris" example is a modification of an example > Thomas gave in a different thread, and I'm dropping it because, as Pete > also notices, it has various issues. The following example (Obama's first > term in office) is an example I'm creating myself, but I'm sure people are > going to try and do stuff like this because it's already happening with the > celebrity marriage example: > > :BarackObama :presidentOf :UnitedStates > {| > :statedIn :Wikipedia > :startTime 2009 > :endTime 2013 > |} > > What was stated in Wikipedia? The incomplete triple or the one completed > by the temporal constraints? I think what is meant is the following, with > the temporal constraints stated first and as additional data rather than > metadata: > > :BarackObama :presidentOf :UnitedStates > { > :startTime 2009 > :endTime 2013 > } > {| :statedIn :Wikipedia |} > > Even if the above format were available, people would probably still try > to do something like: > > :BarackObama :presidentOf :UnitedStates > { > :secretaryOfState :HillaryClinton > :startTime 2009 > :endTime 2013 > } > {| :statedIn :Wikipedia |} > > But if the temporal constraints aren't asserted first you have a similar > issue upon expansion because HillaryClinton wasn't Secretary of State for > his entire presidency, only for his first term. > > Having optional time and space positions makes the order of assertion > clear and the time-dependent triple is completed first before further > statements are made. Separating additional data from metadata does the same > thing and clarifies what the metadata is about: > > :BarackObama :presidentOf :UnitedStates 2009 2013 > { :secretaryOfState :HillaryClinton } > {| :statedIn :Wikipedia |} > > RDF(-star) has no such notion. Assuming that what you wrote above is >> supposed to be RDF-star (replacing curly brackets with double angle >> brackets), then the semantics of RDF-star (directly inherited from RDF) >> requires that all four statements are interpretable independently of each >> other, and are all considered true (assuming that you "trust"/"accept" the >> whole graph as true). >> > > So I guess what I'm saying is that some triples, time/space dependent > ones, don't stand on their own and can't be considered true or false, and > instead of telling people to avoid them, or telling people to avoid forms > like the above whose expansion will include incomplete triples, let's > embrace them and design a solution for them. Bonus points that it's a super > simple way to model things so it's great for beginners, bonus points that > it also handles reoccurring events, bonus points that it solves for our > other dimension, space, at the same time. > > To answer this question, we need to precisely specify the meaning of each >> term of the used ontology. Since this is your example, I would expect you >> to know... :-) >> > > The original example is Thomas', but aside from that, if there's ambiguity > due to the chosen tense for the relation, which ideally shouldn't be a > factor, then a lot of that goes away when you have valid times and can then > opt for, say, present tense all of the time and have everything still be > clear. The point I was trying to make though was that the triples were > examples of the above, incomplete triples that need time/space information > to complete them. > > But more importantly, I reiterate my request to be explicit about what you >> mean when you write "statement". Each RDF triple makes a statement, that IS >> either true or false. However, a given set of RDF triples might give an >> description of something else (e.g. an anthony-statement) that might be >> deemed *incomplete* for some uses. >> >> Once we have a clear distinction between rdf-statement and >> anthony-statement, then we can discuss whether a given set of >> rdf-statements provides a complete and accurate description of a given >> anthony-statement. >> > > I'm still not clear what you mean by this, but I'll try to understand. Of > the four statement types I proposed the closest to an RDF triple is a > "Simple statement", which ideally would just be an RDF triple with optional > time and space positions and the ability to have any type of statement as > subject or object. A given set of simple statements, which would be > provided using a compound statement that also has optional time and space > positions, could then provide a complete and accurate description of any of > the other statement types. Is that an answer to your question? Sorry if > I've still misunderstood. > > Regards > Anthony > > On Sat, Jan 15, 2022 at 2:26 AM Pete Rivett <pete.rivett@agnos.ai> wrote: > >> I'd still take a modeling approach rather than ad hoc use of rdf-star >> annotations (which, as I pointed out in my last email, we have no way of >> documenting a schema for). >> >> From a modeling point of view I'd argue: >> a) for modeling WebConf2022 as a simple Event. You could additionally and >> dynamically add the class FutureEvent using the restriction :startTime > >> now(). And, indeed PastEvent where :endTime < now(). >> if needed you could have an additional property :status with values >> appropriate to your interest in its lifecycle such as :Conceived, >> :Resourced, :Committed, :Announced, :Started, :Completed, >> :ProceedingsPublished. >> >> b) if you're interested in multiple journeys why not actually model them: >> _journey1 a :Journey ; >> :traveler :Thomas ; >> :destination :Paris ; >> :timing [a :Period; >> :start T1 ; >> :end :T2 >> ] >> (you probably want an :origin place too) >> >> Generally I'd caution against trying to use Fictional: it becomes very >> subjective. For example is Klingon >> https://en.wikipedia.org/wiki/Klingon_language a fictional language? It >> originated in a fictional TV series but it has real speakers, works of >> literature and a language institute. And an official ISO language code >> (@tlh). If Klingon is fictional then why is Esperanto not? >> >> Pete >> >> On Thu, 13 Jan 2022 at 18:40, Anthony Moretti <anthony.moretti@gmail.com> >> wrote: >> >>> Earlier Pierre-Antoine wrote: >>> >>> Ok, let's take another example: >>>> >>>> :theWebConf2022 a s:Event ; >>>> s:startDate "2022-04-25"^^xsd:date ; >>>> s:endDate "2022-04-29"^^xsd:date . >>>> >>>> would you consider that those triple will only be valid on 2022-04-25? >>>> Or would you argue that this event already exists, even though it has not >>>> occurred yet? >>>> >>> >>> This is a great discussion because I don't think time has been given the >>> attention it deserves. The following are my current thoughts, I'm happy to >>> hear more opinions though. >>> >>> There's a saying "the future is fiction until it happens". We can >>> definitely talk about fictional things, Fabio gives the example of Mickey >>> Mouse but you can even include abstract things like numbers, they're mental >>> concepts and I'd argue that the concepts exist from the moment they're >>> imagined. We can talk about fictional things without problem as long as >>> it's understood that they're fictional, this can be explicit by saying >>> Mickey Mouse is a FictionalCharacter, or implicit when talking about >>> abstract things like numbers. You could create a hierarchy for fictional >>> things by duplicating schema-org and prefixing all of the class names with >>> "Fictional": >>> >>> Thing >>> Person >>> Place >>> Event >>> >>> FictionalThing >>> FictionalPerson >>> FictionalPlace >>> FictionalEvent >>> >>> I'd argue that past events belong in the first hierarchy and future >>> events belong in the second, like so: >>> >>> FictionalThing >>> FictionalEvent >>> FutureEvent >>> >>> Pat mentioned Tarskian truth conditions, and I think the WebConf2022 >>> example fails that, even though it's convenient to describe it like that >>> because it matches how you'd describe past WebConfs. It might be more >>> accurate to say: >>> >>> :WebConf2021 a :Event >>> :startDate 2021-04-19 >>> :endDate 2021-04-23 >>> >>> :WebConf2022 a :FutureEvent >>> :scheduledStartDate 2022-04-25 >>> :scheduledEndDate 2022-04-29 >>> >>> And only once the event has happened, and a reality has occurred that >>> can be described, describe it in the first manner like WebConf2021. >>> >>> Like I said, I'm happy to hear more opinions on all of this though. >>> >>> So I am still not convinced that triples are the right level of >>>> granularity for *systematically *attaching contextual metadata. >>>> Following Pat, I prefer to keep rdf-statements dead-simple (1), and model >>>> more complex things (like anthony-statements) with a bunch of triples. >>>> >>> >>> Aside from modeling simplicity, I think the other major argument for >>> time and space positions is that order of assertion matters. If people >>> annotate with start and end times, which they're already doing, then >>> expansions don't work correctly. Going with an earlier example: >>> >>> :Thomas :travelingTo :Paris >>> { >>> :by :Train, >>> :startTime T1, >>> :endTime T2, >>> } >>> >>> Would expand to: >>> >>> :Thomas :travelingTo :Paris >>> { :Thomas :travelingTo :Paris } :by :Train >>> { :Thomas :travelingTo :Paris } :startTime T1 >>> { :Thomas :travelingTo :Paris } :endTime T2 >>> >>> The first statement is incomplete, neither true or false, and the second >>> statement has an incomplete statement as subject. What do either of those >>> statements mean? Maybe someone has a better idea, but the only way I >>> currently see around it would be custom expansion rules to do with time and >>> space, which seems ugly to me. >>> >>> With time and space positions it would start as: >>> >>> :Thomas :travelingTo :Paris T1 T2 >>> { :by :Train } >>> >>> Which expands to: >>> >>> :Thomas :travelingTo :Paris T1 T2 >>> { :Thomas :travelingTo :Paris T1 T2 } :by :Train >>> >>> Regards >>> Anthony >>> >>> On Fri, Jan 14, 2022 at 12:19 PM Pete Rivett <pete.rivett@agnos.ai> >>> wrote: >>> >>>> Fabio, I don't know if it was deliberate, but it seems to me that >>>> using different preciates to bound periods such as :start, :end, :after, >>>> :before (and more?) seems to defeat the point (and I think what Anthony was >>>> looking for) to allow predictable querying and reasoning. >>>> I really think it's premature for rdf-star to embody anything like >>>> this. I think we should start with a best practice note as suggested (even >>>> that will I think be hard enough to reach consensus on), then after >>>> sufficient demonstrated success with applying it for real, we >>>> could consider standardizing a specific set of predicates in a separate >>>> schema. >>>> Which also invites the question "what would a schema for rdf-star >>>> *annotation* properties look like, and how could you specify the >>>> (required/permitted) use of specific *annotation* properties with >>>> specific *regular* properties?". >>>> >>>> BTW nary relationships need not need be as complex as your examples. >>>> Simpler alternatives: >>>> _:item1 a :temporaryLocation; >>>> :affects :MonaLisa; >>>> :location :Florence; >>>> :hasPeriod [ >>>> :start "1506"^^xsd:Year; >>>> :end "1517"^^xsd:Year; >>>> ] . >>>> >>>> _item1 a :USPresidency [ >>>> :holder :RichardNixon; >>>> :hasPeriod [ >>>> :start "1969-01-20"^^xsd:dateTime ; >>>> :end "1974-08-09"^^xsd:dateTime. >>>> ] >>>> >>>> Cheers, >>>> Pete >>>> >>>> On Thu, 13 Jan 2022 at 09:48, Fabio Vitali <fabio.vitali@unibo.it> >>>> wrote: >>>> >>>>> Hi! >>>>> >>>>> > On 13 Jan 2022, at 17:04, Pierre-Antoine Champin < >>>>> pierre-antoine.champin@ercim.eu> wrote: >>>>> > >>>>> > Hi Anthony, >>>>> > >>>>> > you wrote >>>>> > >>>>> > > that the temporal validity of any statement is implicitly >>>>> lower-bounded by the existence of the things that it talks about, so >>>>> technically the birth-date example is only valid after the birth date of >>>>> the person >>>>> > >>>>> > Ok, let's take another example: >>>>> > >>>>> > :theWebConf2022 a s:Event ; >>>>> > s:startDate "2022-04-25"^^xsd:date ; >>>>> > s:endDate "2022-04-29"^^xsd:date . >>>>> > >>>>> > would you consider that those triple will only be valid on >>>>> 2022-04-25? Or would you argue that this event already exists, even though >>>>> it has not occurred yet? >>>>> > >>>>> > Without starting to count angels on pinpoints (wondering if a >>>>> yet-to-be-born person exists or not), let's be pragmatic: does it make your >>>>> knowledge base inconsistent in any way to consider that such triples about >>>>> future events are already valid? I don't think so. >>>>> >>>>> You are adding two more pairs of terms, "valid / non valid" and "exist >>>>> / not exist", to an already complex issue. The pairs already in play are: >>>>> >>>>> 1) true / false (or not-true?) >>>>> 2) asserted / not-asserted. >>>>> >>>>> True / not true attain to the relationship between statements and >>>>> reality (or at least some notion of reality endorsed by logicians and a few >>>>> mathematicians). Asserted / not asserted attain to whether we know that the >>>>> current dataset contains the statement or not. >>>>> >>>>> [ Valid / not valid attain to correctness in expressing statements >>>>> (e.g., according to an ontology), and exist /not exist attain to physical >>>>> or philosophical understanding of reality which makes my mind quiver (Does >>>>> Mickey Mouse exist?). ] >>>>> >>>>> I understand that here is a traditional, albeit vague, connection in >>>>> this community between asserted and true, which I respect and uphold. But >>>>> whatever is the contrary of true, I do not think there should be a similar >>>>> connection between non-asserted and false (or not true). >>>>> >>>>> Non-asserted triples can be absolutely true (<< :theWebConf dc:subject >>>>> :webTechnologies >>), absolutely false (<< :theWebConf :frontFor >>>>> :mossadRecruitment >> ), and conditionally true (<< :theWebConf :rating >>>>> :FiveStars >> ), depending on a lot of factors (time, location, provenance, >>>>> confidence, etc.), and since rdf-star allows us to represent triples >>>>> without asserting them, we can use it to express facts about non-asserted >>>>> triples without worrying about their actual truth: >>>>> >>>>> << :theWebConf dc:subject :webTechnologies >> :accordingTo >>>>> :wikipedia. >>>>> << :theWebConf :frontFor :mossadRecruitment >> :accordingTo >>>>> :someMadman. >>>>> << :theWebConf :rating :FiveStars >> :accordingTo >>>>> :FabioVitali. >>>>> >>>>> These triples are all asserted (and true (and valid!)) regardless of >>>>> the truth value of their quoted triples. This is exactly what makes >>>>> rdf-star very interesting to me. >>>>> >>>>> Now, using :theWebConf as in your example is somewhat misleading: you >>>>> are using an Event, which is an abstract concept of something whose main >>>>> characteristic is being temporally and geographically constrained, and then >>>>> you ask if there are other temporal constraints associated to it. No, no, >>>>> probably not. But you put yourself in an easy situation. >>>>> >>>>> Let's try with entities which are not events: say, a physical object, >>>>> a role, a relationship: >>>>> >>>>> << :monaLisa :location :Florence >> >>>>> << :USA :president :RichardNixon >> >>>>> << :MickeyMouse inLoveWith :MinnieMouse >> >>>>> >>>>> All these triples are NOT absolutely true, and at the same time they >>>>> are NOT absolutely false, either. >>>>> >>>>> Using rdf-star, we can create absolutely-true statements out of these >>>>> non-absolutely-true triples: >>>>> >>>>> << :monaLisa :location :Florence >> :after "1506"^^xsd:Year; :before >>>>> "1517"^^xsd:Year . >>>>> << :USA :president :RichardNixon >> :start "1969"^^xsd:Year; :end >>>>> "1974"^^xsd:Year . >>>>> << :MickeyMouse inLoveWith :MinnieMouse >> :accordingTo :WaltDisney . >>>>> >>>>> These are trivial rdf-star representations of (simple) >>>>> anthony-statements (syntax aside). I fail to see a downside to this. >>>>> >>>>> The opposite, to adopt "dead-simple statements" seems much worse to >>>>> me: adopting n-ary relationships and events and states and opinions seems >>>>> SO MUCH MORE COMPLICATED: >>>>> >>>>> _:item1 a :temporaryLocation; >>>>> :affects :monaLisa; >>>>> :location :Florence; >>>>> :start [ >>>>> a :uncertainDate ; >>>>> :after "1506"^^xsd:Year; >>>>> ] ; >>>>> :end [ >>>>> a :uncertainDate ; >>>>> :before "1517"^^xsd:Year; >>>>> ] . >>>>> >>>>> _:item2 a :temporaryState; >>>>> :role :presidency; >>>>> :organization :USA; >>>>> :holder :RichardNixon; >>>>> :startingEvent [ >>>>> a :election; >>>>> :date "1969-01-20"^^xsd:dateTime. >>>>> ]; >>>>> :endingEvent [ >>>>> a :resignation; >>>>> :date "1974-08-09"^^xsd:dateTime. >>>>> ]. >>>>> >>>>> _:item3 a :fictitiousCouple; >>>>> :member :MickeyMouse; >>>>> :member :MinnieMouse; >>>>> :type :Love; >>>>> :inventedBy :WaltDisney. >>>>> >>>>> You may feel safer with n-ary relationships, i.e. with the >>>>> objectification of relationships into abstract entities, but another way to >>>>> express this concept is as "reification of triples into blank nodes" which >>>>> seems to me exactly what rdf-star is about. >>>>> >>>>> We have rdf-star. Let's use it. >>>>> >>>>> Ciao >>>>> >>>>> Fabio >>>>> >>>>> > >>>>> > So I am still not convinced that triples are the right level of >>>>> granularity for systematically attaching contextual metadata. Following >>>>> Pat, I prefer to keep rdf-statements dead-simple (1), and model more >>>>> complex things (like anthony-statements) with a bunch of triples. >>>>> > >>>>> > pa >>>>> > >>>>> > (1) even if, arguably, RDF-star makes them a little more complex >>>>> that they originally were. >>>>> > >>>>> > On 13/01/2022 03:51, Anthony Moretti wrote: >>>>> >> Earlier I wrote: >>>>> >> the temporal validity of any statement is implicitly lower-bounded >>>>> by the existence of the things that it talks about >>>>> >> >>>>> >> I wouldn't mind some feedback on this, but I think the temporal >>>>> validity of every statement has an implicit upper bound too: >>>>> >> >>>>> >> Implicit lower bound: Existence of the things being described. >>>>> >> Implicit upper bound: Stated time of assertion, otherwise the >>>>> present. >>>>> >> >>>>> >> If that's correct, I can use it to demonstrate optional time and >>>>> space positions: >>>>> >> >>>>> >> It's 2010, and Pierre-Antoine sends me a graph. He puts a timestamp >>>>> on his graph by upper-bounding the temporal validity: >>>>> >> >>>>> >> { >>>>> >> :BarackObama :presidentOf :UnitedStates 2009 _, >>>>> >> :JoeBiden :vicePresidentOf :UnitedStates 2009 _, >>>>> >> :HillaryClinton :secretaryOfStateOf :UnitedStates 2009 _, >>>>> >> } >>>>> >> _ 2010 >>>>> >> >>>>> >> It's now 2022, and I'm working on my own graph: >>>>> >> >>>>> >> { >>>>> >> :JoeBiden :presidentOf :UnitedStates 2021 _, >>>>> >> :KamalaHarris :vicePresidentOf :UnitedStates 2021 _, >>>>> >> :AntonyBlinken :secretaryOfStateOf :UnitedStates 2021 _, >>>>> >> } >>>>> >> >>>>> >> I trust Pierre-Antoine and remember that he sent me a graph a long >>>>> time ago. I do the laziest thing possible and import it unmodified as a >>>>> compound statement. The information is incomplete but the OWA means >>>>> everything is ok, and the graph is still valid: >>>>> >> >>>>> >> { >>>>> >> { >>>>> >> :BarackObama :presidentOf :UnitedStates 2009 _, >>>>> >> :JoeBiden :vicePresidentOf :UnitedStates 2009 _, >>>>> >> :HillaryClinton :secretaryOfStateOf :UnitedStates 2009 _, >>>>> >> } >>>>> >> _ 2010, >>>>> >> :JoeBiden :presidentOf :UnitedStates 2021 _, >>>>> >> :KamalaHarris :vicePresidentOf :UnitedStates 2021 _, >>>>> >> :AntonyBlinken :secretaryOfStateOf :UnitedStates 2021 _, >>>>> >> } >>>>> >> >>>>> >> I do automated flattening of the graph. The information is >>>>> incomplete, but the graph is still valid: >>>>> >> >>>>> >> { >>>>> >> :BarackObama :presidentOf :UnitedStates 2009 2010, >>>>> >> :JoeBiden :vicePresidentOf :UnitedStates 2009 2010, >>>>> >> :HillaryClinton :secretaryOfStateOf :UnitedStates 2009 2010, >>>>> >> :JoeBiden :presidentOf :UnitedStates 2021 _, >>>>> >> :KamalaHarris :vicePresidentOf :UnitedStates 2021 _, >>>>> >> :AntonyBlinken :secretaryOfStateOf :UnitedStates 2021 _, >>>>> >> } >>>>> >> >>>>> >> I finally get the motivation and I update Pierre Antoine's >>>>> statements. The information is now up to date and the graph is still valid: >>>>> >> >>>>> >> { >>>>> >> :BarackObama :presidentOf :UnitedStates 2009 2017, >>>>> >> :JoeBiden :vicePresidentOf :UnitedStates 2009 2017, >>>>> >> :HillaryClinton :secretaryOfStateOf :UnitedStates 2009 2013, >>>>> >> :JoeBiden :presidentOf :UnitedStates 2021 _, >>>>> >> :KamalaHarris :vicePresidentOf :UnitedStates 2021 _, >>>>> >> :AntonyBlinken :secretaryOfStateOf :UnitedStates 2021 _, >>>>> >> } >>>>> >> >>>>> >> I decide to send it back to Pierre-Antoine, and I put a timestamp >>>>> on my graph: >>>>> >> >>>>> >> { >>>>> >> :BarackObama :presidentOf :UnitedStates 2009 2017, >>>>> >> :JoeBiden :vicePresidentOf :UnitedStates 2009 2017, >>>>> >> :HillaryClinton :secretaryOfStateOf :UnitedStates 2009 2013, >>>>> >> :JoeBiden :presidentOf :UnitedStates 2021 _, >>>>> >> :KamalaHarris :vicePresidentOf :UnitedStates 2021 _, >>>>> >> :AntonyBlinken :secretaryOfStateOf :UnitedStates 2021 _, >>>>> >> } >>>>> >> _ 2022 >>>>> >> >>>>> >> And so it could continue. Spatial validity would be handled >>>>> similarly. >>>>> >> >>>>> >> It's very easy to reason about temporal/spatial validity when the >>>>> approach to statements is unified and optional time and space positions can >>>>> be used everywhere. >>>>> >> >>>>> >> Regards >>>>> >> Anthony >>>>> >> >>>>> >> On Wed, Jan 12, 2022 at 12:48 PM Anthony Moretti < >>>>> anthony.moretti@gmail.com> wrote: >>>>> >> Correction, I was a bit sloppy: >>>>> >> >>>>> >> In both cases I would leave the time and space positions blank >>>>> anyway, so RDF-as-usual. >>>>> >> >>>>> >> In the second example the space position would be blank, but not >>>>> the time positions. I was just trying to agree that yes the second example >>>>> isn't place-dependent. >>>>> >> >>>>> >> Regards >>>>> >> Anthony >>>>> >> >>>>> >> On Wed, Jan 12, 2022 at 12:44 PM Anthony Moretti < >>>>> anthony.moretti@gmail.com> wrote: >>>>> >> Hi Pierre-Antoine >>>>> >> What is not entirely clear to me is how you see the ideas below >>>>> interact with RDF-star —or RDF, for that matter... >>>>> >> >>>>> >> 1) Do you want to modify the core of RDF / RDF-star, replacing >>>>> their notion of statement by the one you propose here (time+place >>>>> annotated, complex and/or compound)? >>>>> >> >>>>> >> 2) Or do you want to explore how your proposed notion of statement >>>>> could be expressed *on top* of RDF / RDF-star, with no or minimal >>>>> modification to them? >>>>> >> >>>>> >> If the answer is 2 (my favorite option, by the way), then the idea >>>>> is to model anthony-statements using a set of rdf-statements (possibly >>>>> extended with RDF-star). >>>>> >> >>>>> >> >>>>> >> Ideally: >>>>> >> RDF: Time and space positions. >>>>> >> RDF-Star: Simple, compound, and complex statements. >>>>> >> >>>>> >> It would be ideal to put the time and space positions at the RDF >>>>> level because, as Pat and Fabio seem to agree, some triples are time/space >>>>> dependent and make no sense without that information. They're not edge >>>>> cases either, it might seem like that because so far there hasn't been a >>>>> way to express them, but there are infinitely many just as there are >>>>> infinitely many that aren't time/space constrained. Also, the order of >>>>> assertion is important for time/space dependent triples, if anything is to >>>>> be said about them, additional data or metadata, then the time/space >>>>> constraints need to be asserted first, and time and space positions ensure >>>>> that order of assertion. >>>>> >> >>>>> >> I think it would help the discussion a lot to a) acknowledge that >>>>> the word "statement" in this discussion is ambiguous, and b) to be as >>>>> explicit as possible about which kind we are talking about. >>>>> >> >>>>> >> I'm using the word "statement" as a direct replacement for >>>>> "sentence", so maybe "sentence" is a better term: >>>>> >> >>>>> >> sentence: >>>>> >> a set of words that is complete in itself, typically containing a >>>>> subject and predicate, conveying a statement, question, exclamation, or >>>>> command, and consisting of a main clause and sometimes one or more >>>>> subordinate clauses. >>>>> >> >>>>> >> I am uncomfortable with "hard-coding" these 4 dimensions, and only >>>>> them, in every possible statement. I think that the relevant dimensions >>>>> depend on the relation itself (e.g., the birth-date of a person is neither >>>>> time nor place dependent; the president of a country is not place >>>>> dependent...). And I don't think that any list of contextual dimension can >>>>> be exhaustive. >>>>> >> >>>>> >> Especially regarding certainty, there are many ways to model >>>>> uncertainty (not all of them modelling it with a single value between 0 and >>>>> 1, by the way). >>>>> >> >>>>> >> >>>>> >> On the first example you gave, my thoughts are that the temporal >>>>> validity of any statement is implicitly lower-bounded by the existence of >>>>> the things that it talks about, so technically the birth-date example is >>>>> only valid after the birth date of the person, the birth date happens to be >>>>> the object of the statement in this case but the idea would apply to any >>>>> statement. On the second example, yes I agree its spatial validity is >>>>> unbound. In both cases I would leave the time and space positions blank >>>>> anyway, so RDF-as-usual. >>>>> >> >>>>> >> I'm happy to drop "certainty" for the reasons you stated. I've >>>>> included it so far because it's another example of where order of assertion >>>>> becomes important, for it to make sense it needs to be asserted after time >>>>> and space but before metadata. But yes, let's drop it for now. >>>>> >> >>>>> >> And yes for sure, no list of contextual dimensions can be >>>>> exhaustive, but if time and space positions are allowed it ensures those >>>>> assertions are made first and the whole framework becomes scalable and >>>>> easier to reason about. >>>>> >> >>>>> >> Do you have any clear definition, or at least guidelines, to decide >>>>> whether a piece of information is additional data or metadata? >>>>> >> >>>>> >> My quick take would be: additional data continues the description, >>>>> whereas metadata is description of the description. >>>>> >> >>>>> >> No widespread need, but logically it could continue, descriptions >>>>> of descriptions of descriptions and so on: >>>>> >> >>>>> >> Simple statement >>>>> >> { Additional data } >>>>> >> {| First-order metadata |} >>>>> >> {| Second-order metadata |} >>>>> >> ... >>>>> >> >>>>> >> Fabio has a good idea with the note containing examples of good >>>>> modeling. >>>>> >> >>>>> >> Regards >>>>> >> Anthony >>>>> >> >>>>> >> On Wed, Jan 12, 2022 at 8:02 AM Fabio Vitali <fabio.vitali@unibo.it> >>>>> wrote: >>>>> >> Dear Pierre-Antoine, >>>>> >> >>>>> >> > 1) Do you want to modify the core of RDF / RDF-star, replacing >>>>> their notion of statement by the one you propose here (time+place >>>>> annotated, complex and/or compound)? >>>>> >> >>>>> >> >>>>> >> I think with you that RDFstar already provides a lot of what has >>>>> been discussed so far. >>>>> >> >>>>> >> Yet Anthony explicitly mentions (and I agree with him) that RDFstar >>>>> has the right approach for single triples, but is lacking in supporting the >>>>> needs for complex and compound statements. Working towards some suggestions >>>>> to integrate these needs would enrich and complete the RDFstar proposal. >>>>> >> >>>>> >> My preference would go towards exploiting named graphs, explicitly >>>>> introducing unasserted named graphs that can then be used in RDFstar in the >>>>> same way of unasserted triples. >>>>> >> >>>>> >> > 2) Or do you want to explore how your proposed notion of >>>>> statement could be expressed *on top* of RDF / RDF-star, with no or minimal >>>>> modification to them? >>>>> >> >>>>> >> I do not know Anthony's point of view on this, but I believe that >>>>> it would be useful to think of a resource providing some thoughtful and >>>>> general guidelines on how RDFstar's quoted and annotated triples (as well >>>>> as, hopefully, the RDFstar's quoted and annotated named graphs that I >>>>> envision) could help in expressing conditional, time-dependent, >>>>> location-dependent, uncertain, opinionated and competing statements. >>>>> >> >>>>> >> What I am thinking is something like, say, a W3C note, on the lines >>>>> of https://www.w3.org/TR/swbp-n-aryRelations/ : a document >>>>> introducing no new features, but explaining and making examples on how to >>>>> use the existing features in a possibly unexpected and innovative way. >>>>> >> >>>>> >> What do you think? >>>>> >> >>>>> >> Fabio >>>>> >> >>>>> >> -- >>>>> >> >>>>> >> > On 11 Jan 2022, at 15:43, Pierre-Antoine Champin < >>>>> pierre-antoine.champin@ercim.eu> wrote: >>>>> >> > >>>>> >> > Hi Anthony, >>>>> >> > >>>>> >> > thanks for the summary. It's hard to catch up for those of us who >>>>> went offline during the break :-) >>>>> >> > >>>>> >> > On 08/01/2022 10:40, Anthony Moretti wrote: >>>>> >> >> Hi >>>>> >> >> >>>>> >> >> I thought I'd put the ideas I shared during the longer >>>>> discussion in one place to make it easier for people to read and give >>>>> feedback. I love what's been achieved so far, I just want whatever is >>>>> released to be the best possible thing that could be released. >>>>> >> > What is not entirely clear to me is how you see the ideas below >>>>> interact with RDF-star —or RDF, for that matter... >>>>> >> > >>>>> >> > 1) Do you want to modify the core of RDF / RDF-star, replacing >>>>> their notion of statement by the one you propose here (time+place >>>>> annotated, complex and/or compound)? >>>>> >> > >>>>> >> > 2) Or do you want to explore how your proposed notion of >>>>> statement could be expressed *on top* of RDF / RDF-star, with no or minimal >>>>> modification to them? >>>>> >> > >>>>> >> > If the answer is 2 (my favorite option, by the way), then the >>>>> idea is to model anthony-statements using a set of rdf-statements (possibly >>>>> extended with RDF-star). I think it would help the discussion a lot to a) >>>>> acknowledge that the word "statement" in this discussion is ambiguous, and >>>>> b) to be as explicit as possible about which kind we are talking about. >>>>> >> > >>>>> >> > I also have a few comments on the two first ideas: >>>>> >> > >>>>> >> >> (...) >>>>> >> >> >>>>> >> >> Summary: >>>>> >> >> 1. Optional time, space, and certainty positions. >>>>> >> > I am uncomfortable with "hard-coding" these 4 dimensions, and >>>>> only them, in every possible statement. I think that the relevant >>>>> dimensions depend on the relation itself (e.g., the birth-date of a person >>>>> is neither time nor place dependent; the president of a country is not >>>>> place dependent...). And I don't think that any list of contextual >>>>> dimension can be exhaustive. >>>>> >> > >>>>> >> > Especially regarding certainty, there are many ways to model >>>>> uncertainty (not all of them modelling it with a single value between 0 and >>>>> 1, by the way). On that particular topic, you might be interested in this >>>>> paper: >>>>> https://hal.inria.fr/hal-02167174/file/Publishing_Uncertainty_on_the_Semantic_Web__Bursting_the_LOD_bubbles__Final_Version_.pdf >>>>> >> > >>>>> >> >> 2. Separating additional data from metadata. >>>>> >> > Do you have any clear definition, or at least guidelines, to >>>>> decide whether a piece of information is additional data or metadata? >>>>> >> > >>>>> >> > best >>>>> >> > >>>>> >> >> 3. Simple, compound, and complex statements. >>>>> >> >> - - - >>>>> >> >> >>>>> >> >> 1. Optional time, space, and certainty positions >>>>> >> >> >>>>> >> >> We exist in time and space, and this type of modeling could >>>>> possibly be easier. A statement would have four optional positions, leaving >>>>> the time and space positions blank would mean "unbounded", and leaving the >>>>> last position blank would mean 1.0: >>>>> >> >> >>>>> >> >> Subject Relation Object T1 T2 SpatialBound Certainty >>>>> >> >> >>>>> >> >> Examples: >>>>> >> >> >>>>> >> >> :RichardB :marriedTo :LizT 1964 1974 >>>>> >> >> :RichardB :marriedTo :LizT 1975 1976 >>>>> >> >> >>>>> >> >> :BigMac :price-USD 7.30 T1 T2 :Switzerland >>>>> >> >> :BigMac :price-USD 1.62 T1 T2 :India >>>>> >> >> >>>>> >> >> If anybody has worked with temporal databases they might see an >>>>> analogy with "valid times". By extension, the spatial bound could be >>>>> thought of as a "valid place". >>>>> >> >> >>>>> >> >> 2. Separating additional data from metadata >>>>> >> >> >>>>> >> >> This would remove a lot of ambiguity and creates a clear order >>>>> of assertion. It also seems to match the Wikidata data model. >>>>> >> >> >>>>> >> >> Example: >>>>> >> >> >>>>> >> >> :LizT :starredIn :JaneEyre >>>>> >> >> { >>>>> >> >> :role :HelenBurns, >>>>> >> >> :pay-USD 10000, >>>>> >> >> } >>>>> >> >> {| >>>>> >> >> :statedBy :Bob, >>>>> >> >> :statedIn :Wikipedia, >>>>> >> >> |} >>>>> >> >> >>>>> >> >> 3. Simple, compound, and complex statements >>>>> >> >> >>>>> >> >> Taking inspiration from linguistics, there could be four >>>>> different types of statements: >>>>> >> >> >>>>> >> >> 1. Simple statement >>>>> >> >> 2. Compound statement >>>>> >> >> 3. Complex statement >>>>> >> >> 4. Compound-complex statement >>>>> >> >> >>>>> >> >> Simple statement (binary relationship): >>>>> >> >> S R O T1 T2 SB C >>>>> >> >> >>>>> >> >> Compound statement (graph): >>>>> >> >> { >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> } >>>>> >> >> T1 T2 SB C >>>>> >> >> >>>>> >> >> Complex statement (n-ary relationship): >>>>> >> >> S R O T1 T2 SB C >>>>> >> >> { >>>>> >> >> R O T1 T2 SB C, >>>>> >> >> R O T1 T2 SB C, >>>>> >> >> } >>>>> >> >> >>>>> >> >> Compound-complex statement (n-ary relationship): >>>>> >> >> { >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> S R O T1 T2 SB C, >>>>> >> >> } >>>>> >> >> T1 T2 SB C >>>>> >> >> { >>>>> >> >> R O T1 T2 SB C, >>>>> >> >> R O T1 T2 SB C, >>>>> >> >> } >>>>> >> >> >>>>> >> >> This creates consistency, and makes it easy to reason about the >>>>> temporal/spatial validity of any graph. >>>>> >> >> >>>>> >> >> The existing RDF-Star "<<" and ">>" delimiters could be applied >>>>> to statements of any type to say that a statement was "neutrally asserted", >>>>> as I think Pat has described it before. Maybe for completeness, and based >>>>> on something Pat published, other delimiters could be created that would >>>>> mean "negatively asserted", something like "<!" and "!>" for example. >>>>> >> >> >>>>> >> >> The existing RDF-Star "{|" and "|}" delimiters could be applied >>>>> to statements of any type to add metadata. The example in Section 2 of this >>>>> email is an example of a complex statement with metadata. >>>>> >> >> >>>>> >> >> And I'm not sure, but it seems that nesting statements could be >>>>> a general solution to contexts, the deepest nested statements would be in >>>>> the most specific contexts. I haven't examined it properly though. >>>>> >> >> >>>>> >> >> If you've made it here thanks for reading! If you need more >>>>> examples please ask and I'll do my best. I love everything done so far, I >>>>> just want to bounce around these additional ideas with the hope that >>>>> they're constructive. Please reply with any feedback at all, good and bad, >>>>> it's all welcome! >>>>> >> >> >>>>> >> >> Regards >>>>> >> >> Anthony >>>>> >> > <OpenPGP_0x9D1EDAEEEF98D438.asc> >>>>> >> >>>>> > <OpenPGP_0x9D1EDAEEEF98D438.asc> >>>>> >>>>>
Received on Tuesday, 18 January 2022 04:04:25 UTC