Ah, OK. I'm not suggesting making sultan (Q43292) (in the general case) be a head of government (Q2285706), but I think it's accurate for Sultan of Oman (Q28478447).
Having subclasses without instances surprised me too, as my brain is more used to dealing with these terms and concepts in software engineering than in linked data modelling, so I'm certainly open to persuasion that my understanding is completely wrong. But Wikidata has lots of subclasses without instances:
SELECT (COUNT(?child) AS ?count) WHERE { ?child wdt:P279 ?parent }
shows that we have about 2.2M subclasses in Wikidata at the moment.
SELECT (COUNT(?child) AS ?count)
WHERE {
?child wdt:P279 ?parent FILTER NOT EXISTS { ?instance wdt:P31 ?child }
<nowiki>}</nowiki>
times out, but we can get the first million such items:
SELECT DISTINCT ?child
WHERE {
?child wdt:P279 ?parent
FILTER NOT EXISTS { ?instance wdt:P31 ?child }
}
LIMIT 1000000
For now I think it's better to have Sultan of Oman (Q28478447) modelled the same way as every other Head of Government entry, so that queries against the data will return consistent results. I'm certainly open to persuasion that we should go through and change all of those to be instances instead of subclasses, but I've just been following what already exists, and faced with at least a million such cases, accepting it's my understanding that's off, rather than the data…
Happy to look at any pointers you can give for how else we could go about this.