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

Wikidata related Projects[edit]

  • Database of Neo-Latin epic poems (uses Wikidata Q-IDs to identify authors and subjects).

SPARQL queries[edit]

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