-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
record model: align the notion of "fact" as applied to the conclusion model #97
record model: align the notion of "fact" as applied to the conclusion model #97
Conversation
… model applied in the conclusion model
So when we want to list the events of a person in a record, we would look at their facts, and either show the type, date and place that are right in the fact; or else follow an event role (stored in the Value) to find a shared Event, and get the type, date and place from that? Does Event really need to be a globally-addressable "entity", or could it be a record-local shared object like it has been in the past? Is a Value well suited for pointing to an Event, or would it be better to revert to using EventRole when a person plays a role in a shared Event? It doesn't seem like we would want to create an Event even for primary events (like a birth in a birth record), but only for events that are really shared (like census events for a household, although one could argue that each line is its own "mini-event" and doesn't need to be shared). Other than census, we haven't found a need for shared events yet, though I wouldn't be surprised if one came up. We wrestled with this before: should events be in the person or couple relationship, allowing the only role in the event to be "principal" (but conveniently putting the event right where it is almost always needed); or do we put events out at the record level and have everyone play a "role in event" (less convenient, but more flexible); or allow both (usually convenient, but then code has to look both places for event). |
My biggest concern here is the self-inconsistency. We're telling the world that events and characteristics have now been combined into facts; and then introducing a new concept called Event (not to be confused with the old one we used to call Event). Is "Event" supposed to be used only when we think it will be shared? Or is the idea to use it for the primary event in most records? I still wouldn't call the decision to combine Event and Characteristic into Fact to be final until this issue is settled. My vote would still be:
I realize there was some grief in how to classify events vs. characteristics, but the strangeness of having "value" for events seems worse; we have to decide which ones are events anyway to decide on the right UI to display; it is much more natural to talk about events and characteristics in everyday conversations; and having "shared events" in the model makes way more sense if there are also "regular events". |
Actually, I think we're telling the world that there have always been two things that we've called "events". One is the thing that is shared and one is the thing that describes how the thing that is shared applies to a person and relationship. We're proposing disambiguating the two concepts by naming the former "event" and using "fact" to model the latter. I don't think that is self-inconsistent.
No. In the record model, there is no date and place on fact. Everything that has a date and a place on a record is considered to be an event. If a person plays a particular role in an event, then a fact is applied (referencing the event) to account for the role the person played in the event.
In the record model,
Consider, for example, a christening record that contains the name of the child, the names and birth dates of both the father and mother, and a name of a godfather. There would be four personas and three events (christening, birth of the father, and birth of the mother). The christening event would be the "primary" event. All four personas would reference the christening event, but only the child would reference the christening as the "principal" event for the persona. Only the father would reference the "birth of the father" event. Only the mother would reference the "birth of the mother" event.
So I think what you're saying is that you don't like the way that SoRD 1.0 did it. We tried it with SoRD 1.0 and it didn't work out very well. Is that right? |
So in the record model:
Is that the proposal? |
Yeah, pretty much. At least, that's the practical application of the proposal. My hesitation is that part of the proposal is the story that we're trying to tell. What we're really trying to say in the conclusion model isn't that "events are facts", but that "facts" are used to describe stuff that occurred in the life of the person. We haven't (yet) modeled the notion of a "conclusion event". |
In closing #85 @stoicflame wrote:
How was it determined that it wasn't viable? There didn't appear to be any discussion on the thread--it must have all happened out of band. This does a disservice to those following the threads, prevents full involvement, and fails to keep a complete record of how we arrived at decisions. I would like to challenge the decision that #85 is not viable and invite someone to document the rationale here. If we can get all the reasons outlined, that will give people a chance to answer them. @stoicflame alluded to the reasons here:
Important in what way? Every model is an abstraction and a simplification. What we choose to model, and how we choose to model it, depend on how we intend to make use of the information. In a system that is all about places, (e.g. our place authority) places would be entities. In the Record model, they are not. So to say, "events are really important--they ought to be entities" is not enough. You have to be able to make the case for why. I am currently not aware of any use cases that would argue for events being entities. On the contrary, the way we want to consume event data makes it generally more convenient to consume as information "about a persona" or "about a relationship." I made this case in #84. I'll include parts of it here to refresh everyone's memory:
Now, let me give my thoughts about the pull request itself. As a preface, let's go over how these changes envision the model working. There are a couple of possible approaches (which actually highlights one of the main problems that exist with the proposed model):
@stoicflame, I presume you intended Approach 2? The stated purpose of the change is an attempt to bring the Record model and Conclusion model into alignment with each other. Alas, whichever of the two above approaches is taken, this purpose is not accomplished. Now, it may be argued "at least the models are closer; Characteristics are now Facts (and possibly many Events as well)." Unfortunately, the model still suffers from most of the same problems as before, and has a very significant new problem:
|
Woh there. I was commenting about the original pull request, not the commit at df0f216. I assure you that there was no "out of band" decision made. If such a decision had been made, wouldn't it have been just committed to master? If it makes you feel better, I'll open up a pull request for df0f216, but I was trying to consolidate the latest ideas and proposals into a single, newer thread.
Umm... no... I think Approach 1 is more accurate, with the addition that all "roles in events" are described as facts.
Umm... no... FactType is its own set. EventType is its own set. Sure, they share a lot of types, but that doesn't imply any superset/subset relationship.
Umm... no... there's no such thing as "bringing an event from the record world to the conclusion world". We haven't (yet) modeled events in the conclusion world.
Umm... no... just look for the birth facts on the person. Done. What's a "role in event" fact?
Umm... what's "the latter"?
Umm... no... birth events are events. Birth facts are facts. Where's the conceptual dissonance?
Umm... just to be more clear, fact in record model now has a field named "event" that is a resource reference.
What's incompatible? We could put an event reference in the conclusion model, too, but there's nothing for it to point to (yet). So why not wait to add it until we have added the notion of a "conclusion event"?
The majority of facts will be "roles in an event". And to call it a "wart" for the others is a bit exaggerated, I think. It's just an unused field.
Actually no facts have date and place. And, again, the large majority have values. for the others, it's just an unused field. Fact is hardly a "kitchen sink". |
and then
It sure seems like the first statement answers the question.
I think the conceptual dissonance is self-evident in those two statements, because both "birth events" and "birth facts" are talking about the same real birth event. It is probably helpful here to use qualifiers on the word "event" to avoid talking past one another, since we have 3 types of events we're talking about: "shared record events", "facts on persons that tell what role that person played in a shared record event" and "facts on conclusion persons that represent events". Using the word "event" to mean only "shared events in records" is probably contributing to the confusion. |
Thanks @ranbo for chiming in. You have hit upon the crux. A way of asking it is, "What do I call the information that describes where and when a person was born?" In the Conclusion model it is called a Fact of FactType.Birth. In the Record model it is called "Event" of EventType.Birth. Two different model concepts for the same real-life happening. When transversing the two models a mapping has to be made.
Sorry @stoicflame, it appears that I guessed wrong about which approach you meant with the proposed model change. (Again, the fact that such a misunderstanding was possible, is a problem by itself.) In that case, the issues I have with the proposed changes are mostly the same ones I have with things as they stand today. By changing Characteristic to Fact you have alleviated some of the problem, but introduced another: Many FactTypes should never be used in the Record model, specifically those for which there are EventTypes. (Before none of the FactTypes were used because the Record model had no Facts) It will likely be very confusing to users looking at the FactType list to have to grok that, while all the FactTypes are used in the Conclusion model, only some of them are used in the Record model.
I believe you meant that no facts in the Record model have date or place. In the Conclusion model they all do--another incompatibility between the two models. (I didn't catch this until your comment--I assumed Fact would have date and place in both models)
Again, I misunderstood what you were saying was not viable. You can understand my misapprehension: at one point you were saying you would add a "primary" flag to Fact to cover the "primary event" case, the next thing I saw, you had ressurected Event in the model. My other misapprehension--that Events were only for "primary events"--is also understandable because of the rationale you gave for the pull request:
Records are created to chronicle primary events, not other events. Perhaps it would be a good idea to submit a pull request for df0f216 since it is really a very different and competing proposal to this one. |
Please see #99 as the proposal for putting this issue to rest. |
This issue has been put to rest with application of #99. Thanks for everybody's efforts to get us moving forward again. |
Since the merge of
Event
andCharacteristic
toFact
in the conclusion model, a significant schism has existed between the conclusion model and the record model that needs to be mended. This pull request proposes the following concepts to realign the two models.Fact
is a generic piece of historical data applicable to a person or relationship. The fact applies only within the context of the person or relationship that contains it, although it may refer to external resources such as dates, places, and events.Event
is a historical event. It's its own entity, so resources can reference it to model, for example, persons who participated in the event.Event
entity to the conclusion model when those use cases are fleshed out and be satisfied with facts to model things that occurred in the life of a person and relationship.Characteristic
andEventRole
toFact
, and allow theFact
to reference a recordEvent
to describe the event-specific concepts (e.g. date, place). The value of theFact
is used to describe the role or other relation to the event. We add the notion ofprincipal
toFact
in the record model to describe whether the fact is a principal fact of the record.