Re: Three ideas

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 Friday, 14 January 2022 15:57:32 UTC