villaitatti / VeNiss

0 stars 0 forks source link

Automatic labeling system for Person #48

Closed gspinaci closed 1 year ago

gspinaci commented 1 year ago

When creating a person, there are 4 fields to concatenate to create its label. These are: Given Name, Family Name, Patronymic, and Alias. All of these are optional.

gspinaci commented 1 year ago

In order to do this, I have added this to the label query in the authority_manager_config_types form:

optional {      
?item crm:P1_is_identified_by ?given_name.      
?given_name crm:P2_has_type <https://archipelago.itatti.harvard.edu/resource/type/given_name>;       
rdfs:label ?given_name_label     
BIND(CONCAT(?given_name_label, " ") as ?name_final)  
}  
bind(coalesce(?name_final, "") as ?name)     

optional {      
?item crm:P1_is_identified_by ?family_name.     
?family_name crm:P2_has_type <https://archipelago.itatti.harvard.edu/resource/type/family_name>;       
rdfs:label ?family_name_label     
BIND(CONCAT(?family_name_label, " ") as ?surname_final)   
}   
bind(coalesce(?surname_final, "") as ?surname)      

optional {      
?item crm:P1_is_identified_by ?patronymic_node.     
?patronymic_node crm:P2_has_type <https://archipelago.itatti.harvard.edu/resource/type/patronymic>;       
rdfs:label ?patronymic_label     
bind(concat(" di ", ?patronymic_label) as ?patronymic_final)   
}   
bind(coalesce(?patronymic_final, "") as ?patronymic)      

optional {      
?item crm:P1_is_identified_by ?alias_node.      
?alias_node crm:P2_has_type <https://archipelago.itatti.harvard.edu/resource/type/alias>;       
rdfs:label ?alias_label     
BIND(CONCAT(" (", ?alias_label, ")") as ?alias_final)   
}   
bind(coalesce(?alias_final, "") as ?alias)    
bind(concat(?name, ?surname, ?patronymic, ?alias) as ?label)