TEIC / TEI

The Text Encoding Initiative Guidelines
https://www.tei-c.org
Other
279 stars 88 forks source link

an <object> element #327

Closed TEITechnicalCouncil closed 5 years ago

TEITechnicalCouncil commented 13 years ago

From the meeting of the TEI Ontology SIG at the members meeting 2011-10-14.

Just as we now have <place>, <person>, <event> and <org>, we suggest that the TEI needs an <object> element with the same semantics, content model and placement (mutatis mutandis) as <place> or <person> (this means a corresponding <listObject> in model.biblLike). It would be used to create authority lists of identifiable physical objects (eg Excalibur, a statue of Augustust, a copy of the first folio, a dress worn by Queen Elizabeth, a mouse trap). One might regard it as a general purpose replacement for <msDesc>. It is NOT a place to record classes of objects ("sword", "art work" etc).

Original comment by: @sebastianrahtz

[Edit: Later Council deliberations decided it was better to base this on msDesc (as a specific type of object) rather than person/place/org]

TEITechnicalCouncil commented 9 years ago

This issue was originally assigned to SF user: rahtz Current user is: sebastianrahtz

TEITechnicalCouncil commented 12 years ago

We're really straying into museum country here, of course. But why not.

Original comment by: @lb42

TEITechnicalCouncil commented 12 years ago

Original comment by: @lb42

TEITechnicalCouncil commented 12 years ago

I second this request. It's not about museums but physical objects in a text!

Original comment by: @peterstadler

TEITechnicalCouncil commented 12 years ago

Council agrees to this proposal and asks the SIG to draft revisions to the Guidelines (similar to a briefer version of http://www.tei-c.org/Activities/Council/Working/tcw21.html ) with examples and summary of content models for the following:

a) create <listObject> in model.biblLike, which contains <object> elements (cf. <listPlace> and <place>), and add prose Guidelines about use of this for physical objects, not classes of objects.

b) create <objectName> (cf. <placeName>), and add prose Guidelines about use of this for referrents to physical objects, not classes of objects.

Council will consider the formal proposal.

Original comment by: @kshawkin

TEITechnicalCouncil commented 12 years ago

Council should remind the SIG that we are waiting for a proposal.

Original comment by: @jamescummings

TEITechnicalCouncil commented 9 years ago

Sebastian/Torsten to prod SIG for proposal.

Original comment by: @emylonas

TEITechnicalCouncil commented 9 years ago

Original comment by: @lb42

jamescummings commented 6 years ago

Reopening and self-assigning. I might come up with a strawman proposal for <listObject>, <object>, and <objectName> as discussed at 2017 Victoria Face to Face. Note that this might help the physical object aspects discussed by Christian-Emil Ore but the Conceptual Objects should be handled separately, on a separate issue.

schassan commented 6 years ago

Mea culpa first of all, having taken over the issue a long time ago but not having finalised it. But, as I'm still interested: Do you remember I made a proposal once which was based on a more general "copy" of <msDesc>? I would be happy to contribute to the discussion and re-submit my proposal as it had been developed so far.

jamescummings commented 6 years ago

