Query Wikidata to get all properties that are subclasses of entity (all types of images associated with an entity)

71 Views Asked by At

My goal is to get all images related to a wikidata entity. I can get the image property (of e.g. the statue of liberty) with the following query:

SELECT ?image WHERE
{
    wd:Q9202 wdt:P18 ?image.
}

This gets me the associated image but there are many types of image properties (P14, P15, P18, P41,...). They are all types of "Wikidata property for linking to a representative image (Q26940804)".

Is there an elegant way to get all properties that are subclasses of Q26940804 (getting all images)?

1

There are 1 best solutions below

0
Stanislav Kralin On BEST ANSWER

Truthy predicates, which start with wdt:P, are connected to wd:Q26940804 not directly, but through their prototypic properties, which start with wd:P.

SELECT ?predicate ?propertyLabel ?image WHERE
{
    wd:Q9202 ?predicate ?image .
    ?property wikibase:directClaim ?predicate .
    ?property wdt:P31 wd:Q26940804
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

Try it!

More info:

Also, those wd:P18 etc. are instances of wd:Q26940804, not subclasses.