Jena SPARQL hello world Updated +Created
They have a tutorial at: jena.apache.org/tutorials/sparql.html
Once you've done the Apache Jena CLI tools setup we can query all users with Full Name (FN) "John Smith" directly fom the rdf/vcard.ttl Turtle RDF file with the rdf/vcard.rq SPARQL query:
sparql --data=rdf/vcard.ttl --query=rdf/vcard.rq
and that outputs:
---------------------------------
| x                             |
=================================
| <http://somewhere/JohnSmith/> |
---------------------------------
Nobel Prize winner without a PhD Updated +Created
Here's a SPARQL sketch for Wikidata that can be run at query.wikidata.org/. It gathers all the relevant data, but TODO we don't know how to do the proper query yet:
# List of living Nobel Laureates sorted by date of birth 
SELECT DISTINCT ?recipient ?recipientLabel $birthDate ?awardLabel ?nobelDate ?educatedAtLabel ?academicDegree ?academicDegreeLabel ?doctorateDate
WHERE { 
  ?recipient wdt:P31 wd:Q5 ; # recepient is human (Peace prize can go to organizations) 
             wdt:P569 ?birthDate ; 
             p:P166 ?awardStat . # recepient was awarded something 
  ?awardStat ps:P166 ?award .
  ?award wdt:P279* wd:Q7191 . # received any subclass of nobel prize (physics, chemistry, etc.) 
  ?awardStat pq:P585 ?nobelDate .
  ?recipient p:P69 ?recipientEducatedAt .
  ?recipientEducatedAt ps:P69 ?educatedAt .
  ?recipientEducatedAt pq:P512 ?academicDegree .
  ?academicDegree wdt:P279* wd:Q849697 .
  OPTIONAL{ ?recipientEducatedAt pq:P582 ?doctorateDate . }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } 
} 
ORDER BY ASC(?birthDate) ASC(?nobelDate) ASC(?awardLabel)
Getting a list of all currencies from Wikidata with SPARQL Updated +Created
I've had a bit more fun with SPARQL and Wikidata.
This one was way harder than my previous fun with "find the oldest people who won a given prize" (Nobel Prize/Oscar) mastodon.social/@cirosantilli/112689376315990248 because unlike those prizes where all the decisions are centralized, countries are much more complicated beasts, with changing currencies and international recognition.
This was a good experience to see a few ways in which Wikidata is inconsistent, with the same concept being expressed in multiple different ways, e.g. "end time" property of the current vs the superior "end time" qualifier.
Particularly bad is the notion of a "deprecated rank", that should really not exist.
This is exactly the type of semi interactive data munching that I like to do, a bit in the same vein as CIA 2010 covert communication websites and Cool data embedded in the Bitcoin blockchain.
As you might imagine, the secret services use exactly this type of knowledge modelling to do their dirty business, e.g. Gaffer by the GCHQ.
If only I weren't such a rebel, I'd be a perfect fit for the intelligence agencies.
This is the best monstrosity I had the patience to come up with:
SELECT
  ?currency
  (GROUP_CONCAT(DISTINCT ?currencyIsoCode; SEPARATOR=", ") AS ?currencyIsoCodes)
  ?currencyLabel
  (GROUP_CONCAT(DISTINCT ?countryLabel; SEPARATOR=", ") AS ?countries)
WHERE {
  ?country wdt:P31/wdt:P279* wd:Q6256. # is country
  ?country p:P38 ?countryHasCurrency.
  ?countryHasCurrency ps:P38 ?currency.
  ?countryHasCurrency wikibase:rank ?countryHasCurrencyRank.
  OPTIONAL {
    ?currency p:P498 ?currencyHasIsoCode.
    ?currencyHasIsoCode ps:P498 ?currencyIsoCode.
  }
  FILTER NOT EXISTS {?country wdt:P576 ?countryAbolished}
  FILTER NOT EXISTS {?currency wdt:P576 ?currencyAbolished}
  FILTER NOT EXISTS {?currency wdt:P582 ?currencyEndTime}
  FILTER NOT EXISTS {?countryHasCurrency pq:P582 ?countryHasCurrencyEndtime}
  FILTER (?countryHasCurrencyRank != wikibase:DeprecatedRank)
  FILTER (!bound(?currencyHasIsoCode) || ?currencyHasIsoCode != wikibase:DeprecatedRank)
  # TODO makes query take timeout? Why? Needed to exclude PLZ.
  FILTER NOT EXISTS {?currencyHasIsoCode pq:P582 ?currencyHasIsoCodeEndtime}
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
    ?currency rdfs:label ?currencyLabel .
    ?country rdfs:label ?countryLabel .
  }
}
GROUP BY ?currency ?currencyLabel
ORDER BY ?currencyIsoCodes ?currencyLabel
It got quite close to the ISO 4217 list.
I was drawn into this waste of time after I noticed that someone had managed to create the Wikipedia of PsiQuantum which I had tried earlier but got deleted: mastodon.social/@cirosantilli/113488891292906243, and then I made the mistake of having a look at the Wikidata page of PsiQuantum.
Figure 1.
500,000 Transnistrian ruble banknote 1997 series
. This is one of the most widely used currencies which does not have an ISO 4217 code.
Another highlight was 1913 Nobel Prize in Chemistry laureate Alfred Werner who born either in Mulhouse in Alsace, France, or in "Yo no sé qué me pasó" ("I don't know what happened to me" in Spanish), a 1986 song by Mexican singer Juan Gabriel.