compared with
Current by Vladimir Alexiev
on Feb 20, 2013 15:43.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (114)

View Page History
{color:red}*This is before [FR Enhancements]. See [FR Implementation] for the newest version*{color}
{toc}
{color:red}*Do not edit this page in Rich Text mode, edit only in Wiki mode*{color}

h1. Introduction
h3. FC70_Thing for RS

In RS we search only for Man-Made Objects (MMO) so the rule is much simpler: simpler.
- RKD data includes sub-objects (eg related/n is a related work, part/n is a frame that is part of a painting) that we can't display, so we introduced an extension sub-class rso:E22_Museum_Object
- BM data uses crm:E22_Man-Made_Object, and we use an additional criterion "the current keeper or owner is the BM". (Objects which have been loaned to the BM have a different owner)
{code:title=Axioms}
<rso:FC70_Thing> <rdfs:subClassOf> <crm:E22_Man-Made_Object>
<crm:E22_Man-Made_Object> <rdfs:subClassOf> <rso:FC70_Thing>
{code:title=Rules}
x <rdf:type> <rso:E22_Museum_Object> => x <rdf:type> <rso:FC70_Thing>
x <rdf:type> <crm:E22_Man-Made_Object>; x <crm:P50_has_current_keeper> <http://collection.britishmuseum.org/id/the-british-museum> => x <rdf:type> <rso:FC70_Thing>
x <rdf:type> <crm:E22_Man-Made_Object>; x <crm:P52_has_current_owner> <http://collection.britishmuseum.org/id/the-british-museum> => x <rdf:type> <rso:FC70_Thing>
{code}
TODO: in BM data, MMO are only top-level (eg Print, Painting).
But in Rembrandt data there are sub-object MMO (eg related/n is a related work, part/n is a frame that is part of a painting) that we can't display, so we introduced a special sub-type rso:E22_Museum_Object.

h1. Fundamental Relations

