User:Awinkler3

From Wikidata
Jump to navigation Jump to search

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]

Mastodon account

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". }
Try 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". }
Try 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

[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". }
Try it!


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". }
Try it!

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". }
}
Try it!

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)
    }
  }
Get most recent Mastodon follower count
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]

Resources

[edit]

Presentation on Wikidata for GLAMs (in German): Slides and recording

(not my) Projects

[edit]

SPARQL queries

[edit]

Zahl der Objekte (d.h. Items) in #Berlin​er 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)
Try it!

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". }
}
Try it!

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". }
Objekte der Berliner Gemäldegalerie ohne image

}

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)
Wie viele Objekte je Kunstmuseum (Q207694) sind auf Wikidata und wie viele Wikidata-Statements haben die Objekt-Items durchschnittlich?

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)
Durchschnittliche Zahl an Quellenangabe (URL bzw. Item) bei Objekten in Kunstmuseen

BiB2WD - Bildhauerei in Berlin und Wikidata

[edit]

User:Awinkler3/BiB2WD

Languages

[edit]
Babel user information
de-N Dieser Benutzer spricht Deutsch als Muttersprache.
it-5 Questo utente può contribuire con un livello professionale in italiano.
en-5 This user has professional knowledge of English.
la-5 Hic usor artifex est Latine scribendi.
fr-3 Cet utilisateur dispose de connaissances avancées en français.
es-1 Este usuario tiene un conocimiento básico del español.
grc-1 Ὅδε ὁ χρώμενος στοιχειώδη γνῶσιν τῆς ἀρχαίας ἑλληνικῆς ἔχει.
cop-0 This user has no knowledge of Coptic (or understands it with considerable difficulty).
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 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]
Properties für Bilderbögen
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


Properties für Bilderbogenserien
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

  1. LIDO in tabellarische Form überführen (relevante Felder filtern)
  2. Daten in OpenRefine aufbereiten, reconcilen
  3. Für Commons-Import benötigte Felder nötigenfalls erstellen (Wikitext etc.)
  4. Mit OpenRefine für jeden Bilderbogen ein Wikidata-Item erstellen, Q-ID der neuen Items in Tabelle übernehmen
  5. 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.