Property talk:P9327
Documentation
identifier for a building, park, garden, or canal in Bologna on the Cartigli di Bologna website
List of violations of this constraint: Database reports/Constraint violations/P9327#Unique value, SPARQL (every item), SPARQL (by value)
List of violations of this constraint: Database reports/Constraint violations/P9327#Single value, SPARQL
List of violations of this constraint: Database reports/Constraint violations/P9327#Scope, SPARQL
List of violations of this constraint: Database reports/Constraint violations/P9327#Entity types
[a-z]+(-[a-z]+)*-[a-f0-9]{6}
”: value must be formatted using this pattern (PCRE syntax). (Help)List of violations of this constraint: Database reports/Constraint violations/P9327#Format, SPARQL
List of violations of this constraint: Database reports/Constraint violations/P9327#Item P17, search, SPARQL
List of violations of this constraint: Database reports/Constraint violations/P9327#Type Q811979, Q1437299, SPARQL
[a-z]+(-[a-z]+)*(-[a-f0-9]{6})?
”: value must be formatted using this pattern (PCRE syntax). (Help)List of violations of this constraint: Database reports/Constraint violations/P9327#Format, SPARQL
List of violations of this constraint: Database reports/Constraint violations/P9327#Label in 'it' language, search, SPARQL
|
Espressione regolare errata?
[edit]Credo che l'format as a regular expression (P1793) sia errata. Per esempio su Giardino Vittorio Melloni (Q106223373) ho sostituito il valore " giardino_vittorio_melloni" che veniva dato per corretto (ma era errato) con "giardino-vittorio-melloni-eb4d59" (che è corretto perchè punta al link corretto) ma ora mi viene segnalato che il formato non è corretto. Danysan1 (talk) 17:40, 17 May 2023 (UTC)
- @Danysan1: Quando Salaborsa ha fatto il restyiling del suo sito hanno cambiato i link sia nella parte fissa che variabile, tutti i link sono stati rotti, esempio:
- prima
- parte fissa
https://www.bibliotecasalaborsa.it/content/cartigli/?u=
parte variabile (chiave):giardino_vittorio_melloni
- dopo
- parte fissa
https://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali
parte variabile/place/giardino-vittorio-melloni-eb4d59
- redirect
- Forse dopo la mia segnalazione a Salaborsa che tutti i link su Wikidata erano rotti, oppure fin dallo spostamento dell'url, esiste un redirect del tipo
https://www.bibliotecasalaborsa.it/content/cartigli/?u=giardino-vittorio-melloni-eb4d59
, in cui pero' la parte variabile è solo parzialmente coincidente con quella del link completo, non so se sia un'informazione rilevante.
- Formulo tre ipotesi per procedere:
- si conserva l'identificativo com'è, modificando semplicemente la parte variabile (URL match pattern (P8966) e format as a regular expression (P1793)) e i valori negli elementi che contengono l'identificativo. Prima di decidere, consiglio di verificare a campione se davvero tutti i redirect esistono e funzionano.
- se non tutti i redirect funzionano, si conserva l'identificativo, modificando nell'identificativo sia formatter URL (P1630) che URL match pattern (P8966) e format as a regular expression (P1793).
- si crea un nuovo identificativo e si usa mix'n'match per riabbinare gli elementi.
- Non saprei dire a livello tecnico cosa sia meglio, cosa vada meglio per automatizzare il lavoro, ma ti ringrazio moltissimo per aver sollevato la questione.--Patafisik (talk) 08:05, 18 May 2023 (UTC)
- Io preferirei evitare la terza opzione perchè mantenere un una proprietà con tutte le triple triple che la usano rotte mi sembra inutile. Fra la prima e la seconda voterei per la seconda perchè fare affidamento su un redirect fatto ad hoc per noi di cui magari si ricorda solo il singolo tecnico del comune che l'ha applicato mi sembra molto fragile, già che ci siamo tanto vale aggiornare anche l'formatter URL (P1630).
- Ovviamente poi bisognerebbe aggiornare i valori. Se per tutti gli elementi vale il pattern del caso sopra (
giardino_vittorio_melloni
=>giardino-vittorio-melloni-eb4d59
, quindi bisogna solo aggiungere alla fine un trattino e sei caratteri da trovare) dovrebbe essere relativamente semplice facendo un po' di scraping, per esempio eseguindo dalla console sviluppatore su questa pagina questo codice JS ... [...document.querySelectorAll("a.link.column.title-container")].map(a => a.href.split("/").pop()).reduce((carry, id) => {carry[id.slice(0, id.lastIndexOf('-'))] = id; return carry}, {})
- ... viene fuori questo output: User:Danysan1/cartigli_giardini.json. Danysan1 (talk) 12:39, 18 May 2023 (UTC)
- Query migliorata:
[...document.querySelectorAll("a.link.column.title-container")].map(a => a.href.split("/").pop()).reduce((carry, id) => {carry[/-\w{6}$/.test(id) ? id.slice(0, id.lastIndexOf('-')) : id] = id; return carry}, {})
- Ecco i risultati:
- Danysan1 (talk) 13:28, 18 May 2023 (UTC)
- Anch'io sono Support alla opzione 2.
- anticipo che a memoria in
/place/giardino-vittorio-melloni-eb4d59
forse ancheplace
cambia. Patafisik (talk) 13:30, 18 May 2023 (UTC)- Trovato. I redirect fatti dal tecnico sono più d'uno, vedi
- https://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali/place/giardino-vittorio-melloni-eb4d59 e https://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali/giardini/giardino-vittorio-melloni-eb4d59
- Query migliorata:
- Non so se serve, c'erano casi rari elencati in Wikidata:Property_proposal/Salaborsa_building_ID: in Liceo Augusto Righi la chiave era "385", ora è "liceo-augusto-righi-6a2dde". Mi sembra un'ottima base di partenza, comunque.
- Patafisik (talk) 13:34, 18 May 2023 (UTC)
- @Danysan1 come procediamo? Ovvero: vista la mia scarsezza tecnica ma l'attitudine dal wikignomo, come posso aiutare (es. verificare i link una volta importati, o li importiamo a mano)? Patafisik (talk) 13:46, 18 May 2023 (UTC)
- Uhm la question si complica.
- Innanzitutto perchè ho notato che i risultati che avevo trovato sopra non fanno proprio match con gli ID vecchi presenti su Wikidata (visibili con questa query), la maggiorparte usa l'underscore invece del trattino e come notavi alcuni hanno ID strani come il Liceo Righi. Questa comunque è la meno, con un po' di olio di gomito i match si trovano.
Trovato. I redirect fatti dal tecnico sono più d'uno, vedi ...
- Se i prefissi da usare fossero più di uno e si sceglie di non usare più il redirect, non si può più usare una sola proprietà ma bisogna crearne una per ogni prefisso.
- Per fortuna però mi sembra che il prefisso
https://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali/place/
copra tutti gli elementi, quindi basti questo singolo prefisso. Bisognerebbe fare un test un po' più approfondito per assicurarsi che questo sia veramente vero. come procediamo?
- A livello tecnico credo che noi stessi abbiamo la possibilità di modificare questi campi della proprietà. Non so però se ci sia una procedura documentata per applicare una modifica che stravolga così la proprietà. Chiederò sul gruppo Telegram. Danysan1 (talk) 22:18, 18 May 2023 (UTC)
- Notified participants of WikiProject Italy Patafisik (talk) 04:45, 19 May 2023 (UTC)
- Quando abbiamo una procedura sono disponibile al lavoro da manovale. Stavo facendo lo stesso su Wikipedia per tutti i link che puntano alla precedente versione della cronologia di Bologna online. (Anche lì è cambiato sia lo schema dell'url cambia che il nome della pagina) divudì 06:08, 19 May 2023 (UTC)
- Notified participants of WikiProject Italy Patafisik (talk) 04:45, 19 May 2023 (UTC)
- @Danysan1 come procediamo? Ovvero: vista la mia scarsezza tecnica ma l'attitudine dal wikignomo, come posso aiutare (es. verificare i link una volta importati, o li importiamo a mano)? Patafisik (talk) 13:46, 18 May 2023 (UTC)
Cerco di tirare un po' le somme. La soluzione migliore mi sembra aggiornare tutti gli identificativi (sì, possiamo aggiornare noi stessi l'URL della proprietà, magari marcando come deprecato quello vecchio in quanto obsoleto).
Inoltre:
- ho verificato e il problema dei prefissi multipli mi pare non si ponga, perché
place
copre tutte gli URL dei giardini, dei canali e degli edifici storici; - alcuni ID vecchi hanno il doppio underscore ("__" anziché "_", esempio), però sembra che anche questi vengano sostituiti con un singolo trattino;
- anche alcuni ID vecchi hanno un suffisso alfanumerico (esempio), ma pare che rimuovendolo sia spesso possibile trovare comunque un match con il rispettivo ID nuovo;
- Liceo Augusto Righi (Q52803833) è l'unico elemento ad avere il vecchio identificativo composto da sole cifre, quindi il problema non si pone;
- occhio che la lista User:Danysan1/cartigli edifici.json è in completa (l'elenco degli edifici storici sul sito è diviso in 9 pagine!).
In definitiva, credo che la procedura sia la seguente, e si potrebbe automatizzare abbastanza semplicemente:
- per ciascuno dei vecchi identificativi:
- sostituisci
/_+/
(uno o più underscore) con-
(trattino d'unione) e rimuovi eventuale suffisso alfanumerico; - verifica se questo nuovo identificativo combacia con uno di quelli nelle tre liste di cui sopra (al netto del suffisso alfanumerico di quest'ultimo):
- se combacia, sostituiscilo;
- se non combacia, segnalo da verificare a mano.
- sostituisci
Attenzione: lo stesso lavoro andrà fatto per gli identificativi usati come qualificatori e references.
Inoltre, la proprietà andrebbe modificata come segue:
- formatter URL (P1630)https://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali/place/$1 (preferito)
- formatter URL (P1630)https://www.bibliotecasalaborsa.it/content/cartigli/?u=$1
- format as a regular expression (P1793)[a-z]+(-[a-z]+)*-[a-f0-9]+
Opzionalmente, possiamo tenere anche i vecchi URL e pattern per motivi "storici", marcandoli come deprecati e aggiungendo come qualificatore, rispettivamente, reason for deprecated rank (P2241)link rot (Q1193907) e reason for deprecated rank (P2241)obsolete (Q107356532). --Horcrux (talk) 09:33, 19 May 2023 (UTC)
- Io ho concluso il lavoro di scraping e matching con User:Danysan1/cartigli.js e credo di aver completato tutti i match automatici possibili in User:Danysan1/cartigli.json / User:Danysan1/cartigli.csv.
- Restano alcuni ID su Wikidata che non fanno match perchè sono proprio cambiati ma non credo che siano fattibili automaticamente, andranno fatti a mano).
- Segnalo solo che ci sono alcuni ID che sono su Wikidata e fanno possibile match con più ID dei cartigli, per esempio
palazzo_comunale
su Q106223387 faceva correttamente match con palazzo-comunale-a9b427 ma faceva match anche con palazzo-comunale-9c210b (Q106223389) e palazzo-comunale-09eb01 (Q2267154), quindi ho modificato le entità a mano. - Resta da fare la modifica della proprietà e l'aggiornamento dei valori in base ai match trovati (presumo con Mix'n'match) stando attenti ai match multipli citati sopra. Danysan1 (talk) 22:18, 22 May 2023 (UTC)
- Done, restano solo le references da sistemare. --Horcrux (talk) 10:22, 23 May 2023 (UTC)
- @Horcrux non riesco ad usare i link della query, mi rimandano tutti a Help:Sources.
- Non posso verificare, ma ipotizzo che tra le references linkate ce ne siano molte alle coordinate, su cui ora è aperta questa discussione: unendo 2 elementi ci si trova con doppie coordinate e si rischia che venga buttato il valore dei Cartigli di Bologna con la ref, quindi rischiamo di fare un lavoro inutile senza sapere che decisione otterrà il consenso. Patafisik (talk) 13:31, 25 May 2023 (UTC)
- @Patafisik: Hai ragione, prova a sostituire
pr:P9327
conprov:wasDerivedFrom/pr:P9327
nella query. --Horcrux (talk) 13:38, 25 May 2023 (UTC)- Done risolto tutto. --Horcrux (talk) 14:27, 19 December 2023 (UTC)
- @Patafisik: Hai ragione, prova a sostituire
- Done, restano solo le references da sistemare. --Horcrux (talk) 10:22, 23 May 2023 (UTC)
- Italy-related properties
- All Properties
- Properties with external-id-datatype
- Properties used on 1000+ items
- Properties with unique value constraints
- Properties with single value constraints
- Properties with scope constraints
- Properties with entity type constraints
- Properties with format constraints
- Properties with constraints on items using them
- Properties with constraints on type
- Properties with label language constraints