User:Christian Erlinger: Difference between revisions
Olaf Simons (talk | contribs) No edit summary |
No edit summary |
||
Line 11: | Line 11: | ||
[[File:ZHB Luzern Logo farbig.svg|250px|right|link=https://www.unilu.ch/studium/bibliothek/]] | [[File:ZHB Luzern Logo farbig.svg|250px|right|link=https://www.unilu.ch/studium/bibliothek/]] | ||
== Notes == | |||
=== Federated Query === | |||
Untenstehende Abfrage entstand aus einer Diskussion mit dem ISGV. Im Projekt zu den historischen Reiseberichten kam die Frage auf, wie die Erfassung des Geschlechtsmerkmals bei unbekannten/spekulativen AutorInnen modelliert werden kann. Eine pragmatische Idee besteh darin, bei Wikidata:P2093 (author Name String) als Qualifer das Geschlecht zu ergänzen. Ein Problem besteht darin, dass nicht gut belegt werden kann, das zwar der Name durch den Druck belegt ist, das Geschlecht aber eine rein heuristische Ableitung darstellt. Für ein eigenständiges Wikidata-Item scheint die Angelegenheit aber oft zu spekulativ. Daher kam die Idee in solchen Fällen spekulative Items in Factgrid anzulegen. Solche AutorInnen sind im Wikidata-Werks-Item mit P2093 als String angelegt, haben aber zusätzlich eine RefNode mit Factgrid-QID, dort wird alles was bekannt ist modelliert, bspw. auch das Geschlecht. Untenstehende Federate Query in Factgrid schafft es die Werkitems aus Wikidata abzufragen und je nach Quelle (P50/P2093->Qualifier/P2093->Factgrid) das Geschlecht abzufragen: | |||
<pre> | |||
# Prefix standard | |||
# Factgrid | |||
PREFIX fg: <https://database.factgrid.de/entity/> | |||
PREFIX fgt: <https://database.factgrid.de/prop/direct/> | |||
# Wikidata | |||
PREFIX wdt: <http://www.wikidata.org/prop/direct/> | |||
PREFIX wd: <http://www.wikidata.org/entity/> | |||
PREFIX p: <http://www.wikidata.org/prop/> | |||
PREFIX ps: <http://www.wikidata.org/prop/statement/> | |||
PREFIX pq: <http://www.wikidata.org/prop/qualifier/> | |||
PREFIX pr: <http://www.wikidata.org/prop/reference/> | |||
# misc | |||
PREFIX prov: <http://www.w3.org/ns/prov#> | |||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | |||
SELECT DISTINCT ?item ?author ?geschlecht ?factgridId WITH { | |||
SELECT DISTINCT * WHERE { | |||
SERVICE <https://query.wikidata.org/sparql> { | |||
?item wdt:P1343 wd:Q105102869. | |||
#<http://www.wikidata.org/entity/Q109943920> p:P2093 ?authorStrStmt. | |||
OPTIONAL { | |||
?item p:P50 ?authorStmt. | |||
?authorStmt ps:P50 ?authorValue. | |||
OPTIONAL { ?authorValue wdt:P21 ?geschlecht. ?authorValue rdfs:label ?authorLabel. FILTER(LANG(?authorLabel) = "de") } | |||
OPTIONAL { ?authorValue wdt:P227 ?gnd. } | |||
BIND(IF((wikibase:isSomeValue(?authorValue)),"unknown",?authorLabel) AS ?author) | |||
} | |||
OPTIONAL { | |||
?item p:P2093 ?authorStrStmt. | |||
?authorStrStmt ps:P2093 ?author. | |||
#OPTIONAL { ?authorStrStmt pq:P21 ?geschlecht. } | |||
OPTIONAL { ?authorStrStmt pq:P1932 ?authorAltName. } | |||
OPTIONAL { ?authorStrStmt prov:wasDerivedFrom ?refNode. | |||
?refNode pr:P8168 ?factgridId. } | |||
#BIND(IRI(CONCAT(STR(fg:),?factgridId)) as ?factgridItem) | |||
} | |||
BIND(COALESCE(IRI(CONCAT(STR(fg:),?factgridId)),"") AS ?factgridItem) | |||
} | |||
} | |||
} | |||
AS %travellogues | |||
WHERE { | |||
include %travellogues | |||
#Here now i want to query the gender-property of a factgrid item if given in the above wdqs-result set like: | |||
{ OPTIONAL { ?factgridItem fgt:P154 ?geschlecht. } } | |||
} | |||
</pre> |
Revision as of 23:37, 15 March 2024
Christian Erlinger
Project Manager (E-Services, E-Sciences)
Zentral- und Hochschulbibliothek Luzern
Luzern, LU, CH
https://orcid.org/0000-0001-7872-9617
Notes
Federated Query
Untenstehende Abfrage entstand aus einer Diskussion mit dem ISGV. Im Projekt zu den historischen Reiseberichten kam die Frage auf, wie die Erfassung des Geschlechtsmerkmals bei unbekannten/spekulativen AutorInnen modelliert werden kann. Eine pragmatische Idee besteh darin, bei Wikidata:P2093 (author Name String) als Qualifer das Geschlecht zu ergänzen. Ein Problem besteht darin, dass nicht gut belegt werden kann, das zwar der Name durch den Druck belegt ist, das Geschlecht aber eine rein heuristische Ableitung darstellt. Für ein eigenständiges Wikidata-Item scheint die Angelegenheit aber oft zu spekulativ. Daher kam die Idee in solchen Fällen spekulative Items in Factgrid anzulegen. Solche AutorInnen sind im Wikidata-Werks-Item mit P2093 als String angelegt, haben aber zusätzlich eine RefNode mit Factgrid-QID, dort wird alles was bekannt ist modelliert, bspw. auch das Geschlecht. Untenstehende Federate Query in Factgrid schafft es die Werkitems aus Wikidata abzufragen und je nach Quelle (P50/P2093->Qualifier/P2093->Factgrid) das Geschlecht abzufragen:
# Prefix standard # Factgrid PREFIX fg: <https://database.factgrid.de/entity/> PREFIX fgt: <https://database.factgrid.de/prop/direct/> # Wikidata PREFIX wdt: <http://www.wikidata.org/prop/direct/> PREFIX wd: <http://www.wikidata.org/entity/> PREFIX p: <http://www.wikidata.org/prop/> PREFIX ps: <http://www.wikidata.org/prop/statement/> PREFIX pq: <http://www.wikidata.org/prop/qualifier/> PREFIX pr: <http://www.wikidata.org/prop/reference/> # misc PREFIX prov: <http://www.w3.org/ns/prov#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?item ?author ?geschlecht ?factgridId WITH { SELECT DISTINCT * WHERE { SERVICE <https://query.wikidata.org/sparql> { ?item wdt:P1343 wd:Q105102869. #<http://www.wikidata.org/entity/Q109943920> p:P2093 ?authorStrStmt. OPTIONAL { ?item p:P50 ?authorStmt. ?authorStmt ps:P50 ?authorValue. OPTIONAL { ?authorValue wdt:P21 ?geschlecht. ?authorValue rdfs:label ?authorLabel. FILTER(LANG(?authorLabel) = "de") } OPTIONAL { ?authorValue wdt:P227 ?gnd. } BIND(IF((wikibase:isSomeValue(?authorValue)),"unknown",?authorLabel) AS ?author) } OPTIONAL { ?item p:P2093 ?authorStrStmt. ?authorStrStmt ps:P2093 ?author. #OPTIONAL { ?authorStrStmt pq:P21 ?geschlecht. } OPTIONAL { ?authorStrStmt pq:P1932 ?authorAltName. } OPTIONAL { ?authorStrStmt prov:wasDerivedFrom ?refNode. ?refNode pr:P8168 ?factgridId. } #BIND(IRI(CONCAT(STR(fg:),?factgridId)) as ?factgridItem) } BIND(COALESCE(IRI(CONCAT(STR(fg:),?factgridId)),"") AS ?factgridItem) } } } AS %travellogues WHERE { include %travellogues #Here now i want to query the gender-property of a factgrid item if given in the above wdqs-result set like: { OPTIONAL { ?factgridItem fgt:P154 ?geschlecht. } } }