PREFIX
wikibase
:
<http://wikiba.se/ontology#>
PREFIX
wd
:
<http://www.wikidata.org/entity/>
PREFIX
wdt
:
<http://www.wikidata.org/prop/direct/>
PREFIX
rdfs
:
<http://www.w3.org/2000/01/rdf-schema#>
PREFIX
p
:
<http://www.wikidata.org/prop/>
PREFIX
v
:
<http://www.wikidata.org/prop/statement/>
SELECT
?artwork
?artworkLabel
?kms
?height
?width
?url
WHERE
{
?artwork
wdt
:
P195
wd
:
Q671384
.
# SMK
?artwork
wdt
:
P170
wd
:
Q979541
.
# Martinus Rørby
SERVICE
wikibase
:
label
{
bd
:
serviceParam
wikibase
:
language
"da"
.
}
OPTIONAL
{
?artwork
wdt
:
P217
?kms
}
OPTIONAL
{
?artwork
wdt
:
P2048
?height
}
OPTIONAL
{
?artwork
wdt
:
P2049
?width
}
OPTIONAL
{
?artwork
wdt
:
P973
?url
}
}
LIMIT
20
PREFIX
wikibase
:
<http://wikiba.se/ontology#>
PREFIX
wd
:
<http://www.wikidata.org/entity/>
PREFIX
wdt
:
<http://www.wikidata.org/prop/direct/>
PREFIX
rdfs
:
<http://www.w3.org/2000/01/rdf-schema#>
PREFIX
p
:
<http://www.wikidata.org/prop/>
PREFIX
v
:
<http://www.wikidata.org/prop/statement/>
SELECT
?artwork
?artworkLabel
?url
WHERE
{
?artwork
wdt
:
P195
wd
:
Q671384
.
# SMK
?artwork
wdt
:
P180
/
wdt
:
P279
*
wd
:
Q144
.
# Dog
SERVICE
wikibase
:
label
{
bd
:
serviceParam
wikibase
:
language
"da"
.
}
OPTIONAL
{
?artwork
wdt
:
P973
?url
}
}
import
numpy
as
np
import
pandas
as
pd
import
sparql
service
=
sparql
.
Service
(
"https://query.wikidata.org/sparql"
,
method
=
"GET"
)
statement
=
"""
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
SELECT ?artwork ?artworkLabel ?motiv ?motivLabel WHERE {
?artwork wdt:P195 wd:Q671384 .
?artwork wdt:P180 ?motiv .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "da,en" .
}
}
"""
result
=
service
.
query
(
statement
)
df
=
pd
.
DataFrame
(
result
.
fetchall
(),
columns
=
result
.
variables
)
# Set up feature matrix
motivs
=
set
([
item
.
value
for
item
in
df
[
'motivLabel'
]])
artworks
=
set
([
item
.
value
for
item
in
df
[
'artwork'
]])
feature_matrix
=
pd
.
DataFrame
(
0
,
index
=
artworks
,
columns
=
motivs
)
artwork_mapper
=
{}
for
n
,
row
in
df
.
iterrows
():
artwork
=
row
[
'artwork'
]
.
value
motiv
=
row
[
'motivLabel'
]
.
value
feature_matrix
.
ix
[
artwork
,
motiv
]
=
1
artwork_mapper
[
artwork
]
=
row
[
'artworkLabel'
]
.
value
# Possible scaling
feature_matrix
=
feature_matrix
.
divide
(
np
.
sqrt
(
feature_matrix
.
sum
(
axis
=
1
)),
axis
=
'index'
)
# Machine learning decomposition
from
sklearn.decomposition
import
NMF
decomposer
=
NMF
(
n_components
=
2
)
decomposer
.
fit
(
feature_matrix
)
transformed
=
decomposer
.
transform
(
feature_matrix
)
>>>
feature_matrix
.
columns
[(
-
decomposer
.
components_
[
0
,
:])
.
argsort
()[:
10
]]
Index
([
u
'hund'
,
u
'mand'
,
u
'kvinde'
,
u
'træ'
,
u
'bord'
,
u
'kurv'
,
u
'borddug'
,
u
'barn'
,
u
'hest'
,
u
'Sværd, sværd'
],
dtype
=
'object'
)
>>>
feature_matrix
.
columns
[(
-
decomposer
.
components_
[
1
,
:])
.
argsort
()[:
10
]]
Index
([
u
'himmel'
,
u
'sky'
,
u
'mand'
,
u
'vej'
,
u
'Hede, hede'
,
u
'Lyng, lyng'
,
u
'træ'
,
u
'Bjerg, bjerg'
,
u
'Vandfald, vandfald'
,
u
'Far, far'
],
dtype
=
'object'
)
>>>
[
artwork_mapper
[
q
]
for
q
in
feature_matrix
.
index
[(
-
transformed
[:,
0
])
.
argsort
()[:
10
]]]
[
u
'Dansebakken ved Sorgenfri'
,
u
'Johannes D
\xf8
berens henrettelse'
,
u
'B
\xf8
geskov i maj. Motiv fra Iselingen'
,
u
'Frederik II bygger Kronborg'
,
u
'Frederik II bygger Kronborg'
,
u
'En hyrdinde med en hund'
,
u
'Fra et romersk osteria'
,
u
'Et selskab af danske kunstnere i Rom'
,
u
'Susanne og de to
\xe6
ldste'
,
u
'Bella and Hanna. The Eldest Daughters of M. L. Nathanson'
]
>>>
[
artwork_mapper
[
q
]
for
q
in
feature_matrix
.
index
[(
-
transformed
[:,
1
])
.
argsort
()[:
10
]]]
[
u
'En jysk f
\xe5
rehyrde p
\xe5
heden'
,
u
'Landskab med vandfald og hytte'
,
u
'Maleren i landsbyen'
,
u
'Udsigt gennem tre af de nordvestlige buer i Colosseums tredje stokv
\xe6
rk'
,
u
'Udsigt fra Kronborg Vold over flagbatteriet og Sundet til den svenske kyst'
,
u
'Bjerglandskab med en flod'
,
u
'Hedestudie'
,
u
'Landscape with Two Horses'
,
u
'Udsigt fra Parthenon p
\xe5
Akropolis'
,
u
'Birketr
\xe6
er p
\xe5
L
\xe6
s
\xf8
efter regn'
]
PREFIX
wd
:
<http://www.wikidata.org/entity/>
PREFIX
wdt
:
<http://www.wikidata.org/prop/direct/>
PREFIX
wikibase
:
<http://wikiba.se/ontology#>
PREFIX
p
:
<http://www.wikidata.org/prop/>
PREFIX
v
:
<http://www.wikidata.org/prop/statement/>
PREFIX
q
:
<http://www.wikidata.org/prop/qualifier/>
PREFIX
rdfs
:
<http://www.w3.org/2000/01/rdf-schema#>
SELECT
?movie1Label
?actor1Label
?movie2Label
?actor2Label
?movie3Label
?actor3Label
?movie4Label
WHERE
{
?movie1
wdt
:
P161
wd
:
Q20980928
.
# Finn Arup Nielsen
?movie1
wdt
:
P161
?actor1
.
?movie2
wdt
:
P161
?actor1
.
?movie2
wdt
:
P161
?actor2
.
?movie3
wdt
:
P161
?actor2
.
?movie3
wdt
:
P161
?actor3
.
?movie4
wdt
:
P161
?actor3
.
?movie4
wdt
:
P161
wd
:
Q3454165
.
# Kevin Bacon
SERVICE
wikibase
:
label
{
bd
:
serviceParam
wikibase
:
language
"en,da"
.
}
}