User:Awinkler3
https://orcid.org/0000-0002-9145-7238
Works for digiS Berlin (Research and Competence Centre Digitalisation Berlin (Q51845259))
Member of the Committee for Digital Resources of the International Association for Neo-Latin Studies (Q16319503) [1]
Possible ToDos
[edit]Add nicknames of members of Italian learned societies
[edit]Currently, the most commonly used data model doesn't appear to be appropriate (mostly the nickname is given as pseudonym (P742), cf. the following query:
SELECT ?pers ?persLabel ?society ?societyLabel ?name WHERE {
?pers wdt:P31 wd:Q5 ;
wdt:P463 ?society ;
wdt:P1810| wdt:P742 | wdt:P1449 ?name .
?society wdt:P17 wd:Q38 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "it". }
It would be better (I think) to add the nickname as a qualifier subject named as (P1810) in a member of (P463):
SELECT ?pers ?persLabel ?society ?societyLabel ?name WHERE {
?pers wdt:P31 wd:Q5 ;
p:P463 ?statement .
?statement ps:P463 ?society ;
pq:P742| pq:P1810 ?name .
?society wdt:P17 wd:Q38 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "it". }
Neo-Latin
[edit]Resources
[edit]Slides for digital@IANLS sessions on "Wikidata for Neolatinists": https://doi.org/10.5281/zenodo.7638227, https://doi.org/10.5281/zenodo.7674768
Wikidata related Projects
[edit]- Database of Neo-Latin epic poems (uses Wikidata Q-IDs to identify authors and subjects).
Database of Neo-Latin Epic Poetry
[edit]Database of Neo-Latin Epic Poetry
SPARQL queries
[edit]Sum of all Neo-Latin Literature
[edit]User:Awinkler3/SumOfNeoLatinLiterature
Mastodon on Wikidata
[edit]Zeiteiste mit GLAMs auf Wikidata
#defaultView:Timeline
SELECT DISTINCT ?inst ?instLabel ?mastodon ?coords ?startDate
WHERE {
{ ?inst wdt:P31/wdt:P279* wd:Q33506 } UNION #Museums
{ ?inst wdt:P31/wdt:P279* wd:Q7075 } UNION #Libraries
{ ?inst wdt:P31/wdt:P279* wd:Q5003624 } UNION #Gedenkstätte
{ ?inst wdt:P31/wdt:P279* wd:Q166118 } # Archives
?inst wdt:P4033 ?mastodon .
OPTIONAL { ?inst wdt:P625 ?coords . }
OPTIONAL { ?inst p:P4033 [ pq:P580 ?startDate ] . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
Alle aktiven GLAM-Mastodon-Accounts (ohne "endDate" qualifier):
#defaultView:Timeline
SELECT DISTINCT ?inst ?instLabel ?mastodon ?coords ?startDate
WHERE {
{ ?inst wdt:P31/wdt:P279* wd:Q33506 } UNION #Museums
{ ?inst wdt:P31/wdt:P279* wd:Q7075 } UNION #Libraries
{ ?inst wdt:P31/wdt:P279* wd:Q5003624 } UNION #Gedenkstätte
{ ?inst wdt:P31/wdt:P279* wd:Q166118 } # Archives
?inst wdt:P4033 ?mastodon .
?inst p:P4033 ?statement .
?statement pq:P580 ?startDate .
MINUS { ?statement pq:P582 ?endDate . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
Alle Mastodon-Accounts auf Wikidata
SELECT DISTINCT ?inst ?instLabel ?mastodon
WHERE {
?inst wdt:P4033 ?mastodon .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Aktuellste Followerzahlen für Mastodonaccounts auf Wikidata
#title: Get most recent Mastodon follower count
# adapted from: https://stackoverflow.com/questions/36181713/sparql-query-to-get-only-results-with-the-most-recent-date
SELECT ?id ?address ?follower ?date WHERE {
?id p:P8687 ?statement .
?statement pq:P4033 ?address ;
pq:P585 ?date ;
ps:P8687 ?follower .
FILTER NOT EXISTS {
?id p:P8687 [ pq:P585 ?date2 ] .
FILTER (?date2 > ?date)
}
}
import requests from tqdm import tqdm from datetime import datetime import sys from SPARQLWrapper import SPARQLWrapper, JSON def getTS(): # Get current datetime now = datetime.now() # Format datetime as required formatted_now = "+"+now.strftime("%Y-%m-%dT00:00:00Z/11") return formatted_now def get_results(endpoint_url, query): user_agent = "WDQS-example Python/%s.%s" % (sys.version_info[0], sys.version_info[1]) # TODO adjust user agent; see https://w.wiki/CX6 sparql = SPARQLWrapper(endpoint_url, agent=user_agent) sparql.setQuery(query) sparql.setReturnFormat(JSON) return sparql.query().convert() def getMastoInfo(acctname): name, instance = acctname.split('@') res = requests.get( f"https://{instance}/api/v1/accounts/lookup?acct={name}" ).json() return { 'name' : name, 'accID' : res.get('id'), 'instance' : instance, 'followers' : res.get('followers_count'), 'following' : res.get('following_count'), 'statuses' : res.get('statuses_count'), 'timestamp' : getTS() } endpoint_url = "https://query.wikidata.org/sparql" query = "" logs = [] with open('followers.csv', 'w') as OUT: for result in tqdm(results["results"]["bindings"]): QID = result['inst']['value'].rpartition('/')[2] try: acctname = result['mastodon']['value'] mastInfo = getMastoInfo(acctname) OUT.write(f"{QID}\tP8687\t{mastInfo.get('followers')}\tP4033\t\"{acctname}\"\tP585\t{mastInfo.get('timestamp')}\n") #print(f"{QID}\tP8687\t{mastInfo.get('followers')}\tP4033\t\"{acctname}\"\tP585\t{mastInfo.get('timestamp')}") except Exception as e: print(e) logs.append(QID)
GLAM
[edit]- Wikidata:WikiProject_sum_of_all_paintings
- Wikidata:GLAM
- Museo egizio di Torino
- Wikidata:WikiProject_Städel_Museum_Wikidata_Clean-Up
Resources
[edit]Presentation on Wikidata for GLAMs (in German): Slides and recording
(not my) Projects
[edit]- OpenArtBrowser
- Short poll on Mastodon
SPARQL queries
[edit]Zahl der Objekte (d.h. Items) in #Berliner Museen auf #Wikidata (#SPARQL) je Museum
[edit]#defaultView:BarChart
SELECT ?mus ?musLabel (COUNT(?obj) AS ?n) WHERE {
?mus (wdt:P31|wdt:P31/wdt:P279|wdt:P31/wdt:P279/wdt:P279|wdt:P31/wdt:P279/wdt:P279/wdt:P279) wd:Q33506 ;
wdt:P131/wdt:P131* wd:Q64 .
?obj wdt:P276 ?mus .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} GROUP BY ?mus ?musLabel
ORDER BY DESC(?n)
Objects in the Gemäldegalerie Berlin without a depicts statement
[edit]# Objekte der Gemäldegalerie ohne Themenangabe
SELECT ?work ?workLabel ?URL WHERE {
?work wdt:P276 wd:Q165631 ;
wdt:P8923 ?SMBID .
FILTER NOT EXISTS {
?work wdt:P180 ?_ .
}
wd:P8923 wdt:P1630 ?formatterurl .
BIND(IRI(REPLACE(?SMBID, '^(.+)$', ?formatterurl)) AS ?URL).
SERVICE wikibase:label { bd:serviceParam wikibase:language "de,[AUTO_LANGUAGE],en". }
}
Objects in the Gemäldegalerie Berlin without an image property
[edit]#title: Objekte der Berliner Gemäldegalerie ohne image
SELECT DISTINCT ?obj ?objLabel WHERE {
?obj (wdt:P276| wdt:P195) wd:Q165631 .
?obj wdt:P31/wdt:P279+ wd:Q838948 .
MINUS { ?obj wdt:P18 ?img . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
How many objects do art museums have on Wikidata and how many statements have the object items on average?
[edit]#title: Wie viele Objekte je Kunstmuseum (Q207694) sind auf Wikidata und wie viele Wikidata-Statements haben die Objekt-Items durchschnittlich?
SELECT ?mus ?musLabel ?objCount ?avgStatements WHERE {
{
SELECT ?mus (COUNT(?obj) AS ?objCount) (AVG(?c) AS ?avgStatements) WHERE {
?mus wdt:P31 wd:Q207694 .
?obj wdt:P276 ?mus;
wikibase:statements ?c
} GROUP BY ?mus ?musLabel }
FILTER ( ?objCount > 100)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY DESC(?avgStatements)
Average number of references in statements on objects located in German art museum
[edit]#title: Durchschnittliche Zahl an Quellenangabe (URL bzw. Item) bei Objekten in Kunstmuseen
SELECT ?collection ?collectionLabel (AVG(?numberOfReferences) AS ?revAverage)
WITH {
#named Subquery via https://renenyffenegger.ch/notes/development/Data/open/Wikidata/index nach https://w.wiki/5pWb
SELECT ?obj $collection WHERE {
?obj wdt:P276 $collection .
?collection wdt:P31 wd:Q207694;
wdt:P17 wd:Q183 .
}
} AS %objects
WHERE {
SELECT ?collection ?collectionLabel ?obj (COUNT(?refnode) AS ?numberOfReferences)
WHERE {
include %objects
?obj ?x ?statement.
?statement prov:wasDerivedFrom ?refnode.
?refnode (pr:P248| pr:P854) ?ref.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?collection ?collectionLabel ?obj
}
GROUP BY ?collection ?collectionLabel
ORDER BY DESC(?revAverage)
BiB2WD - Bildhauerei in Berlin und Wikidata
[edit]Languages
[edit]Babel user information | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Users by language |
BEACON -> Quickstatements -> Wikidata
[edit]BEACON -> QS-Files
[edit]
curl "<BEACON-URL>" | grep '||' | awk -F"|" '{print $3"\tP<PROPERTY>\t"$1}' | split -d -a 3 -l 3000 - <PREFIX>_
Results in a bunch of files <PREFIX>_000
through <PREFIX>_n
containing QS commands like Q123 P<PROPERTY> ID
.
QS-Files -> Wikidata
[edit]QS-Token can be found here.
for i in <PREFIX>_*; do curl https://quickstatements.toolforge.org/api.php -d action=import -d submit=1 -d format=v1 -d username=Awinkler3 -d "batchname=$i" --data-raw 'token=<QS Token>' --data-urlencode data@$i; done
Bilderbögen (Épinal print (Q860708))
[edit]Bilderbögen sind Auflagenwerke, es existieren also - im FRBR-Schema - von einer Werksmanifestation mitunter mehrere Exemplare.
Es könnte nun für jede Manifestation (Auflage) und jedes Exemplar (ein konkreter physischer Bilderbogen in einer bestimmten Sammlung) ein eigenes Wikidata-Item angelegt werden. Sinnvoller scheint aktuell jedoch, nur auf Auflagen-/Manifestationsebene zu modellieren und Exemplare unter diesem Item zu verzeichnen.
Datenmodellierung für Bilderbögen auf Wikidata
[edit]Property | Datentyp/Wert | Anmerkung | LIDO-Entsprechung |
---|---|---|---|
instance of (P31) | Épinal print (Q860708) | lido:lidoWrap/lido:lido/lido:descriptiveMetadata/lido:objectClassificationWrap/lido:objectWorkTypeWrap/lido:objectWorkType/lido:term/text()
| |
image (P18) | Commons media file | Bilder müssen auf Wikimedia Commons verfügbar sein | lido:lidoWrap/lido:lido/lido:administrativeMetadata/lido:resourceWrap/lido:resourceSet/lido:resourceRepresentation[@lido:type="image_medium"]/lido:linkResource/text()
|
title (P1476) | String | Mit Angabe der Sprache | lido:lidoWrap/lido:lido/lido:descriptiveMetadata/lido:objectIdentificationWrap/lido:titleWrap/lido:titleSet/lido:appellationValue[@lido:pref="preferred"]/text()
|
part of the series (P179) | Item | Falls Bilderbogen Teil einer Reihe ist. Für die Reihe muss ein eigenes Item angelegt werden. Die Seriennummer lässt sich über den Qualifier series ordinal (P1545) angeben. | |
creator (P170) | Item | Urheber | |
publisher (P123) | Item | Verlag | |
printed by (P872) | Item | Drucker (falls nicht identisch mit Verlag) | Druck-Event |
place of publication (P291) | Item | Erscheinungsort | |
publication date (P577) | Point in time | Erscheinungsjahr. Bei Zeiträumen den Wert von publication date (P577) mit entsprechender Präzision wählen und Zeitraum ggf. über start time (P580) und end time (P582) definieren. | |
made from material (P186) | Item | Material | |
fabrication method (P2079) | Item | Technik | |
collection (P195) | Item | Sammlung, in der das Objekt sich befindet. Die Inventarnummer lässt sich über einen Qualifier inventory number (P217) angeben. Der Link zur Sammlungsdatenbank kann als Referenz-URL angegeben werden (reference URL (P854)). | lido:lidoWrap/lido:lido/lido:descriptiveMetadata/lido:objectIdentificationWrap/lido:repositoryWrap/lido:repositorySet/lido:repositoryName/lido:legalBodyName/lido:appellationValue , Inventarnummer /lido:lidoWrap/lido:lido/lido:descriptiveMetadata/lido:objectIdentificationWrap/lido:repositoryWrap/lido:repositorySet/lido:workID
|
height (P2048) | Höhe | Bezug kann mit applies to part, aspect, or form (P518)-Qualifier spezifierziert werden. | /lido:lidoWrap/lido:lido/lido:descriptiveMetadata/lido:objectIdentificationWrap/lido:objectMeasurementsWrap/lido:objectMeasurementsSet/lido:displayObjectMeasurements
|
width (P2049) | Breite | ||
main subject (P921) | Item | Thema des Bilderbogens | |
depicts (P180) | Item | Sonstige dargestellten Personen/Objekte |
Property | Datentyp/Wert | Anmerkung |
---|---|---|
instance of (P31) | periodical (Q1002697) | Eventuell muss eine Klasse "Bilderbogenserie" erstellt werden |
entweder publication date (P577) oder start time (P580) und end time (P582) | Zeitpunkt oder Zeitdauer des Erscheinens |
Workflow für Upload der Daten und Objekte nach Wikidata bzw. Wikimedia Commons
[edit]Ausgangslage: LIDO-Abzug der Daten mit Bezug zur Bildressource
- LIDO in tabellarische Form überführen (relevante Felder filtern)
- Daten in OpenRefine aufbereiten, reconcilen
- Für Commons-Import benötigte Felder nötigenfalls erstellen (Wikitext etc.)
- Mit OpenRefine für jeden Bilderbogen ein Wikidata-Item erstellen, Q-ID der neuen Items in Tabelle übernehmen
- Bilder mit OpenRefine hochladen, Q-ID als depicts (P180) in strukturierte Daten schreiben. Möglichst Dateinamen/URL des hochgeladenen Bilds ermitteln und auf Wikdata in image (P18) nachtragen.