IPIF / prosopogrAPhI

Tentative way towards a shared API for prosopographical data based on the factoid model (Bradley/Short 2005)
24 stars 6 forks source link

person-refs in factoids enpoint array #15

Closed sennierer closed 4 years ago

sennierer commented 4 years ago

https://github.com/GVogeler/prosopogrAPhI/blob/1a7c2fd57dfaf8cc5425a6583e509b4d581e6914/prosopogrAPhI.yaml#L669

Is it on purpose that the person-refs is defined as array? The definition of the factoid states that "A Factoid is a composite of one or more statements about a person", about a person sounds like it is only about one. I would also argue that the idea of a factoid does not allow to speak about more than one person in one factoid.

GVogeler commented 4 years ago

Correct consideration, I'd say. @gvasold @oldschmetterhand any objections from your test implementation side on this?

GVogeler commented 4 years ago

Although, theoretically you can link a statement from one source to several persons: Gustav und Paul were members of the staff 1880-1885. (Memoirs of W.S., 1910, p. 13) :

Factoid: {
person-refs: ['@id': 'gustav1', '@id': 'Paul1'],
statement-refs: ['@id':'a2hph23'],
source-refs: ['@id': 'wsmemoirs1910-13']
}

But we don't have this in the definition currently, so we're free either to change descriptive definition of factoid or change the technical model. See https://github.com/GVogeler/prosopogrAPhI/commit/940a275443b94162044099c1c12647c516513ceb for a proposal for the technical change.

gvasold commented 4 years ago

I understand this idea of combining persons or using shortcuts is tempting but I think it makes the mental model for consuming the api unnecessary complicated. And even worse: I'm worried that allowing this kind of shortcuts 1) leads to ambiguity and 2) (not yet fully clear about that at the moment) might result in factoids which are not stable but depending on their context and request context. So I'd go with @sennierer and would even question if sourceRef https://github.com/GVogeler/prosopogrAPhI/blob/1a7c2fd57dfaf8cc5425a6583e509b4d581e6914/prosopogrAPhI.yaml#L672-L673 should be an array, because from my understanding a factoid is a specific interpretation of what one source says about one person and having many factoids is less painful with the new model than dealing with the additional complexity.

sennierer commented 4 years ago

I agree with @gvasold: As long as only one of person(s), statement(s) and source(s) is an array you know that all the e.g. statements in the array belong to the one person mentioned and were derived from the one source mentioned. If we have two arrays this alignment is no longer distinct. So I would go with @gvasold suggestion and also make source-ref an object rather than an array of objects.

Schiller-Stoff commented 4 years ago

From the my point of view (as API consumer) an object or string reference would be a bit easier to handle. I do also agree with @gvasold and @sennierer