h2. FR Summary (Short Variant)
The following table shows currently implemented FRs (from [Meta-Thesaurus and FR Names#FR Names Table]), with extra info:
- which CRM properties make up each FR
- critical comments
- some additional proposed FR in _italic_
- All "ranges" represent thesaurus terms (except "literal")

| *FR* | *range* | *properties (transitively closed)* | *description* | *Critique* |
| about | Place | 62 67 53 (46 89i 106 128 130 130i 148) | Thing depicts or refers to a place or feature located in place, or is similar in features or composed of or carries an information object that depicts or refers to a place | |
| from | Place | 7 14 24i 25i 53 54 74 92i (9i 10 46i 89 106i 107i 148i) | Thing has former, current or permanent location at place, or was created at place, or was created by someone born at place, or part of a group having residence at place, or moved to/from, or acquired at place | |
| was/is located in | Place | 53 (46i 89 106i 148i) | Thing has former or current location at place | |
| met | Actor | 12i 12 (9i 10 46i 106i 148i) | Thing (or another thing it is part of) has met actor in the same event (or event that is part of it) | Thing is not considered to be present at its acquisition, so Owner (acquirer) & Keeper (curator) are not matched |
| by | Actor | 14 16 22 24i 31 39 (9i 10 46 106 107i 148) | Thing (or part thereof) was created, measured, modified, acquired or used for activity performed by actor (or group it is member of) | The mix is too eclectic. Found by not *yet* matched. Current & former Owners matched, but Keepers are not. Influencers not matched (see next) |
| owner | Actor | 52 _50_ | Thing is owned by actor | Can search by BM but cannot search by BM department, since Keeper is not included |
| _influenced/motivated_ | Actor | _15 17 (etcetera)_ | Thing's production is Influenced (eg Manner/Style of) or Motivated (eg Ruler/Issuer/Governor) by actor | How about Acquisition Motivated By (In Honor/Memory of)? |
| about | Period | 62 67 (46 106 128 130 130i 148) | Thing depicts or refers to event/period, or carries information object that is about event, or bears similarity with a thing that is about event | |
| present at | Period | 12i (9i 10 46i 106i 148i) | Thing was present at (has met, is from) event/period | |
| made of | Material | 45 92i 126 (9i 10 46 106 148) | Thing (or part thereof) consists of material | |
| is/has/about | Type | 2 67 (46 106 127 128 148) | Thing is of Type, or has Shape, is of Kind, or is about a type (eg IconClass), etc | |
| used | Technique | 32 92i (9i 10 46 106 148) | The production of Thing (or part thereof) used general technique | |
| identified by | literal | 1 3 (46 106 148) | Thing (or part thereof) has Identifier (exact-match string) | |
| date interval | literal | 108i 4 82 | Thing was created at some time within the given interval or year | |
| keyword | literal | | The full text of the thing's description (including thesaurus terms and textual descriptions) matches the given keyword | |

h2. FR Summary (Long Variant)
| *FR* | *range* | *properties (transitively closed)* | *description* | *Critique* |
| about | Place | P62_depicts P67_refers_to P53_has_former_or_current_location (P46_is_composed_of P89i_contains P106_is_composed_of P128_carries P130_shows_features_of P130i_features_are_also_found_on P148_has_component) | Thing depicts or refers to a place or feature located in place, or is similar in features or composed of or carries an information object that depicts or refers to a place | |
| from | Place | P7_took_place_at P14_carried_out_by P24i_changed_ownership_through P25i_moved_by P53_has_former_or_current_location P54_has_current_permanent_location P74_has_current_or_former_residence P92i_was_brought_into_existence_by (P9i_forms_part_of P10_falls_within P46i_forms_part_of P89_falls_within P106i_forms_part_of P107i_is_current_or_former_member_of P148i_is_component_of) | Thing has former, current or permanent location at place, or was created at place, or was created by someone born at place, or part of a group having residence at place, or moved to/from, or acquired at place | |
| was/is located in | Place | P53_has_former_or_current_location (P46i_forms_part_of P89_falls_within P106i_forms_part_of P148i_is_component_of) | Thing has former or current location at place | |
| met | Actor | P12i_was_present_at P12_occurred_in_the_presence_of (P9i_forms_part_of P10_falls_within P46i_forms_part_of P106i_forms_part_of P148i_is_component_of) | Thing (or another thing it is part of) has met actor in the same event (or event that is part of it) | Thing is not considered to be present at its acquisition, so Owner (acquirer) & Keeper (curator) are not matched |
| by | Actor | P14_carried_out_by P16_used_specific_object P22_transferred_title_to P24i_changed_ownership_through P31_has_modified P39_measured (P9i_forms_part_of P10_falls_within P46_is_composed_of P106_is_composed_of P107i_is_current_or_former_member_of P148_has_component) | Thing (or part thereof) was created, measured, modified, acquired or used for activity performed by actor (or group it is member of) | The mix is too eclectic. Found by not *yet* matched. Current & former Owners matched, but Keepers are not. Influencers not matched (see next) |
| owner | Actor | P52_has_current_owner _P50_has_current_keeper_ | Thing is owned by actor | Can search by BM but cannot search by BM department, since Keeper is not included |
| _influenced/motivated_ | Actor | _P15_was_influenced_by P17_was_motivated_by (etcetera)_ | Thing's production is Influenced (eg Manner/Style of) or Motivated (eg Ruler/Issuer/Governor) by actor | How about Acquisition Motivated By (In Honor/Memory of)? |
| about | Period | P62_depicts P67_refers_to (P46_is_composed_of P106_is_composed_of P128_carries P130_shows_features_of P130i_features_are_also_found_on P148_has_component) | Thing depicts or refers to event/period, or carries information object that is about event, or bears similarity with a thing that is about event | |
| present at | Period | P12i_was_present_at (P9i_forms_part_of P10_falls_within P46i_forms_part_of P106i_forms_part_of P148i_is_component_of) | Thing was present at (has met, is from) event/period | |
| made of | Material | P45_consists_of P92i_was_brought_into_existence_by P126_employed (P9i_forms_part_of P10_falls_within P46_is_composed_of P106_is_composed_of P148_has_component) | Thing (or part thereof) consists of material | |
| is/has/about | Type | P2_has_type P67_refers_to (P46_is_composed_of P106_is_composed_of P127_has_broader_term P128_carries P148_has_component) | Thing is of Type, or has Shape, is of Kind, or is about a type (eg IconClass), etc | |
| used | Technique | P32_used_general_technique P92i_was_brought_into_existence_by (P9i_forms_part_of P10_falls_within P46_is_composed_of P106_is_composed_of P148_has_component) | The production of Thing (or part thereof) used general technique | |
| identified by | literal | P1_is_identified_by P3_has_note (P46_is_composed_of P106_is_composed_of P148_has_component) | Thing (or part thereof) has Identifier (exact-match string) | |
| date interval | literal | P108i_was_produced_by P4_has_time-span P82_at_some_time_within | Thing was created at some time within the given interval or year | |
| keyword | literal | | The full text of the thing's description (including thesaurus terms and textual descriptions) matches the given keyword | |


h2. Thing-Place

h3. Thing "refers to or is about" Place: FR67_refers_to_or_is_about
h3. Thing refers to or is about Place- FR67_refers_to_or_is_about
Thing depicts or refers to a place or feature located in place, or is similar in features or composed of or carries an information object that depicts or refers to a place
{section}{column}
{column}{section}

Fixed problems:
Fixes:
# At beginning: does not allow paths of mixed properties (eg P130-P130i, P106-P148),
or with P46,P106,P148 preceding P130,P130i

Implementation
- FRT_46_106_148 := (P46 or P106 or P148)+ (P46|P106|P148)+
{code:title=Rules}
x <crm:P46_is_composed_of> y => x <rso:FRT_46_106_148> y
{code}

- FRT_46_106_148_128_130 := (FRT_46_106_148 or P128 or P130 or P130i)+
- FRT_46_106_148_128 := (FRT_46_106_148|P128)+
{code:title=Rules}
x <rso:FRT_46_106_148> y => x <rso:FRT_46_106_148_128_130> y
x <crm:P128_carries> y => x <rso:FRT_46_106_148_128_130> y
{code}
{code:title=Axioms}
<rso:FRT_46_106_148_128> <rdf:type> <owl:TransitiveProperty>
{code}

- FRT_46_106_148_128_130 := (FRT_46_106_148_128|P130|P130i)+
{code:title=Rules}
x <rso:FRT_46_106_148_128> y => x <rso:FRT_46_106_148_128_130> y
x <crm:P130_shows_features_of> y => x <rso:FRT_46_106_148_128_130> y
x <crm:P130i_features_are_also_found_on> y => x <rso:FRT_46_106_148_128_130> y
{code}

h3. Thing "is referred to at" Place: WONTDO
h3. Thing is referred to at Place- WONTDO

h3. Thing "from" Place: from Place- FR7_from_place
Thing has former, current or permanent location at place, or was created at place, or was created by someone born at place, or part of a group having residence at place, or moved to/from, or acquired at place
{section}{column}
# At E9: does not allow a loop P9i* (Move forms part of a bigger event)
#- Resolved by merging all Event nodes (E8, E9, second E63) and allowing P9i*
#- Allowed P10_falls_within in addition to P9i_forms_part_of
#- Note that P26,P27 are subproperties of P7, so we don't need to use them
#- (We could even merge both E63, but then we'd have a back-link and before traversing P14 must check that the event is the production/creation of a Thing: E12, E65, E81)
{code}

- FRT92i_9i := P92i / P9i*
- FRT9i_10 := (P9i_forms_part_of | P10_falls_within)+
{code:title=Rules}
x <crm:P9i_forms_part_of> y => x <rso:FRT9i_10> y
x <crm:P10_falls_within> y => x <rso:FRT9i_10> y
{code}
{code:title=Axioms}
<rso:FRT9i_10> <rdf:type> <owl:TransitiveProperty>
{code}

- FRT92i_9i := P92i / (P9i|P10)*
{code:title=Rules}
x <crm:P92i_was_brought_into_existence_by> y => x <rso:FRT92i_9i> y
x <crm:P92i_was_brought_into_existence_by> y; y <crm:P9i_forms_part_of> <rso:FRT9i_10> z => x <rso:FRT92i_9i> z
{code}

{code}

- FRT_FC70_key_event_P9i := FRX_FC70_key_event then P9i*
- FRT_FC70_key_event_P9i_10 := FRX_FC70_key_event / P9i_10*
{code:title=Rules}
x <rso:FRX_FC70_key_event> y => x <rso:FRT_FC70_key_event_P9i_10> y
x <rso:FRX_FC70_key_event> y; y <crm:P9i_forms_part_of> <rso:FRT9i_10> z => x <rso:FRT_FC70_key_event_P9i_10> z
{code}

{code:title=Rules}
x <rso:FRX_53_54_current_location> y => x <rso:FRX7_from_place> y
x <rso:FRT_FC70_key_event_P9i_10> y; y <crm:P7_took_place_at> z => x <rso:FRX7_from_place> z
x <rso:FRX_P92i_P14_P107i> y; y <crm:P74_has_current_or_former_residence> z => x <rso:FRX7_from_place> z
x <rso:FRT92i_9i> y; y <crm:P7_took_place_at> z => x <rso:FRX7_from_place> z
x <rso:FRT_46i_106i_148i> y; y <rso:FRX7_from_place> z => x <rso:FRT7_from_place> z
x <rso:FRX7_from_place> y; y <crm:P89_falls_within> z => x <rso:FRT7_from_place> z
x <rso:FRT_46i_106i_148i> y; y <rso:FRX7_from_place> z; z <crm:P89_falls_within> t => x <rso:FRT7_from_place> t
{code}

- FR7_from_place := add type check at start
-- TODO: do this check earlier, so as not to generate unneeded sub-FR triples
-- (No need to check at end since all relations are to E53_Place)
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT7_from_place> y => x <rso:FR7_from_place> y
{code}

h3. Thing "used at" Place: used at Place- WONTDO
No such in BM data

h3. Thing "created at" Place: created at Place- WONTDO
This is very similar to "from", which in addition has a part "created by person born at".
But RKD Person thesaurus doesn't have birth details, and I don't know whether BM Person exported to SKOS has such details.

h3. Thing "found or acquired at" Place: WONTDO
h3. Thing found or acquired at Place- WONTDO
C2.Finding is not defined

h3. Thing "is/was located in" Place: FR53_is_was_located_in
h3. Thing is/was located in Place- FR53_is_was_located_in
Thing has former or current location at place.
This is a very simple subset of [#Thing "from" Place: from Place- FR7_from_place]
!FR53_is_was_located_in.png!

{code}<obj/2926> crm:P130i_features_are_also_found_on <obj/2926/related/1>{code}

h3. Thing "has met" Thing: has met Thing- WONTDO
h3. Thing "refers to or is about" Thing: WONTDO
h3. Thing "is referred to by" Thing: WONTDO
h3. Thing refers to or is about Thing- WONTDO
h3. Thing is referred to by Thing- WONTDO
h3. Thing "from" Thing: from Thing- WONTDO
h3. Thing "is part of" Thing: WONTDO
h3. Thing "was made from" Thing: WONTDO
h3. Thing is part of Thing- WONTDO
h3. Thing was made from Thing- WONTDO
h3. Thing "has part" Thing: has part Thing- WONTDO
h3. Thing "is similar or same with" Thing: WONTDO
h3. Thing is similar or same with Thing- WONTDO

h2. Thing-Actor

h3. Thing "has met" Actor: has met Actor- FR12_has_met
Thing (or another thing it is part of) has met actor in the same event (or event that is part of it)
{section}{column}

Implementation:
We reuse [#Thing "has met" Event: has met Event- FR12_was_present_at] as the initial sub-FR from FC70 to E5.
- FR12_has_met := FR12_was_present_at / P12 / E39
{code:title=Rules}
{code}

h3. Thing "is referred to by" Actor: WONTDO
h3. Thing is referred to by Actor- WONTDO
A related example in RKD data is: <Gertruidenberg> (Place) P67i_is_referred_to_by <Bathing Susana> which is created by <Rembrandt>,
which would map to <Gertruidenberg> "is referred to by" <Rembrandt>, except that Place is not a Thing.

h3. Thing "refers to or is about" Actor: TODO
h3. Thing refers to or is about Actor- TODO

h3. Thing "by" Actor: by Actor- FR14_by
Thing (or part thereof) was created, measured, modified, acquired or used for activity performed by actor (or group it is member of)
{section}{column}
{code}

- FRX14_by := FRX_46_106_148_92_16_39_31_24i / (P9i|P10)*
{code:title=Rules}
x <rso:FRX_46_106_148_92_16_39_31_24i> y => x <rso:FRX14_by> y
x <rso:FRX_46_106_148_92_16_39_31_24i> y; y <crm:P9i_forms_part_of> <rso:FRT9i_10> z => x <rso:FRX14_by> z
{code}

h2. Thing-Event

h3. Thing "refers to or is about" Event: FR67_about_event
h3. Thing refers to or is about Event- FR67_about_event
Thing depicts or refers to event, or carries information object that is about event, or bears similarity with a thing that is about event
- The beginning is the same as [#Thing "refers to or is about" Place: about Place- FR67_refers_to_or_is_about] so we reuse properties FRT_46_106_148_128_130 and FRX_62_67. TODO: optimize this reuse, by carefully thinking where to put the type check
- The ending is way simpler.
- TODO: harmonize FR names (this says "_event" but "about Place" doesn't say "_place")
Implementation:
(i) We reuse a lot of properties from above, so we don't need to define any auxiliary sub-FRs here
- FR67_about_event := (FC70) / FRT_46_106_148_128_130* / FRX_62_67 / (E5)
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <rso:FRX_62_67> y; y <rdf:type> <crm:E5_Event> => x <rso:FR67_about_event> y
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148_128_130> y; y <rso:FRX_62_67> z; z <rdf:type> <crm:E5_Event> => x <rso:FR67_about_event> z
{code}

h3. Thing "is referred to at" Event: WONTDO
h3. Thing is referred to at Event- WONTDO

h3. Thing "has met" Event: has met Event- FR12_was_present_at
Thing was present at (has met, is from) event.
- (FRThing.docx refers to this variously as "has met" or "from", but we use FR12_has_met for Actor.
So we use FR12_was_present_at for this. The name is derived from the name of the key constituent CRM property.)

{section}
{column}
As defined in FRThing.docx:
{noformat}
FC70_Thing -- FR12_was_present_at -> E5_Event :=
FC70_Thing -- (P46i_forms_part_of* | P106i_forms_part_of* | P148i_is_component_of*) -> FC70_Thing:
P148i_is_component_of*) -> FC70_Thing:
FC70_Thing -- P12i_was_present_at -> E5_Event:
E5_Event -- P9i_forms_part_of* -> E5_Event
{noformat}
{column}
{column}
Graphical form (slightly modified: allows mixed paths of P46i, P106i, P148i):
!FR12_was_present_at.png!
{column}{section}

Implementation:
- FR12_was_present_at := FC70 / FRT_46i_106i_148i* / P12i / P9i*
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <crm:P12i_was_present_at> y => x <rso:FR12_was_present_at> y
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46i_106i_148i> y; y <crm:P12i_was_present_at> z => x <rso:FR12_was_present_at> z
x <rdf:type> <rso:FC70_Thing>; x <crm:P12i_was_present_at> y; y <rso:P9i_forms_part_of> z => x <rso:FR12_was_present_at> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46i_106i_148i> y; y <crm:P12i_was_present_at> z; z <rso:P9i_forms_part_of> t => x <rso:FR12_was_present_at> t
{code}

h4. BUG
The FR "Thing from Event" has a serious bug that goes like this:
This also causes quadratic growth of the repository, and seemingly exponential growth of load times.

h4. How to fix it?
h4. Details of Representation of Acquisitions
(These details are not relevant to the bug described above, but are given as background information).
An acquisition by the BM is modeled as an event having all these classes:
- E8_Acquisition: change of ownership
- E10_Transfer_of_Custody: in most cases but not always
- E80_Part_Removal: optional, if we know which collection it came from
- E79_Part_Addition: thing is added to the BM collection

The following entities are present at an acquisition; linked by properties appropriate for the indicated event classes:
- the thing itself: E8, E10, E80, E79
- the seller: E8, E10
- the seller's collection: E80
- the buyer: E8, E10
- the buyer's collection: E79

h4. How to fix it?
Following the partOf hierarchy is a fundamental feature of FRs. If a Thing is part of Another, it's (often?) useful to conclude that Thing was present at each Event of Another.
- Except if Thing was added to Another after the Event

But this is none of these cases, and I don't know how to fix it cleanly.
For now I'll just remove P46i from the FRs (BM doesn't have parts of objects, so there's no loss)

h4. Details of Representation of Acquisitions
(These details are not relevant to the bug described above, but are given as background information).
An acquisition by the BM is modeled as an event having all these classes:
- E8_Acquisition: change of ownership
- E10_Transfer_of_Custody: in most cases but not always
- E80_Part_Removal: optional, if we know which collection it came from
- E79_Part_Addition: thing is added to the BM collection
h4. Implementation
For now I'll just remove P46i, P106i, P148i from the FR (BM doesn't have parts of objects, so there's no loss)
- FR12_was_present_at := FC70 / -FRT_46i_106i_148i*- / P12i / (P9i|P10)*
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <crm:P12i_was_present_at> y => x <rso:FR12_was_present_at> y
x <rdf:type> <rso:FC70_Thing>; x <crm:P12i_was_present_at> y; y <rso:FRT9i_10> z => x <rso:FR12_was_present_at> z
{code}
{code:title=REMOVED}
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46i_106i_148i> y; y <crm:P12i_was_present_at> z => x <rso:FR12_was_present_at> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46i_106i_148i> y; y <crm:P12i_was_present_at> z; z <rso:FRT9i_10> t => x <rso:FR12_was_present_at> t
{code}

The following entities are present at an acquisition; linked by properties appropriate for the indicated event classes:
- the thing itself: E8, E10, E80, E79
- the seller: E8, E10
- the seller's collection: E80
- the buyer: E8, E10
- the buyer's collection: E79

h2. Thing-Concept

h3. Thing "is made of" Material: FR45_is_made_of
h3. Thing is made of Material- FR45_is_made_of
Thing (or part thereof) consists of material

{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <rso:FRX45_is_made_of> y => x <rso:FR45_is_made_of> y
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148> y; y <rso:FRX45_is_made_of> y z => x <rso:FR45_is_made_of> z
{code}

h3. Thing "is/has" Type: is/has Type- FR2_has_type
Thing has Type (or has shape, is of kind, uses material, is about subject, etc)
(FRThing.docx calls this "has type" but I think "is/has" matches the general usage "is Weapon", "has shape Vertical Rectangle", etc)

This is an extension of [#Thing "is made of" Material: FR45_is_made_of]:
{section}{column}
{column}{column}
Corrected definition:
!FR2_has_type-fixed.png!
{column}{section}

Fixes:
- added P67 (E55_Type), since some types are attached using P67_refers_to (or P129_is_about),
eg these RS extension properties: rso:P129_has_iconclass, rso:P129_has_keyword
- added P128_carries (E73_Information_Object) to move from physical to conceptual, eg
{code}
<obj/2926> crm:P65_shows_visual_item <obj/2926/image>.
<obj/2926/image> crm:P129_is_about rst-iconclass:_71P412.
{code}
- added "P127_has_broader_term" to search by type hierarchy

Implementation:
- FR2_has_type := ((FC70) / FRT_46_106_148* / P2_has_type) | FR45_is_made_of
- FRX2_has_type := (P2|P67) / (E55_Type)
{code:title=Rules}
x <crm:P2_has_type> y => x <rso:FRX2_has_type> y
x <crm:P67_refers_to> y; y <rdf:type> <crm:E55_Type> => x <rso:FRX2_has_type> y
{code}

- FR2_has_type := (FC70) / FRT_46_106_148_128* / FRX2_has_type / P127_has_broader_term*
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <crm:P2_has_type> <rso:FRX2_has_type> y => x <rso:FR2_has_type> y
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148_128> y; y <crm:P2_has_type> <rso:FRX2_has_type> z => x <rso:FR2_has_type> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRX2_has_type> y; y <crm:P127_has_broader_term> z => x <rso:FR2_has_type> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148_128> y; y <rso:FRX2_has_type> z; z <crm:P127_has_broader_term> t => x <rso:FR2_has_type> t
{code}

Notes:
- Martin also adds here FR45_is_made_of. This would be easy to add with this clause:
{code}
x <rso:FR45_is_made_of> y => x <rso:FR2_has_type> y
{code}
but our search UI currently has a restriction that the many-to-many relation "FRs-thesauri" should split both FRs and thesauri into equivalence classes.

h3. Thing "used technique": used technique- FR32_used_technique
The production of Thing (or part thereof) used general technique

{section}{column}
{column}{column}
Extension defined by me:
!FR32_used_technique-fixed.png!
{column}{section}
(I think P32_used_general_technique is more useful than P33_used_specific_technique, see [#Thing "is made of" Material: of Material- FR45_is_made_of] above)

Implementation:
{code}

h3. Thing "identified by" Identifier: identified by Identifier- FR1_identified_by
Thing (or part thereof) has Identifier (exact-match string).
{section}{column}
{column}{column}
Extension defined by me:
!FR32_used_technique-fixed.png! !FR1_identified_by.png!
{column}{section}

Implementation:
- FR1_identified_by := (FC70) / FRT_46_106_148* / P1 / P3 | rdfs:label
{code:title=Rules}
x <rdf:type> <rso:FC70_Thing>; x <crm:P1_is_identified_by> y; y <crm:P3_has_note> z => x <rso:FR1_identified_by> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148> y; y <crm:P1_is_identified_by> z; z <crm:P3_has_note> t => x <rso:FR1_identified_by> t
x <rdf:type> <rso:FC70_Thing>; x <crm:P1_is_identified_by> y; y <crm:rdfs:label> z => x <rso:FR1_identified_by> z
x <rdf:type> <rso:FC70_Thing>; x <rso:FRT_46_106_148> y; y <crm:P1_is_identified_by> z; z <rdfs:label> t => x <rso:FR1_identified_by> t
{code}
Notes:
- TODO: it may be better to stop at P1 so the identifier type can also be examined
- we add rdfs:label since that's what BM uses for identifier values (not P3_has_note)
{jira:RS-1408}

- Using an intermediate relation like
FRX_label := P3 | rdfs:label
is very stupid, since it will double the number of label triples & literals in the KB
{code:title=STUPID}
<rso:FRX_label> <rdfs:subPropertyOf> <crm:P3_has_note>
<rso:FRX_label> <rdfs:subPropertyOf> <rdfs:label>
{code}