Wikidata:WikiProject Czech Republic/Strategické spolupráce/Národní knihovna ČR/NK/Validace dat
Jump to navigation
Jump to search
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Projekt[edit]
Toto je stránka projektu Validace dat pro National Library of the Czech Republic (Q1967876). Více na stránce strategické spolupráce.
Příklad validací[edit]
- Seznam objektů na Wikidatech, které mají propojení na dva objekty z Czech National Authority Database (Q13550863)
- Seznam objektů na Wikidatech, které mají pro určené tvrzení (např. date of birth (P569)) hodnotu s referencí na Czech National Authority Database (Q13550863) a zároveň jinou hodnotu s referencema na jiné databáze.
Konkrétní dotazy (monitorovací)[edit]
Výpis všech ID ve Wikidatech (bez zavržených)[edit]
SELECT ?item ?nkcr WHERE {
?item p:P691 [ps:P691 ?nkcr ; wikibase:rank ?rank]
FILTER(?rank != wikibase:DeprecatedRank) .
}
Počet všech Wikidata objektů, které mají více propojení na databázi autorit NK[edit]
# Počet všech Wikidata objektů, které mají více propojení na databázi autorit NK
SELECT ?item ?itemLabel ?count WHERE {
{
SELECT ?item (COUNT(?nkc_aut_id) AS ?count) {
?item wdt:P691 ?nkc_aut_id.
} GROUP BY ?item
}
FILTER(?count > 1)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],cs". }
} ORDER BY DESC(?count)
Nejčastější důvody zavržení ID[edit]
select ?duvod_zavrzeniLabel (count(distinct(?nkcr)) as ?count) where {
?item p:P691 [ps:P691 ?nkcr ; pq:P2241 ?duvod_zavrzeni ; wikibase:rank wikibase:DeprecatedRank ] .
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en". }
}
group by ?duvod_zavrzeniLabel order by desc(?count)
Položky s totožným ID[edit]
SELECT * WHERE {
{
SELECT ?nkcr (COUNT(?obj) AS ?count) (GROUP_CONCAT(?obj; SEPARATOR = " , ") AS ?items) WHERE {
?obj p:P691 [ps:P691 ?nkcr ; wikibase:rank ?rank ] filter(?rank != wikibase:DeprecatedRank).
}
GROUP BY ?nkcr
}
FILTER(?count > 1)
}
order by desc (?count)
Položky s datem narození z Národních autorit, druhé je inverzní (6. 8. vs. 8. 6. )[edit]
select ?item ?itemLabel ?datum_narozeni_nkcr ?datum_narozeni_druhe with { select * where {
?item p:P569 ?statement1, ?statement2 .
?statement1 ps:P569 ?datum_narozeni_nkcr ; prov:wasDerivedFrom/pr:P248 wd:Q13550863 ; psv:P569/wikibase:timePrecision ?precision1 .
?statement2 ps:P569 ?datum_narozeni_druhe; psv:P569/wikibase:timePrecision ?precision2.
FILTER( ?statement1 != ?statement2 ) .
FILTER (?precision1 = 11 && ?precision2 = 11 )
FILTER(day(?datum_narozeni_nkcr)=month(?datum_narozeni_druhe) && month(?datum_narozeni_nkcr)=day(?datum_narozeni_druhe) && day(?datum_narozeni_nkcr) != month(?datum_narozeni_nkcr))
} } as %people where {
include %people
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en". }
}
Nahlášené duplicity IDs ve zdrojové databázi[edit]
SELECT ?item ?itemLabel ?id ?url where {
?item p:P691 ?s .
?s ps:P691 ?id ; pq:P3831 wd:Q1263068.
?item wdt:P31 wd:Q5 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en,de,fr". }
bind(concat("[https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=", ?id," ",?id,"]") as ?url) .
}
Položky s více ID, s totožnými vymezeními[edit]
SELECT ?item ?vymezeni ?vymezeni2 ?vymezeni3 (group_concat(?nkcr; separator=", ") as ?nkcr_ids) (COUNT(?nkcr) as ?itemcount) WITH {
SELECT * WHERE {
?item p:P691 ?statement .
?statement ps:P691 ?nkcr ; wikibase:rank ?rank filter(?rank != wikibase:DeprecatedRank).
} } as %items
WHERE {
include %items
optional {?statement pq:P1810 ?vymezeni .}
optional {?statement pq:P407 ?vymezeni2 .}
optional {?statement pq:P518 ?vymezeni3 .}
minus {?statement pq:P3831 wd:Q1263068 .}
}
GROUP BY ?item ?vymezeni ?vymezeni2 ?vymezeni3
HAVING(?itemcount>1)
Osoby s NKC, které se narodily poté, co zemřely[edit]
select ?item ?datnar ?datumr where {
?item wdt:P691 [] .
?item p:P569 [ps:P569 ?datnar ; psv:P569/wikibase:timePrecision ?p1 ; wikibase:rank ?r1 ]
filter(?p1 > 8 && ?r1 != wikibase:DeprecatedRank) .
?item p:P570 [ps:P570 ?datumr ; psv:P570/wikibase:timePrecision ?p2 ; wikibase:rank ?r2 ]
filter(?p2 > 8 && ?r2 != wikibase:DeprecatedRank && (?datumr - ?datnar < 0) ) .
}
Položky s vícekrát vyplněnou totožnou hodnotou ID[edit]
select distinct ?item ?value where {
?item p:P691 ?s1, ?s2 filter(?s1 != ?s2) .
?s1 ps:P691 ?value .
?s2 ps:P691 ?value .
}
Nejčastější spolupracovníci českých vědců, kteří ale nemají ID autorit[edit]
SELECT ?osoba ?osobaLabel (count(?prace) as ?count) WITH {
SELECT ?prace {
?autor wdt:P19/wdt:P17 wd:Q213 .
?autor wdt:P496 [] .
?prace wdt:P50 ?autor .
} LIMIT 1000
} AS %prace WHERE {
INCLUDE %prace .
?prace wdt:P50 ?osoba .
minus {?osoba wdt:P691 [] .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en". }
}
GROUP BY ?osoba ?osobaLabel
ORDER BY DESC(?count)
Konkrétní dotazy (vizualizační)[edit]
Vizualizace nejčastějších vztahů mezi záznamy[edit]
#defaultView:BubbleChart
select ?prop ?propLabel (count (?prop) as ?pocet) where {
{
select ?item ?prop ?item2 where
{
?item wdt:P691 [] .
?item2 wdt:P691 [] .
?item ?prop ?item2 .
?item wdt:P31 wd:Q5 .
?item2 wdt:P31 wd:Q5 .
optional {?item rdfs:label ?itemLabel filter(lang(?itemLabel)="cs") .}
optional {?item2 rdfs:label ?item2Label filter(lang(?item2Label)="cs") .}
}
limit 5000
}
?property wikibase:directClaim ?prop .
optional {?property rdfs:label ?propLabel filter(lang(?propLabel)="cs") .}
}
group by ?prop ?propLabel
having(?pocet > 5)
limit 100
Vizualizace častých vlastností v položkách s ID[edit]
#defaultView:BubbleChart
SELECT ?label (COUNT(*) AS ?number) WITH {
SELECT DISTINCT ?wdt ?label {
?property wikibase:propertyType wikibase:ExternalId;
wikibase:directClaim ?wdt;
rdfs:label ?label .
FILTER( LANG( ?label ) = 'en' ) .
FILTER( ?property != wd:P691 ) .
}
} AS %properties WITH {
SELECT DISTINCT ?item {
?item wdt:P691 [] .
?item wdt:P31 wd:Q5 .
#BIND( MD5(CONCAT(STR(?item), STR(RAND()))) AS ?hash ) .
}
#ORDER BY ?hash
LIMIT 100
} AS %samples WHERE {
INCLUDE %properties .
INCLUDE %samples .
?item ?wdt [] .
}
GROUP BY ?wdt ?label
Vizualizace častých vlastností v položkách s ID - jen české identifikátory[edit]
#defaultView:BubbleChart
SELECT ?property ?propertyLabel ?procento WHERE {
{
SELECT ?property ?procento WHERE {
{
SELECT ?property (count(?item) as ?numberof) WHERE {
{
SELECT distinct ?property ?item WHERE {
?item ?p [] .
?property wikibase:claim ?p .
?property wikibase:propertyType wikibase:ExternalId filter( ?property != wd:P691) .
#{?property wdt:P31/wdt:P279 wd:Q18614948 .} union { ?property wdt:P31 wd:Q18614948 .}
{?property wdt:P17 wd:Q213 . } union {?property wdt:P1629/wdt:P17 wd:Q213 .} union {?property wdt:P2378/wdt:P17 wd:Q213 .}
{
select ?item where
{
?item wdt:P691 [] .
?item wdt:P31 wd:Q5 .
}
}
}
limit 10000
}
}
GROUP BY ?property
}
bind((100 * ?numberof / 10000) as ?procento)
}
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en". }
}
order by desc(?procento)
Položky s referencí na ID, které je v položce výslovně zavrženo jako chybné[edit]
select ?item ?id ?rel ?s with {
select * where {
?item p:P691 [ps:P691 ?id ; pq:P2241 wd:Q35773207 ] .
} } as %wrong where {
include %wrong
?item ?rel ?s .
?s prov:wasDerivedFrom/pr:P691 ?id .
minus {?s wikibase:rank wikibase:DeprecatedRank .}
}
Referencování národními autoritami - dle vlastností[edit]
SELECT ?rel (count(?prop) as ?count) WHERE {
?item ?rel ?prop.
?prop (prov:wasDerivedFrom/pr:P248) wd:Q13550863.
} group by ?rel
500 nejnovějších položek s ID[edit]
select ?item ?itemLabel ?desc ?nkcr with {
select * where {
?item wdt:P691 ?nkcr .
bind(substr(str(?item),33) as ?no ).
} order by desc(xsd:integer(?no)) limit 500
} as %first where {
include %first
optional {?item schema:description ?desccs filter(lang(?desccs)="cs" ). }
optional {?item schema:description ?descen filter(lang(?descen)="en" ). }
bind(coalesce(?desccs,?descen) as ?desc) .
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs,en,de,nl,ru". }
} order by desc(xsd:integer(?no))
Přiklad validační situace[edit]
Objekt na Wikidatech má dva a více odkazů na NL CR AUT ID (P691)[edit]
Jsou tady tři možné situace:
- Všechny odkazy jsou jedna a tatáž osoba
- Chyba je na straně Wikidat a to taková, že jeden odkaz je platný a druhý není. V tom případě je nutné detekovat, který je špatný a ten odstranit (je nutné invalidovat propojení na Mix'n'match (Q28054658)).
- Chyba je na straně Czech National Authority Database (Q13550863) a to taková, že tam existuje duplicita. Po vyřešení na straně Národní knihovny je nutné přejít na předešlý krok na straně Wikidat.
- Odkazy jsou jiné osoby
- Chyba je na straně Wikidat, že tyto osoby spojuje do jedné.
Stav projektu[edit]
- 14.4.2022 - Sepisování záměru