Closed thomashaensli closed 3 years ago
Hi Matteo,
I just realise it is likely a display problem:
Problem description Taking as example this resource The collection creator has two instances:
The same goes for the column Actor in the tabular view of the landing page of Collection where the same collection appears two times due to the two actor name (Dr. and Staničić, Aleksandar).
1st consideration
The error comes from the Actor Name
and not from Honorific name
. By running the following SPARQL query
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX org: <http://example.com/org/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT DISTINCT ?creator ?value
WHERE
{ <https://resource.swissartresearch.net/archivalobject/656188>
<http://www.cidoc-crm.org/cidoc-crm/P108i_was_produced_by> ?production .
?production a <http://www.cidoc-crm.org/cidoc-crm/E12_Production> ;
<http://www.cidoc-crm.org/cidoc-crm/P14_carried_out_by> ?creator .
?creator a ?object ;
<http://www.cidoc-crm.org/cidoc-crm/P1_is_identified_by> ?name_identifier .
?name_identifier
a <http://www.cidoc-crm.org/cidoc-crm/E41_Appellation> ;
rdfs:label ?value
FILTER EXISTS { ?creator <http://www.cidoc-crm.org/cidoc-crm/P2_has_type> <https://resource.swissartresearch.net/actor%20creator/actor%20creator> }
}
As result we have
creator | value
https://resource.swissartresearch.net/person/5dd45411-4afa-494f-9bd9-f84d07282fee | Dr (rdf:langString)
https://resource.swissartresearch.net/person/5dd45411-4afa-494f-9bd9-f84d07282fee | Staničić, Aleksandar (rdf:langString)
As from the table to the same collection creator correspond two names (value).
2nd consideration If the problem had been related to the Honorific Name of the collection creator: The honorific name has already been defined by using a dedicated type.
Here the snap of the mapping schema
<range>
<source_node>act_nc_honname</source_node>
<target_node>
<entity>
<type>crm:E41_Appellation</type>
<instance_generator name="personAppellationUri">
<arg name="person_id"
type="xpath">../_uuid/text()</arg>
<arg name="appellation_id"
type="xpath">text()</arg>
</instance_generator>
<label_generator name="Literal">
<arg name="text"
type="xpath">text()</arg>
<arg name="language"
type="xpath">../act_nc_honname_lang_akronym/text()</arg>
</label_generator>
<additional>
<relationship>crm:P2_has_type</relationship>
<entity>
<type>crm:E55_Type</type>
<instance_info>
<constant/>
</instance_info>
<instance_generator name="URIwithTypeAndId_hashed">
<arg name="type"
type="constant">types</arg>
<arg name="id"
type="constant">Honorific Name</arg>
</instance_generator>
<label_generator name="Literal">
<arg name="text"
type="constant">Honorific Name</arg>
</label_generator>
</entity>
</additional>
</entity>
</target_node>
</range>
Solution
I have added to the relative SPARQL query (Facet definition, Field and Landing page) the P2_has_type
relation to address the query via the https://resource.swissartresearch.net/types/Preferred%20Name
which was already specified into the mapping schema.
By running the resulting SPARQL query
PREFIX org: <http://example.com/org/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
SELECT DISTINCT ?creator ?value
WHERE
{ <https://resource.swissartresearch.net/archivalobject/656188>
crm:P108i_was_produced_by ?production .
?production a crm:E12_Production ;
crm:P14_carried_out_by ?creator .
?creator a ?object ;
crm:P1_is_identified_by ?name_identifier .
?name_identifier
a crm:E41_Appellation ;
crm:P2_has_type <https://resource.swissartresearch.net/types/Preferred%20Name> ;
rdfs:label ?value
FILTER EXISTS { ?creator crm:P2_has_type <https://resource.swissartresearch.net/actor%20creator/actor%20creator> }
}
we have now the correct representation of the resource
creator | value
https://resource.swissartresearch.net/person/5dd45411-4afa-494f-9bd9-f84d07282fee | Staničić, Aleksandar (rdf:langString)
Dear Matteo, coming back to the old Problem
https://transurbicide.gta.arch.ethz.ch/resource/?uri=https%3A%2F%2Fresource.swissartresearch.net%2Farchivalobject%2F656188 shows up twice in the Archival Collections List at https://transurbicide.gta.arch.ethz.ch/resource/:LandingPageCollection because is has A Stanicic als Author (who has a honorary name: "Dr.").
Apart from the fact., that here the use of Honorary Title is wrong (and I can fix it in the source data), I think it would be better to fix it in the modelling.
-I think name and honorary name should be modelled differently (using p2_has_type?)
What do you think?