Property talk:P9327

From Wikidata
Revision as of 14:28, 19 December 2023 by Horcrux (talk | contribs) (Espressione regolare errata?: done)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Documentation

Cartigli di Bologna ID
identifier for a building, park, garden, or canal in Bologna on the Cartigli di Bologna website
Applicable "stated in" valueI cartigli di Bologna (Q106036181)
Data typeExternal identifier
Domainarchitectural structure (Q811979) or creek (Q1437299)
Allowed values\w+(-\w+)*
ExampleLiceo Augusto Righi (Q52803833)liceo-augusto-righi-6a2dde
Palazzo Dal Monte, Bologna (Q25112736)palazzo-dal-monte-fb808c
Basilica of St. Mary Major (Q19896055)chiesa-di-santa-maria-maggiore-c03de4
Palazzo Castelli (Q55107327)palazzo_castelli
Cavaioni Park (Q34598870)parco-cavaioni
Savena Canal (Q2936121)canale_di_savena___misericordia
Sourcehttps://www.bibliotecasalaborsa.it/content/cartigli/
Formatter URLhttps://www.bibliotecasalaborsa.it/bolognaonline/i-cartigli-di-bologna-edifici-storici-giardini-e-canali/place/$1
https://www.bibliotecasalaborsa.it/content/cartigli/?u=$1
Related to country Italy (Q38) (See 402 others) (Bologna (Q1891))
See alsoTourer.it ID (P4133), Gardens of the Roman Empire ID (P9505)
Lists
Proposal discussionProposal discussion
Current uses
Total1,202
Main statement40033.3% of uses
Qualifier60.5% of uses
Reference79666.2% of uses
Search for values
[create Create a translatable help page (preferably in English) for this property to be included here]
Distinct values: this property likely contains a value that is different from all other items. (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303). Known exceptions: Opificio delle Acque (Q110571409), Opificio della Grada (Q106061426)
List of violations of this constraint: Database reports/Constraint violations/P9327#Unique value, SPARQL (every item), SPARQL (by value)
Single value: this property generally contains a single value. (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
List of violations of this constraint: Database reports/Constraint violations/P9327#Single value, SPARQL
Scope is as main value (Q54828448), as reference (Q54828450): the property must be used by specified way only (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
List of violations of this constraint: Database reports/Constraint violations/P9327#Scope, SPARQL
Allowed entity types are Wikibase item (Q29934200): the property may only be used on a certain entity type (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
List of violations of this constraint: Database reports/Constraint violations/P9327#Entity types
Item “country (P17): Italy (Q38): Items with this property should also have “country (P17): Italy (Q38)”. (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
List of violations of this constraint: Database reports/Constraint violations/P9327#Item P17, search, SPARQL
Type “architectural structure (Q811979), creek (Q1437299): item must contain property “instance of (P31)” with classes “architectural structure (Q811979), creek (Q1437299)” or their subclasses (defined using subclass of (P279)). (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
List of violations of this constraint: Database reports/Constraint violations/P9327#Type Q811979, Q1437299, SPARQL
Format “[a-z]+(-[a-z]+)*(-[a-f0-9]{6})?: value must be formatted using this pattern (PCRE syntax). (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303). Known exceptions: Palazzo Castelli (Q55107327), Canale di Savena - Misericordia (Q106223309)
List of violations of this constraint: Database reports/Constraint violations/P9327#Format, SPARQL
Label required in languages: it: Entities using this property should have labels in one of the following languages: it (Help)
Exceptions are possible as rare values may exist. Exceptions can be specified using exception to constraint (P2303).
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)[reply]

@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:
  1. 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.
  2. 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).
  3. 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)[reply]
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)[reply]
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)[reply]
Anch'io sono  Support alla opzione 2.
anticipo che a memoria in /place/giardino-vittorio-melloni-eb4d59 forse anche place cambia. Patafisik (talk) 13:30, 18 May 2023 (UTC)[reply]
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
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)[reply]
@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)[reply]
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)[reply]
Notified participants of WikiProject Italy Patafisik (talk) 04:45, 19 May 2023 (UTC)[reply]
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)[reply]

──────────────────────────────────────────────────────────────────────────────────────────────────── 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:

  1. per ciascuno dei vecchi identificativi:
    1. sostituisci /_+/ (uno o più underscore) con - (trattino d'unione) e rimuovi eventuale suffisso alfanumerico;
    2. verifica se questo nuovo identificativo combacia con uno di quelli nelle tre liste di cui sopra (al netto del suffisso alfanumerico di quest'ultimo):
      1. se combacia, sostituiscilo;
      2. se non combacia, segnalo da verificare a mano.

Attenzione: lo stesso lavoro andrà fatto per gli identificativi usati come qualificatori e references.

Inoltre, la proprietà andrebbe modificata come segue:

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)[reply]

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)[reply]
✓ Done, restano solo le references da sistemare. --Horcrux (talk) 10:22, 23 May 2023 (UTC)[reply]
@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)[reply]
@Patafisik: Hai ragione, prova a sostituire pr:P9327 con prov:wasDerivedFrom/pr:P9327 nella query. --Horcrux (talk) 13:38, 25 May 2023 (UTC)[reply]
✓ Done risolto tutto. --Horcrux (talk) 14:27, 19 December 2023 (UTC)[reply]