View Source

{jira:RS-910}: mockup
{jira:RS-911}: implementation
{toc}

h1. Introduction

This is a simple mockup of RForms for BM data. It is a data mapping that shows the set of fields, their sequence and grouping.
- (!) TODO BM: review data grouping and label wording
- (!) TODO BM, Anna: [BM RForms Test] with some objects
- The forms are fashioned after BM Collections Online (COL), but the implementation won't try to mimic the COL look & feel.
- It is not a graphic design. Various UI looks can be found in [Data Display Discussion], but this was not finalized and we have no time in RS3.5 to implement a different look.

h2. Production Notes

Production notes for [#BM RForm]:
- took the BM RDFer generation script (config.xml, 154Kb) and all auxiliary scripts
(bibliography-config.xml biography-config.xml config-nocomment.xml dimensionunit-config.xml flat-config.xml image-config.xml inline-thesauri-config.xml thesaurus-config.xml)
- wrote script BM-properties.pl to extract used classes and properties to BM-properties.xls.
Analyzed for potential leaks (eg object->collection->all other objects).
Made decisions which BM props to use, and which to
- removed commented-out statements (117Kb)
{noformat}perl -e "$/ = undef; $_ = <>; s{<!--.*?-->}{}sg; print" config.xml > config-nocomment.xml{noformat}
- wrote script BM-rform.pl to extract all triples from config-nocomment.xml (25.6Kb, 527 URIs+triples)
- added options to discard some uninteresting triples (16.6Kb, 368 URIs+triples)
{noformat}
-p discard statements about mus_obj_parts
-d discard display_wraps
{noformat}
- grouped statements (eg all statements that generate P1_is_identified_by are grouped together)
- reduce further by abstracting a bit more (150 triples)
- post bugs throughout (sprinkled in footnotes throughout the page)

h2. Reference for BMO Documentation

I have fairly good confidence that this page covers all intricacies of the mapping, and covers all property paths.
- The BMO documentation {jira:RS-695}
should be checked against the prop paths (left column) listed below.
- Note that for some paths we use CRM prop instead of specific BMO subprops, but I think that I've mentioned all BMO subprops in footnotes
- This is complete re Objects, but not complete re Terms (we use only the prefLabel of each term; additional term info such as Person profession, nationality and dates is not covered)

h2. Notation and Punctuation

The first column of [#BM RForm] below defines the data
- ">>" indicates the level of nesting of data
- We use numerous footnotes (\{footnote} macro) that are printed at the end of each section (\{display-footnotes} macro)

The other columns give some examples, including:
- section headers: hard-coded labels
-- TODO Jana: How to skip these headers when there is no data?
- subsubsubsection headers: used only to ease comprehension and provide hyperlink anchor: not displayed on the form\!
- rdfs:labels of properties, as explained in [#Labels]
- which fields to combine in one line
- what punctuation to use (eg table cell, colon or parentheses)
-- (!) Punctuation is subject to discussion and optimization
-- TODO Jana: How to skip the punctuation when there is no data?

In many cases I've mixed & matched data from several objects, so don't expect the data to make full business sense



h2. Annotation Points

- Dominic dislikes that there are too many Annotation Points (APs) in the RKD forms. If a reduced set as decided here works out ok, we'll go back to RKD forms and reduce the APs there as well.
-- Currently the RForms generate an AP for every statement. But as you can see below, there are many statements with compacted or no visual representation at all.
TODO Jana: discuss with Dominic
- Unless and until BM implements [BM Association Mapping#Association Terms and Concept Schemes], users won't be able to propose New Values consistent with the old values
-- Watch {jira:RS-716} for status
-- See in particular [this comment|https://jira.ontotext.com/browse/RS-716?focusedCommentId=85471&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-85471] for details
- Vlado suggests to have one AP per "line" in the examples below (i.e. at the incoming property of every important node)
- When decided, put a (*y) below for every AP

h2. Redundancy Removal

The data about an object is fetched with Inferred triples (rdfs:subPropertyOf and owl:inverseOf reasoning).
So the forms don't use all BM extension properties: when the corresponding CRM super-property does the same job.
This also means the repository returns some redundant data, which is handled by [Complete Museum Object#Remove Redundant Triples]:
- Remove inferred superproperties of explicitly stated and requested subproperty.
Eg if P48_has_preferred_identifier (subproperty) is requested, the same identifier value is *not* returned as P1_is_identified_by (superproperty)
- Remove direct (shortcut) property if there is longcut path through EX_Association (see [BM Association Mapping#Code In Reified Association]), eg:
{noformat}
<obj/acquisition> a E8_Acquisition;
P23_transferred_title_from <person>;
P140i_was_attributed_by [a bmo:EX_Association;
P141_assigned <person>;
bmo:PX_property P23_transferred_title_from;
P2_has_type <thesaurus/acquisition/bequeathed_by>].
{noformat}
will return the statements in EX_Association but not the direct statement P23, since the association has the P23 info plus more (P2)

h2. Display Wrap

PX_display_wrap is a redundant note including " :: " separators. All the text there is supposed to be represented in structured properties.
But it's very useful to display while in "debug mode", in order to check for omissions and inconsistencies (in data or in RS)
- "debug mode": PX_display_wrap missing from properties.txt (0 in BM-properties.xls) =>
RS fetches the literal through superprop P3_has_note and prints it amongst the other P3_has_note.
- "release mode": PX_display_wrap present in properties.txt (1 in BM-properties.xls) =>
RS fetches PX_display_wrap, but doesn't display it anywhere in the rform below, so it suppresses the literal
- TODO Vlado: add P3_has_note in some more nodes, to benefit from this

Examples:
- Acquisition date :: 1876 ::
- Object type :: buckle ::
- Consists of :: bronze ::

TODO Anna: check whether structured representation of this is present in PPA44216.
- Print made by :: Cari, Godisart de ::
- Published by :: Martinet, Aaron ::
- Bibliograpic reference :: De Vinck 10531 ::
- Bibliograpic reference :: IFF 9 ::
- Subject :: satire ::
- Component of series :: Musee Grotesque ::

h2. Property Labels

The examples show the labels of which properties to show
- Print the rdfs:label of most properties (eg P7_took_place_at->"took place at")
-- CRM and RSO have them in data/rdfs-labels.ttl:
{jira:RS-322}
-- BMO is still missing some:
{jira:RS-1135}
- Eg the notation "P7_took_place_at/skos:prefLabel" means to print:
{noformat}took place at: Paris, France{noformat}
-- Print the rdfs:label of P7_took_place_at (assumed\!)
-- Go through P7_took_place_at to a Place thesaurus node, and print its skos:prefLabel
- Do *not* print the labels of:
-- Generic properties: P1_is_identified_by, P2_has_type, P3_has_note
-- Properties that traverse known "empty" nodes (only required by the CRM model, have no useful info)

h2. Class Labels

- Each object has many rdf:type's due to inheritance. It's hard to pick the most specific ones, unless we implement a third kind of [#Redundancy Removal]
- So we prefer to print property names, and the application-specific P2_has_type

h2. Newlines

Some BM fields have newlines in them. E.g. in [this object|http://www.britishmuseum.org/research/search_the_collection_database/search_object_details.aspx?partid=1&objectid=746837]:
- Curator's comments is a whole story.
It's mapped to bmo:PX_curatorial_comment (uses \r\r\n as newline)
- Exhibition History is a list using dashes.
It's mapped to bmo:PX_exhibition_history (uses \r\n as newline)
- PX_physical_description sometimes includes an itemized description (eg all 50 folios included in a folder)
- General notes might sometimes also include newlines.
They are mapped to P3_has_note (and PX_curatorial_comment is also accessed through this property).

Replace all *consecutive* newlines \[\r\n\]\+ in all text fields with a single "<br/>\r\n" on output. RForms displays <br/> as a newline.
{jira:RS-1152}

h1. BM RForm

h2. Title & Description

| P102_has_title/rdfs:label {footnote}multiple: title translation is also mapped here (maybe not the best way...){footnote} | Mus?e Grotesque / Les nouvellistes no.1 |
| bmo:PX_physical_description | Plate 1: two men in vigorous discussion in the street... |
{display-footnotes}

h2. Images of the Object

Images are displayed in:
- separate panel (Images, to be renamed from "Related Content") as thumbnails
- separate tab (Images, to be renamed from "Relations") in bigger size and with additional info: {jira:RS-1267}

Problems with asset descriptions (image notes): {jira:RS-772} \#8:
- When a user attaches an asset in the BM database, the object's PX_physical_description is copied to the image note.
Then it can be edited by the user, but most often is not, so often the asset descriptions are the same as PX_physical_description (i.e. useless)
-- Alternative1: Josh to suppress image notes equals to PX_physical_description
-- Alternative2: Mitac to skip image notes equal to PX_physical_description
-- Alternative3: RForm to skip the note of P138i_has_representation and show only the note of PX_main_representation.
This is the best solution for tab Images, since it's useful to see PX_physical_description there
- Some of the notes are very long (whole sagas), eg description of 50 folios
-- Jana to replace multiple consecutive newlines with a single newline
-- Option: Jana to find a collapsible component, display only the first 1000 chars, and add JS link "More" to show the rest
- These examples are from PRN COC231583, codexid [3152931|http://www.britishmuseum.org/research/search_the_collection_database/search_object_details.aspx?partid=1&objectid=3152931])

| bmo:PX_has_main_representation {footnote}This is the actual URL of the image{footnote}
>P3_has_note \\
>P48_has_preferred_identifier \\
>>P2_has_type/skos:prefLabel \\
>>rdfs:label | !http://www.britishmuseum.org/collectionimages/AN00544/AN00544708_001_m.jpg!\\
Full: Front \\
Asset ID: 544708 |
| P138i_has_representation \\
>P3_has_note \\
>P48_has_preferred_identifier \\
>>P2_has_type/skos:prefLabel \\
>>rdfs:label | !http://www.britishmuseum.org/collectionimages/AN00544/AN00544695_001_m.jpg!\\
Full: Back \\
Asset ID: 544695 |
{display-footnotes}

h2. Identifiers

| P48_has_preferred_identifier \\
>rdfs:label \\
>P2_has_type/skos:prefLabel | has preferred identifier | PPA44216 (Public Reference Number) |
| P1_is_identified_by \\
>rdfs:label \\
>P2_has_type/skos:prefLabel | identified by | 1337054 (Codex ID) |
| | | 1866,0407.954 (Registration Number) |
| >P3_has_note {footnote}only for serialno{footnote} | | 1251426246-3 (Serial Number: this is an ISSN number) |
{display-footnotes}

h2. Owners, Keepers, Location

| P52_has_current_owner/skos:prefLabel | current owner | The British Museum |
| P50_has_current_keeper/skos:prefLabel | current keeper | The British Museum |
| | | BM Prints & Drawings Department |
| P55_has_current_location/rdfs:label | current location | French XIXc Unmounted Roy |
| P51_has_former_or_current_owner/skos:prefLabel {footnote}P51 is superprop of P52, but BM doesn't appear due to [#Redundancy Removal]{footnote} | former or current owner | Mr Some One |
| P49_has_former_or_current_keeper/skos:prefLabel{footnote}P49 is superprop of P50, but BM doesn't appear due to [#Redundancy Removal]{footnote} | former or current keeper | Mr Some One |
{display-footnotes}

h2. Bibliographic References

| P70i_is_documented_in/rdfs:label | De Vinck 10531 |
| | IFF 9 |

h2. Types

| bmo:PX_object_type/skos:prefLabel{footnote}{jira:RS-716}{footnote} | object type | satirical print |
| | | print |
| bmo:PX_ware/skos:prefLabel{footnote}Pottery only{footnote} | ware | African Red Slip Ware |
| bmo:PX_escapement/skos:prefLabel{footnote}Watches/clocks only{footnote} | escapement | balance spring verge |
| bmo:PX_currency/skos:prefLabel{footnote}Banknotes only {jira:RS-1141}{footnote} | currency | riyal |

{display-footnotes}

h2. Materials

| P45_consists_of/skos:prefLabel | paper |
| >P94i_was_created_by \\
>>P7_took_place_at/skos:prefLabel \\
>>P3_has_note | Indian Ocean (Natural source of object){footnote}Only 3 objects have this{footnote} |
{display-footnotes}

h2. Production & Techniques

All info about one Production node should be on one line, see [BM Association Mapping#Uncorrelated Events Display].
(on) {color:#ff0000}*&nbsp;New mapping: Production details are now found in subevent nodes: P108i_was_produced_by (single production node) \-> P9_consists_of (production1, production2, etc)*{color}
| P108i_was_produced_by \\
>P140i_was_attributed_by{footnote}When present, it subsumes the specific prop mentioned in PX_property{footnote}
>>bmo:PX_property/rdfs:label{footnote}P7_took_place_at, P14_carried_out_by, P15_was_influenced_by, P17_was_motivated_by{footnote}
>>P141_assigned/skos:prefLabel \\
>>P2_has_type/skos:prefLabel \\
>P2_has_type/skos:prefLabel{footnote}A Production node would have this P2 (direct type) or the above P2 (association type), but not both{footnote} | | |
| >P32_used_general_technique/skos:prefLabel | used general technique | hand-coloured |
| | used general technique | etching |
| >P14_carried_out_by/skos:prefLabel | carried out by | Godisart de Cari (Print made by){footnote}From P140i\[PX_property=P14]/P2{footnote} |
| | carried out by | Aaron Martinet (Published) |
| | carried out by | Faizallah (Attributed to){footnote}Eg ASIA.ttl: RFI42071/production/4. {jira:RS-1231} #4{footnote} |
| >P4_has_time-span/P3_has_note{footnote}There's a separate Production node for the date.{footnote}{footnote}Date in P82a/P82b looks silly (1814-01-01 - 1814-12-31), date in P3 looks good and may have extra note {jira:RS-1140} {jira:RS-1313} {jira:RS-1716}{footnote} | time-span | 1615 :: circa - original |
| >P7_took_place_at/skos:prefLabel | took place at | Paris (Published){footnote}From P140i\[PX_property=P7]/P2{footnote} |
| >P15_was_influenced_by/skos:prefLabel | influenced by | de Cari's Teacher (School/style of){footnote}From P140i\[PX_property=P15]/P2{footnote} |
| >P10_falls_within/skos:prefLabel | falls within | French Period |
| | falls within | French Medieval Kingdom{footnote}From subprop bmo:PX_produced_in_state{footnote} |
| >P17_was_motivated_by/skos:prefLabel | motivated by | French Medieval King II (Ruler){footnote}From P140i\[PX_property=P17]/P2{footnote} |
{display-footnotes}

h6. Made Part

| P46_is_composed_of \\
>P2_has_type/skos:prefLabel{footnote}"bell" and "ebauche" come from P2, "made part" is hard-coded in the form{footnote}
>P108i_was_produced_by | | |
| >>P7_took_place_at/skos:prefLabel | took place at | Paris, France (made part: bell) |
| >>P14_carried_out_by/skos:prefLabel | carried out by | de Cari's Ebauchier (made part: ebauche) |
{display-footnotes}

h6. Repaired

| P31i_was_modified_by \\
>P2_has_type/skos:prefLabel{footnote}"Repaired" comes from P2{footnote} | | |
| >P7_took_place_at/skos:prefLabel | took place at | Paris, France (Repaired) |
| >P14_carried_out_by/skos:prefLabel | carried out by | de Cari's Repairer(Repaired) |
{display-footnotes}

h6. Original From

| P130_shows_features_of{footnote}{jira:RS-1110}{footnote}
>P108i_was_produced_by \\
>>P7_took_place_at \\
>>P2_has_type{footnote}"Original From" comes from P2{footnote} | took place at | Paris, France (Original From) |
{display-footnotes}

h2. Inscriptions & Images on Object

- Print one *group* for each P65_shows_visual_item. Below are depicted two groups, separated with an empty row
- Some examples: EAF121893 (inscriptions), RFI42020 (images)
- Skip the label not only of P65_shows_visual_item, but also P14_carried_out_by and P138_represents since the corresponding P2_has_type is always present and more informative

| P65_shows_visual_item \\
>bmo:PX_inscription_type/skos:prefLabel | inscription type | owner's mark |
| >bmo:PX_inscription_subject/skos:prefLabel | inscription subject | mathematical |
| >bmo:PX_inscription_position | inscription position | recto and verso |
| >bmo:PX_inscription_script/skos:prefLabel | inscription script | demotic |
| >P72_has_language/skos:prefLabel | language | hausa |
| >rdfs:label{footnote}Multiple, separate with comma{footnote} | label | Amaimaita, to repeat or replicate |
| >bmo:PX_has_transliteration | transliteration | a maimaita |
| >P73_has_translation/rdfs:label | translation | to repeat or replicate |
| >P3_has_note | note | This is associated with a deep desire... |
| >P94i_was_created_by \\
>>P2_has_type/skos:prefLabel \\
>>P14_carried_out_by/skos:prefLabel | Inscription by | Inscriber Extraordinaire |
| | | |
| >P2_has_type/skos:prefLabel \\
>P138_represents/skos:prefLabel | Portrait | John Smith |
{display-footnotes}

h2. Aspects

Aspects are used mostly for Coins. Print each aspect on one line
| P56_bears_feature \\
>P2_has_type/skos:prefLabel | obverse | Saladin on horseback carrying a modern Kurdish flag. |
| >P3_has_note | reverse | Mountain peaks and sun. |

rdfs:label duplicates P2_has_type so we skip it. {jira:RS-1163}

h2. Dimensions

Print each Dimension node on one line:
- <type>: <min>-<max> <unit> (<note>)

where <type> is in a separate cell, <min>-<max> are separated by dash, <unit> is separated by space, and <note> is in parentheses

| P43_has_dimension \\
>P2_has_type/skos:prefLabel \\
>P90_has_value{footnote}PX_min_value/PX_max_value are subprops, but [#Redundancy Removal] leaves min&max, or else has_value{footnote} | width | 20 cm (trimmed) |
| >bmo:PX_min_value{footnote}Had wrong prefix "crm:", [BMX Issues#20121023 config review]{footnote} | height | 8-10 cm |
| >bmo:PX_max_value | die axis | 10 o'clock |
| >P91_has_unit/skos:prefLabel \\
>P3_has_note | currency | 5 riyal |
{display-footnotes}

h2. Notes

| P3_has_note | note | The series 'Mus?e Grotesque' consists of at least 65 plates... |
| bmo:PX_condition | condition | Good. |
P3_has_note includes PX_curatorial_comment and (in "debug mode") PX_display_wrap

h2. About (things Depicted, Referred)

| P62_depicts/skos:prefLabel{footnote}There is also a wrong mapping P128/P62 {jira:RS-1136}{footnote} | depicts | Alexander the Great |
| P128_carries \\
>P2_has_type/skos:prefLabel{footnote}Associated Title: {jira:RS-1137}{footnote}
>rdfs:label \\
>P3_has_note | Associated With | Fables |
| | Associated With | Henry IV, Part I (II, ii){footnote}This is P3, eg from <object/PPA356888/title/2>{footnote} |
| >P67_refers_to \\
>>skos:prefLabel{footnote}Refers to Place, Person{footnote} | refers to | Kingdom of Macedonia |
| >>rdfs:label{footnote}Refers to Event{footnote} | | Capturing of Asia Minor |
| >bmo:PX_commemorates/rdfs:label{footnote}{jira:RS-1101}{footnote} | commemorates | Siege of Istanbul |
| >P129_is_about/skos:prefLabel | is about | Istanbul |
{display-footnotes}

h2. Acquisition

Print one line for each "business property" of the acquisition (P11, P17, P23, P28, P2, P4):
- property: <thesauruscTerm> (<type>)
- type: <type>
- time-span: <dates>

| P24i_changed_ownership_through{footnote}P22_transferred_title_to & P29_custody_received_by are always the-british-museum so we skip them{footnote}
>P140i_was_attributed_by \\
>>bmo:PX_property/rdfs:label{footnote}Business properties can be present either directly, or in PX_property, but not both{footnote}
>>P141_assigned/skos:prefLabel \\
>>P2_has_type/skos:prefLabel{footnote}P3_has_note is missing {jira:RS-1718}{footnote}
>P23_transferred_title_from/skos:prefLabel | transferred title from | Sir John Smith (Donated) |
| >P11_had_participant/skos:prefLabel | had participant | Mrs Jane Smith (Donated Through) |
| >P17_was_motivated_by/skos:prefLabel | motivated by | little Missie Smith (In Honour of) |
| >P28_custody_surrendered_by/skos:prefLabel | custody surrendered by | Another Museum (On Loan From) |
| >P2_has_type/skos:prefLabel{footnote}Only <thesauri/acquisition/treasure-act>, in which case P140i/P2 is not present{footnote} | type | Treasure Act |
| >P4_has_time-span/P3_has_note{footnote}P3 may have extra note, eg specific day{jira:RS-1739}{footnote} | time-span | 1992 :: 26th October |
{display-footnotes}

h2. Events, Made For

Print 1 row of 4 columns per Made For or Event:
# P2_has_type, else rdfs:label of property
# P14_carried_out_by, else skos:prefLabel of thesaurus term
# P7_took_place_at or none
# P4_has_time-span or none

| P19i_was_made_for/skos:prefLabel | made for{footnote}Made for event{footnote} | Coronation of Elizabeth II | | |
| | made for{footnote}Made for person{footnote} | Elizabeth II | | |
| P12i_was_present_at/rdfs:label | Exhibition{footnote}{jira:RS-1733} {jira:RS-1734}{footnote} | Tales wile away the night | | |
| | Normal{footnote}{jira:RS-1745}{footnote} | New York World's Fair | | Event date :: 1939-1940 ::{footnote}might also output second value "Event date :: 1939", see prev bug{footnote} |
| >P2_has_type/skos:prefLabel | Collected, Found/Acquired{footnote}Multiple, separate with commas{footnote} | The British Museum | Iraq | 1890 |
| >P14_carried_out_by/skos:prefLabel \\
>P7_took_place_at/skos:prefLabel \\
>P4_has_time-span/P3_has_note | Retailed By | Mattell | Paris, France | 1996 |
{display-footnotes}

h2. Collection, Series, Type Series

| P46i_forms_part_of \\
>rdfs:label | forms part of | Stein Collection |
| >P2_has_type/skos:prefLabel{footnote}If Josh adds P2. {jira:RS-1138}{footnote} | | Gashu Ginza (Series) |
| PX_exhibition_history | exhibition history | 1988 Oct-Dec, Manchester, Whitworth AG, 'Travels in Italy', no. 116 \\
1996 Mar-July, BM, Vases and Volcanoes, no.45 \\
1999/2000 Nov-Feb, Newcastle, Laing AG, Art Treasures of North |
| bmo:PX_object_exhibition_label{footnote}Currently includes redundant info that's in P46i_forms_part_of exhibition/label, and which gives it appearance of PX_display_wrap. {jira:RS-1686}{footnote} | object exhibition label | Exhibition label :: G56 Early Mesopotamia 2009 onwards :: The Silver Lyre \\
Leonard Woolley discovered several lyres...(20 lines with bad line breaks) \\
About 2500 BC (Early Dynastic III) \\
From grave PG 1237, The Great Death Pit, Ur \\
ME 121199 |
| bmo:PX_type_series/skos:prefLabel | type series | 751x |
{display-footnotes}