Hi @schassan, at the 2017 Victoria Face to Face I volunteered to revive and at least produce a strawman proposal for those three elements. This was in the context of discussion with Christian Emil Ore about furthering possibilities of ontological improvements to the TEI. (So in this case 'object' is meant as physical object, not conceptual object.) So yes, any proposal that you had already would be useful in preparing a new version of it. (Feel free to send direct to me if you wish, and I'll try to incorporate it into mine, and send the result back to you for further comment.)

arojascastro commented 6 years ago

Do you have any updates on this? Thanks.

jamescummings commented 6 years ago

Apologies for the delay. I've made my first attempt at an object element for physical objects. This is mostly based on msDesc but also the other named entity objects like person/place/event. I've done this in the jamescummings-object branch.

In particular this would introduce 3 new elements: objectName, listObject, and object. These would function with almost identical relational semantics to the persName/listPerson/person or placeName/listPlace/place elements but about physical objects. I've also included a new model class model.objectLike since that has parity with all the existing similar things.

To be clear, what I'm intending to do here is give a way for people to describe objects (text-bearing or otherwise) with the minimal number of changes to the existing TEI but with the maximal amount of expressiveness.

Please see https://github.com/TEIC/TEI/blob/jamescummings-object/P5/Source/Specs/listObject.xml https://github.com/TEIC/TEI/blob/jamescummings-object/P5/Source/Specs/objectName.xml https://github.com/TEIC/TEI/blob/jamescummings-object/P5/Source/Specs/object.xml (and the very minimal https://github.com/TEIC/TEI/blob/jamescummings-object/P5/Source/Specs/model.objectLike.xml) for the spec files.

The content model for object is:

 <content>
    <sequence>
      <classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
      <classRef key="model.nameLike" minOccurs="0" maxOccurs="unbounded"/>
      <alternate>
        <classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
        <sequence>
          <elementRef key="physDesc" minOccurs="0"/>
          <elementRef key="history" minOccurs="0"/>
          <elementRef key="additional" minOccurs="0"/>
        </sequence>
      </alternate>
      <alternate minOccurs="0" maxOccurs="unbounded">
        <classRef key="model.noteLike"/>
        <classRef key="model.biblLike"/>
        <elementRef key="idno"/>
        <elementRef key="linkGrp"/>
        <elementRef key="link"/>
      </alternate>
    </sequence>
  </content>

This is similar to msDesc except without the required msIdentifier section (since not all objects will have identifiers) The use of model.nameLike though means that both objectName and idno will be available (amongst other names) at the top to identify the object. Then either paragraphs or physDesc, history, and additional that were originally provided for msDesc. The block at the end (note, bibl, etc.) is to keep parity with the event element.

An example of using this might be:

  <listObject>
        <object xml:id="AlfredJewel">
          <objectName>Alfred Jewel</objectName>
          <idno type="Ashmolean">AN1836p.135.371</idno>
          <idno type="wikipedia">https://en.wikipedia.org/wiki/Alfred_Jewel</idno>
          <physDesc>
            <p> The Alfred Jewel is about 6.4 cm in length and is made of combination of filigreed <material>gold</material>
              surrounding a polished teardrop shaped piece of transparent <material>quartz</material>. Underneath the rock crystal
              is a cloisonné enamel image of a man with ecclesiastical symbols. The sides of the jewel holding the crystal in
              place contain an openwork inscription saying "AELFRED MEC HEHT GEWYRCAN", meaning 'Alfred ordered me made'. </p>
          </physDesc>
          <history>
            <origin>It is generally accepted that the Alfred Jewel dates from the <origDate>late 9th Century</origDate> and was
              most likely made in <origPlace>England</origPlace>. </origin>
            <provenance when="1693">The jewel was discovered in 1693 at Petherton Park, North Petherton in the English county of
              Somerset, on land owned by Sir Thomas Wroth. North Petherton is about 8 miles away from Athelney, where King Alfred
              founded a monastery. </provenance>
            <provenance when="1698">A description of the Alfred Jewel was first published in 1698, in the Philosophical
              Transactions of the Royal Society.</provenance>
            <acquisition> It was bequeathed to Oxford University by Colonel Nathaniel Palmer (c. 1661-1718) and today is in the
              Ashmolean Museum in Oxford. </acquisition>
          </history>
        </object>
      </listObject>

I do not suggest that this is a perfect implementation of an object element, but given this ticket has been around since 2011 (and was discussed for many years before then), I think that this is a good strawman that could undergo minor tweaks before being added as is. It also has the benefit of being entirely (except prose in the guidelines and more examples) being implemented in the jamescummings-object branch. Although there are many possible improvements, in the case of 'object' I'd rather see something get in the Guidelines and then be refined and added to than the quest for perfection prevent it.

schassan commented 6 years ago

Dear James, thank you very much for this!

Only that I wonder if it would be better to stick closer to the content model of <msDesc> for the following reasons:

  1. How one should describe the owner or whereabouts of an object? Each object will have these attributes and it should be possible to describe them, even for virtual objects or those who appear only in literature such as the often cited "Excalibur". I think this way of distinguishing the parts of the identification of an object is very crucial for any description of an object.

Remark: I think it would be nice to have such a distinction in the other entity-related elements (person, place, event, etc) as well, in order to group the identifying elements (persName, idno, etc) and thus separate them from other attributes the entity has.

  1. Where would be the place to describe the intellectual content of an object? We didn't decide in the WG whether we wanted to restrain model to the description of objects that carry texts (in a broad sense) or allow for the description of objects of any kind? But to have no place to describe the (textual) contents wouldn't suit the Text Encoding Initiative, would it?

  2. Each object could probably described concerning its parts, such as an altar and its wings or a crown and its jewelry, etc. Dropping the possibility to do so would limit the content model to a great extent.

jamescummings commented 6 years ago

Hi @schassan,

Thanks for the swift response. In answer to your questions:

  1. I didn't want to impose the strict constraint of msIdentifier, especially not making it required as in msDesc because that would be very limiting for some people depending on the objects they want to describe.

I believe you can have that structure with just using model.nameLike. Either you could have all the elements separately and uncontained, which I recognise you don't like, or you could embed them in something like . The benefits of doing it this way include not forcing the rigorous conditions of msIdentifier on someone who just wants to describe a few objects that aren't museum-type objects. Not only that, but the flexibility of it not necessarily being an institution which 'has' this object but an individual, or The drawbacks are some limitations in other aspects. For example if we did:

<orgName type="repository">
        <country>United Kingdom</country>
         <region>Oxfordshire</region>
         <settlement>Oxford</settlement> 
         <orgName type="institution">University of Oxford</orgName>
         <orgName type="repository">Ashmolean Museum</orgName>
         <name type="collection">English Treasures</name>
         <idno type="Ashmolean">AN1836p.135.371</idno>
         <objectName>Alfred Jewel</objectName>
</orgName>           

You see here, of course, the flaw.... that orgName does not allow institution, repository, or collection so I've used orgName or name. I suppose I could have wrapped it in placeName instead. If the Jewel was being carried by a character in a story, we could have used persName. If there were a non-manuscript/TBO-specific way to have a grouping element for the standardised location/identification block of information, that was flexible and optional, then I'd go for that.

Compromise: What if I re-introduced msIdentifier as an optional possibility near the top? That way people could use it if they wanted to or not if they didn't.

  1. I had intentionally left out msContents, which presumably is what you want me to add back in, since I wasn't thinking people would use it in that way. I was concentrating on the physical aspects. I suppose you are right though, that people may wish to do that.

  2. Are you suggesting that object should self-nest? I suppose that makes sense, an object is possibly made up of other objects after all. I can add that in, my preference would be at the bottom. I'm assuming we don't want a stricter divLike hierarchy of tessalation? i.e. that objects may contain object* but only if they don't have the msContents/physDesc/history in that object?

schassan commented 6 years ago

Hi @jamescummings,

  1. I don't think the content model of msIdentifier is very strict as it only needs to contain one of all the elements allowed in it. Agreed, some combinations are more frequent than others, but an idno or just a msName would do. Which is indeed the very same as you argued for.
  2. If I think of the use and role of msIdentifier I never think of it as a manuscript or TBO alone but of a very general idea that each thing in the world needs to be identified by a name or anything in order to be able to speak about it.
  3. Making the identification required is not very challenging, is it? Or could you think of a person without a persName or idno contained? Would that make an sense? So I would argue for a stricter content model of the other entity-releated elements rather than loosening the one of msDesc or object.
  4. Looking at the content models of persName, orgName etc, I would dare say they take the place of msIdentifier, with idno and more allowed within.
  5. Concerning your compromise: Could you think of a dictionary entry that doesn't start with the lemma? Could you think of an ography that doesn't name the entity first? The alternative will always be to have the unstructured description:

(model.pLike+ | ( ... ) * )

  1. Concerning your no. 3: In the course of msDesc we didn't go for nesting msDesc but separated msDesc from msPart. In other areas nesting is used (msItem, list, etc). But I think we need to consider that the object can consist a) of other objects or b) can be divided into parts that can be described in detail. Both of them I would allow only at the bottom, I agree with you here. But again: I am very much in favour of keeping the msPart idea here: Each of the separate objects or object parts can have aspects of its own, to be described as if it were a whole object, thus repeating the overall structure of object (aka physDesc, history, etc)
jamescummings commented 6 years ago

All good points. This would require another change then that objectName would have to be allowed inside msIdentifier. The other option is to invent a more general objectIdentifier or something. In general just adding objectName to msIdentifier seems easier. (Though there are those that will bristle against the use of msDesc-specific things for objects and vice-versa.)

  1. You are right... though with the -ographies there isn't the wrapper element. I was just proposing the same system here, or having it available as an optional component.

  2. I think that objects (like places) should be able to nest. I think there is a difference between objects nested inside objects and msPart/msFrag because of the unique descriptions of part relating to composite manuscripts and frag relating to fragments. I don't really see the need for an objectPart or objectFrag element rather than just a nested object (at the bottom).

I'll try to implement this in the branch and get back with a test schema.

jamescummings commented 6 years ago

Ok, I've implemented the above. You can link directly (in oXygen or other editors) to https://raw.githubusercontent.com/TEIC/TEI/jamescummings-object/P5/Exemplars/tei_object.rng as a schema (turning on schematron constraints as well). Or in oXygen paste in something like:

<?xml-model href="https://raw.githubusercontent.com/TEIC/TEI/jamescummings-object/P5/Exemplars/tei_object.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://raw.githubusercontent.com/TEIC/TEI/jamescummings-object/P5/Exemplars/tei_object.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>

This has the objectName, listObject, and object elements. It has changed msIdentifier to allow objectName (alongside msName ... it hasn't forbidden having both). The spec file is at https://github.com/TEIC/TEI/blob/jamescummings-object/P5/Source/Specs/object.xml Including an example whose msIdentifier looks like:

<msIdentifier>
            <country>United Kingdom</country>
            <region>Oxfordshire</region>
            <settlement>Oxford</settlement>
            <institution>University of Oxford</institution>
            <repository>Ashmolean Museum</repository>
            <collection>English Treasures</collection>
            <idno type="ashmolean">AN1836p.135.371</idno>
            <idno type="wikipedia">https://en.wikipedia.org/wiki/Alfred_Jewel</idno>
            <objectName>Alfred Jewel</objectName>
          </msIdentifier>

I've allowed object to be nested at the bottom like place rather than some containing objectPart or something.

Let me know what you think.

jamescummings commented 6 years ago

Note, in a different ticket @lb42 mentioned @sebastianrahtz's work on this at https://github.com/TEIC/TEI/blob/dev/Documents/Object/object.odd I didn't actually look at this until now, where it is clear Sebastian was viewing it in the named entity kind of way like places. Although with this implementation I've gone more towards the msDesc descriptive form for object, I think this will still cope with all his use cases. The one exception is the more simplistic 'trait' and 'state' available in the other named entities. I wonder if these should be present somewhere in an msDesc as well.

But to try out a couple of his examples embedded in that ODD I would do them in this new proposal as:

<listObject>
          <object n="1" xml:id="BO_1">
             <msIdentifier>
                <country>UK</country>
                  <!-- Note the current schematron rule in msIdentifier forces idno not to be first. -->
                <idno type="CONT">703</idno>
                <idno type="SMF">123</idno>
                <idno type="SQU">D6</idno>
              </msIdentifier>
              <physDesc>
                 <p>Square flat piece of bone with hole in centre and circular incised pattern around hole; 2. 1 x 1. 9 x 0. 4</p>
              </physDesc>
          </object>

          <object xml:id="ROYALGEORGE">
             <msIdentifier>
                <country>UK</country>
                <objectName>HMS Royal George</objectName>
              </msIdentifier>
             <!-- How to do <label>Warship</label> use @ana? -->
             <history>
                <p>
                   <date type="start" when="1756"/>
                   <date type="end" when="1782"/>
                   <!-- 
                   Is this the right way to do: 
                   <event type="start" when="1756"/>
                   <event type="end" when="1782"/>
                   Would it be better if after msIdentifier we were allowed to put events, states, and traits?
                   -->
                </p>
                <p>
                   <objectName>HMS Royal George</objectName> was a 100-gun
                      first-rate ship of the line of the <orgName ref="#Royal_Navy">Royal
                         Navy</orgName>, built at <placeName
                            ref="#Woolwich_Dockyard">Woolwich Dockyard</placeName> and launched
                      on <date when="1756-02-18">18 February 1756</date>. The largest
                      warship in the world at the time of launching, she saw service
                      during the <ref target="#Seven_Years%27_War">Seven Years' War</ref>
                      including being Admiral <persName ref="#Edward_Hawke">Sir Edward
                         Hawke</persName>'s flagship at the <name type="event"
                            ref="#Battle_of_Quiberon_Bay">Battle of Quiberon Bay</name> and
                      later taking part in the <name type="event"
                         ref="#Battle_of_Cape_St._Vincent">Battle of Cape St
                         Vincent</name>. She sank undergoing routine maintenance work whilst
                      anchored off <placeName ref="#Portsmouth">Portsmouth</placeName> on 
                      <date when="1782-08-29">29 August 1782</date> with the
                      loss of more than 800 lives, one of the most serious maritime losses
                      to occur in British waters.
                </p>
             </history>
             <bibl><ptr target="http://en.wikipedia.org#HMS_Royal_George_(1756)"/></bibl>
          </object>
         </listObject>

Note that these had event, and traits, etc. which we don't have in the same way in an msDesc formulation (hence my original thought of trying to merge these and the other named entities). How it is done here seems like a bit of a fudge.

I'm wondering if there should be a place for event, trait, state, etc. inside msDesc? Or if event should be added to history as an alternate, and state/trait allowed inside msContents?

jamescummings commented 6 years ago

For up to date schema with objectName, listObject, and object elements at https://raw.githubusercontent.com/TEIC/TEI/jamescummings-object/P5/Exemplars/tei_object.rng

peterstadler commented 6 years ago

Per discussion at Tokyo f2f action on @jamescummings to merge the current changes into dev and send an email to TEI-L asking for review and addition of "widely understood objects" and texts that reference them.

schassan commented 6 years ago

@jamescummings, in your proposed schema you use msIdentifier within object, which might be confusing users. Why not add an element objectIdentifier (or objIdentifier) with a content model similar to msIdentifier in order to get rid of the "ms" in the name which disturbed those who wanted to describe something else than manuscripts anyway?

jamescummings commented 6 years ago

@schassan sounds like a good idea ... I was trying to keep it down to minimal changes but that makes it easy and means I can remove the silly msIdentifier order restriction as well. Or is there a general non-specific idno+other identifiers like collection kind of term that would stop us repeating the mistake of calling it something identifier?

identifierBlock, identifiers, identifierGrp, identificationStmt

or extend the content model of location to add collection, repository etc? (It isn't far off) .... thoughts?

I'll do all this before merging into Dev and asking TEI-L for more examples and tests.

jamescummings commented 5 years ago

Ok at long last I've merged this into dev as requested. (Actually, I just stashed my changes, destroyed the branch and then put directly into dev, but whatever.) Remembering that this is for physical (not conceptual) objects, and to provide descriptions on them based on an msDesc approach.

I have put in placeholder guidelines prose (first draft, unedited, better examples needed, not proofread, etc.) Placeholder Guidelines prose about objectName: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ND.html#NDOBJN

Placeholder Guidelines prose objects: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ND.html#NDOBJ

The reference pages for newly added elements are: objectName: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ref-objectName.html

listObject: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ref-listObject.html

object: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ref-object.html

idGrp (the generalised grouping alternative to msIdentifier): https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ref-idGrp.html

Minor changes made to descriptions of things like msContents, physDesc and others adding 'or other object' or similar. e.g. https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/doc/tei-p5-doc/en/html/ref-physDesc.html

Schema: If you want to test it there is a tei_all schema with it: https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/custom/schema/relaxng/tei_all.rng

If you use oXygen, the xml-model lines:

<?xml-model href="https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>

Needed:

martindholmes commented 5 years ago

Thanks for all this work! It looks great.

I did smile a bit to see:

<objectName> (name of an object) contains the name of an object.

I wonder if there are any synonyms that might relieve the repetition a bit?

martindholmes commented 5 years ago

Nit-picky thing:

The use of objectName by itself does not categorize the object referenced and this may be done further with the type and subtype attributes or through reference to a taxonomy.

If it does not categorize the object, then you can't categorize it "further" by using the attributes. How about:

The use of objectName by itself does not categorize the object referenced, but this may be done further with the type and subtype attributes or through reference to a taxonomy.

martindholmes commented 5 years ago

More nit-picks: comma splice:

The objectName element is intended for named objects, where an object is mentioned through a descriptive phrase but not named explicitly the rs element should be used.

Should be:

The objectName element is intended for named objects; where an object is mentioned through a descriptive phrase but not named explicitly the rs element should be used.

(Or a period if you don't like semi-colons.)

Here:

Objects may have names, in which case the objectName element may be used to encode those names, but they may not be named.

The second use of "may" seems ambiguous to me. Perhaps "...may be unnamed"?

The object element is seen as a more general descriptive form of the msDesc element.

Why "is seen as"? Why not just:

The object element is a more general descriptive form of the msDesc element.

We ought to be confident about it, surely.

it has the option of paragraphs or if the msdescription module is loaded msContents, physDesc, history, and additional for descriptive metadata about this object.

Do you think commas would be good here?

it has the option of paragraphs or, if the msdescription module is loaded, msContents, physDesc, history, and additional for descriptive metadata about this object.

jamescummings commented 5 years ago

@martindholmes all great points. The text there was written swiftly today and needs major revisions. If you have suggestions of additional things this section should cover do let me know. I'll try to implement your suggested changes soon. Thanks!

martindholmes commented 5 years ago

Nit-picking is easier than drafting. :-)

Reading the text reminded me of the slight oddity in the fact that object is the more abstract thing and msDesc the more specific, but the element names tend to include ms. In my P6 fork, all these msThings will be renamed objThings so the hierarchy makes sense, and the module will be objDescription. :-)

jamescummings commented 5 years ago

Yes. I replaced msIdentifier with idGrp because that seemed useful more generally. But yes things like msContents I didn't because where would you stop? The idea is to get something in and then have FRs to change it. I changed some descs that were solely MS driven because they also exclude early printed books which msDesc is used for. A bug fix might be to do that for all msDesc descendents. But yes, hard to interpolate the general using elements of the specific.

lb42 commented 5 years ago

if "idGrp" is meant to be a group of identifiers: (cf listGrp, personGrp, etc) oughtn't it to be "idnoGrp" ?

lb42 commented 5 years ago

Having read what it is, it's clearly NOT a "grp" (you can't have a group of one member, can you?) What's wrong with calling it "objectIdentifier" ?

jamescummings commented 5 years ago

Hi @lb42,

My thought was that this, as a set of identifiers and locators about a particular object or resource, might be applicable elsewhere. Hence not wanting it to be specific to 'object'. As to whether it could be a Grp or not, I had read:

In TEI usage, a group is distinguished from a list in that the former associates several objects which act as a single entity, while the latter does not. For example, a linkGrp combines several link elements which have certain properties in common, whereas a listBibl simply lists a number of otherwise unrelated bibl elements.

an idGrp as exemplified groups several objects which act as a single entity, identifying the object in question. So I thought Grp would be ok for that, but I may have misunderstood. It is meant to be a more general (less restricted) version of msIdentifier in which you may have any combination of geographical/respository locating information or idno, identifiers, etc. depending on the type of object or resource being identified or what sort of information one has about it.

I had considered a variety of other names: identifierBlock, identifiers, identifierGrp, identificationStmt, identGrp, idBlock, idStmt, etc.

Any preferences of better suggestions for something that then isn't so specific to object?

The prose and definitions etc. here are all very tentative at the moment, as seen by all the helpful corrections suggested by @martindholmes that I'll implement soon.

Thanks!

jamescummings commented 5 years ago

I believe I've done the proofreading changes suggested by @martindholmes at 916cdba37cf1779f602e026edbf248a66df8a4fa and dab427fd0670794ae81952d12193220d121ff4ed. The text clearly needs to be expanded more, with some additional examples.

lb42 commented 5 years ago

But isn't the whole point of "object" that it is generic? What other things might you want to supply multiple identifiers for? All the ones I can think of (person, place, etc.) permit multiple idno children for that purpose, so I see no advantage in an additional wrapper. Also your proposed element contains some things which are not (in isolation) identifiers for the object, e.g. so it's not a group of ontologically equivalent beasts at all!

jamescummings commented 5 years ago

@lb42 you have a point that it isn't a group of things which are equivalent; it is a collection of things which in aggregate tell you more information about this single object (its location or identifying classmarks, identifiers, etc.) Is that a block? A Stmt? a Desc? Or should it just be something by itself? It wouldn't be right, for example, to repurpose 'location' by adding idno/altIdentifier/etc. to it, because that really is about geographical/geo-political location, and all you might have for an object is an idno.

As you can guess, although I thought about it quite awhile, the idGrp suggested element name is the bit I was least sure about.

martindholmes commented 5 years ago

@lb42 's point that we don't group <idno>s elsewhere so there's no need to group them here seems convincing to me; unless <msDesc> also gets the <idGrp> element, it looks like a bit of an anomaly.

jamescummings commented 5 years ago

@martindholmes Ok, it isn't a group, but we do need a wrapper. This is meant to be a general version of msIdentifier as a container for a potentially weird and disparate set of elements all providing identifying and/or locating information about the object in question. Having them floating all at the top of the msDesc-like object would be even more of an anomaly. The question, in my mind, isn't whether we need it, just what it should be called.

You'll notice it is also mandatory. You can't talk about an object unless you know something about it (an objectName, a vague location of country, maybe a repository, or any of these and more). You might only have a name 'Excalibur'. It would seem wrong to have zero-or-more each of idno altIdentifier collection institution msName repository bloc country district geogName objectName placeName region settlement just floating there. There is also a schematron rule forcing it to have at least one child.

I'm not against msDesc also getting idGrp, idBlock or whatever we call it, though seems strange for it to have both that and msIdentifier. (idGrp is just that but with the restrictions of order etc. removed).

martinascholger commented 5 years ago

Thanks for that, @jamescummings!

I think it would be good to emphasize that this is to encode physical objects, e.g. in the Specs for objectName:

(name of an object) contains a proper noun or noun phrase used to refer to an object.

(name of an object) contains a proper noun or noun phrase used to refer to a physical object.

and in section 13.2.4 Object Names:

the names of objects may be marked up simply with the name element.

the names of physical objects may be marked up simply with the name element.

For the idGrp: if I understand this correctly the element should not be called objectIdentifier (following the msIdentifier) to allow a more flexible use. Similarly, if we would introduce contents, parts etc. for objects, we would avoid the 'object' in the name, right? What about calling it identifier, as James suggested?

martindholmes commented 5 years ago

@jamescummings @martinascholger I was just about to ask why not call it <objIdentifier>, so I must have missed a discussion that rejected that for some reason. What was the reason?

lb42 commented 5 years ago

Am I right in thinking that the contents of this whatever-its-called may be an unholy mixture of names or identifiers for it (the object) (e.g. "Excalibur", "The Red Book of Hergest",) and of names or identifiers which mifght be combined with others such to make such an identifier but don't individually name the object at all? (eg. "Durham Cathedral", "Tomb of the Venemous Bede") ? I do hope not.

jamescummings commented 5 years ago

@martinascholger Thanks for the comments. Does suggesting 'physical object' in any way detract from it being used for fictional objects (Excalibur)? I guess that is a fictional physical object, so maybe not.

@martindholmes the point with objIdentifier (or whatever we call it) is for it to be a general version of msIdentifier. The idea of generality here isn't that it might apply to any object, but that this might be a useful thing outside of objects entirely. i.e. why create an element that collects a bunch of identifying information and then explicitly tie it only to objects. If consensus is that it is better to tie it only to objects and won't be useful in named entities or anywhere else, then fine.

@lb42 How is that different from msIdentifier? Compare their content models: Current idGrp (or objIdentifier or whatever)

<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">
  <classRef key="model.placeNamePart"/>
  <elementRef key="institution"/>
  <elementRef key="repository"/>
  <elementRef key="collection"/>
  <elementRef key="idno"/>
  <elementRef key="msName"/>
  <elementRef key="objectName"/>
  <elementRef key="altIdentifier"/>
 </alternate>
</content>

vs msIDentifier:

<content>
 <sequence>
  <sequence>
   <classRef key="model.placeNamePart"
    expand="sequenceOptional"/>
   <elementRef key="institution"
    minOccurs="0"/>
   <elementRef key="repository"
    minOccurs="0"/>
   <elementRef key="collection"
    minOccurs="0" maxOccurs="unbounded"/>
   <elementRef key="idno" minOccurs="0"
    maxOccurs="unbounded"/>
  </sequence>
  <alternate minOccurs="0"
   maxOccurs="unbounded">
   <elementRef key="msName"/>
   <elementRef key="objectName"/>
   <elementRef key="altIdentifier"/>
  </alternate>
 </sequence>
</content>

They contain the same elements, the difference is that the unnecessary sequence enforced in msIdentifier is not required in objIdentifier/whatever. (Note this is the msIdentifier content model from dev ... so I've added objectName as a possibility there... perhaps that should be in explicit alternation with msName? Giving the ability for people to use msDesc/msIdentifier/objectName instead of msName (for say 'Gutenberg Bible')... maybe unnecessary.)

Enjoying all the comments, keep them coming and if we can get these problems sorted this should be a good addition.

martindholmes commented 5 years ago

@jamescummings Sounds like it should be called <infoSet> or something like that. It's just a grab-bag of any old info elements, eh?

schassan commented 5 years ago

@jamescummings, why should the content model of idGrp (or objIdentifier or whatever) contain msName at all? If you/we plan to keep the msDescription module alive and not plan to deprecate it over time, manuscripts will still be described using the msDescription module whereas other objects will be described using the new one. In that case I would consider them to be mutually exclusive, at least in respect to the content model and the elements used. objectName would be a more general form of msName and it would be sufficient to allow for the former in the content model?

jamescummings commented 5 years ago

@martindholmes Hrmmmm.... I think something better than that must be possible. ;-)

@schassan That is a point. I thought in a parallel way to include objectName into msIdentifier and msName into objectIdentifier (or whatever) as a way to make it easy to deal with edge-cases.

There is also the possibility of someone who is generally categorising objects, but one and only one of them happens to be a manuscript and so has an msName. Or vice-versa. They may wish to persevere with the generalised form of markup for objects and not build special 'or msDesc' into their processing. (Ok, not a great argument... but that was what was going through my head when I included them in each other's content model.)

Any more suggestions on generalised idGrp/objIdentifier names?

Any more suggestions on useful examples? Especially those which are less western-anglo centric?

jamescummings commented 5 years ago

Hi all,

To summarise the work done so far:

Still pending:

Happy to receive suggestions for modifications, better prose, additional examples, etc.

If you want to test this out in oXygen XML Editor paste these two lines instead of the standard TEI xml-models and that should work.

<?xml-model href="https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>

At the moment though you may have to go into Options -> Preferences -> Network Connection Settings -> HTTP(S)/WebDAV and set it to accept invalid self-signed HTTPS certificates.

sydb commented 5 years ago

@hcayless & @martinascholger will be reviewing @jamescummings ’s work by early Jan.

jamescummings commented 5 years ago

Work has been approved and will be in next release of Guidelines. Closing this issue. Further refinements, improvements, and additional related elements should be filed as additional issues.

To summarise the work done:

I plan to update the prose after the 3.5.0 release with a comparison of when you might use place vs object, using the example I encoded at Martina's suggestion of the Central Library at UNAM.

Closing issue after 2656 days or 7 years, 3 months, 6 days.