Comment by pella
4 days ago
I have created a minimal wikidata query https://w.wiki/E5e3
SELECT ?language ?languageLabel ?inceptionDate
(GROUP_CONCAT(DISTINCT ?website; SEPARATOR=", ") AS ?websites)
(GROUP_CONCAT(DISTINCT ?developerLabel; SEPARATOR=", ") AS ?developers)
(GROUP_CONCAT(DISTINCT ?paradigmLabel; SEPARATOR=", ") AS ?paradigms)
WHERE {
# Find items that are either programming languages or types of programming languages
{
?language wdt:P31 wd:Q9143 . # programming language
} UNION {
?language wdt:P31 wd:Q116481801 . # type of programming language
}
# Get the inception date
?language wdt:P571 ?inceptionDate .
# Filter for languages created within the last 10 years
FILTER(?inceptionDate >= "2009-05-12"^^xsd:dateTime)
# Optional properties to get more information
OPTIONAL { ?language wdt:P856 ?website . } # official website
OPTIONAL {
?language wdt:P178 ?developer .
?developer rdfs:label ?developerLabel .
FILTER(lang(?developerLabel) = "en")
} # developer
OPTIONAL {
?language wdt:P3966 ?paradigm .
?paradigm rdfs:label ?paradigmLabel .
FILTER(lang(?paradigmLabel) = "en")
} # programming paradigm
?language rdfs:label ?languageLabel .
FILTER(lang(?languageLabel) = "en")
}
GROUP BY ?language ?languageLabel ?inceptionDate
ORDER BY DESC(?inceptionDate) # Sort by date, newest first
LIMIT 100
It's a good start, and i can't think of missing items off-hand, and i didn't know you could do that. I've done queries like this on the wiki sql itself locally, but i didn't know there was a notebook interface to querying like that.