Agility of the DBpedia ontology

Hi everyone.

I am currently building a query about Writers.
And I am trying to deal with the range of property “Occupation”.
I have found that “PersonFunction” is a reasonable range for “Occupation”.
But while having a look at some objects of the “Occupation” property, that are NOT of type
“PersonFunction”, I have found some weird things.

For example, the resources “Actor” and “Author” are only of type “Thing”, not of type “PersonFunction”.
the resources “Art_historian” and “Book_reviewer” are of types “Thing” and “Book” (???), but not of type “PersonFunction”.
“Biographer” is of type “Thing” and “Person” (???). But not of type “PersonFunction”


I can agree that the occupation of a Writer (or more generally the occupation of a Person) can be many classes more than just PersonFunction. It could be:

But my question is this:
how to discuss proper type hierarchy in DBPedia?
And more important: what process should be enabled to update the type hierarchy (and the types of resources in general)?

1 Like

Cleaning up the old one is an option, but with many side effects and it will be slow.
You can still edit it at and soon you will be able to debug it better with
which takes all URIs from DBpedia and Wikidata:

To achieve agility, however, we envision the Databus to hold many other ontologies by DBpedia sub-communities. One example is this here:
This is a classification built by the Czech DBpedia. It is automated, so once we get the abstract/text extraction going, it will pump out updated hypernym classifications/hierarchies.

So in my opinion, if you really want to have a good model for occupation, start a subproject and release it on the Databus, either free like “propan/lhd” and we might integrate it into core from there or paid (support in preparation).

1 Like

Professions/occupations such as Arti historian, Book reviewer, Biographer etc typically don’t have infoboxes. DBpedia types are mostly assigned by infoboxes (though datasets like Heuristic Types and LHD assign extra types not based on infoboxes).

AFAIK, there is no infobox that generates the class PersonFunction directly. Instead, that class is used as an intermediate node when RDFizing Person boxes that include many positions/occupations over time (thin politicians and sports players who may change positions and teams many times over their life).

Sorry to answer in the negative…

indeed this query shows all PersonFunction to be intermediate nodes such as (note the numeric suffix)

These don’t resolve directly, nor are served as part of the main entity, eg

 curl -L -Haccept:text/turtle


dbo:occupation  dbr:Music_teacher ,
                <> ,

But you have to SPARQL to find the properties of
Which in this case happen to be useless:

rdf:type	dbo:PersonFunction; dbo:title "Band director"@en

Good afternoon everyone,

Very happy to see that other persons are sharing my interest for ontologies :wink:

I would have a simple (?) question. I see we have access to the DBpedia ontology (the mapping link posted before)

However I came across these cases:

The two examples have an entity type [CitiesInIraq] or [historic place] which does not appear in the ontology.

So the question is: why are these types not listed in the mappings? Or can we find one of the mapping entry within these pages. I would expect having a type [City], subset of [Settlement] for the first example.

Am I clear or is it a bit confusing?

Thank you for your help!


@anthonym598 welcome to the forum.


Ramadi is not classified via the DBpedia Ontology, yet. “CitiesInIraq” is taken from the other ontologies in DBpedia, in this case Yago. I checked: and there it says:

{{Infobox settlement
|official_name          = Ramadi

and the mappings wiki says: mapToClass = City
We fixed a bug 595 in the framework for this, so it should be updated with the new release.


Here is a search over all occurrences in the Mappings Wiki:
Seems all fine:

If you need an account for the mappings wiki, please register and let us know your account.

Good evening @kurzum,

Thank you for your quick answer, and apologies for my (much) slower one. That is very helpful.

Yes I would be interested in having access to the mapping wiki, my user name is the same: AnthonyM598

One more question: how do you get the dbpedia entity type from a SPARQL query? Sorry for these questions, I am a beginner in the SPARQL / DBpedia universe.

All the best,


You are unlocked, happy mapping!

SELECT * WHERE { ?s rdf:type ?class } 


SELECT * WHERE { <> rdf:type ?o 

The mapping results will be published monthly:

Good evening everyone,

Some late night observations:

  • Uganda (Wikidata ID: Q1036) is currently under the ontology class “musical artist”. How is this possible. I have wikipedia and the infobox is of type “Country”
  • world war (Wikidata ID: Q103495) under the class “military person”
  • Foreign relations of Pakistan (Wikidata ID: Q1063596) under the class “musical artist”
  • “Freedom of Information Act” (Wikidata ID: Q1003780) under the class “political party”

How can I fix this, or how can I raise a bug?

Thanks for the support !


I have no clue which resources (both for the actual entity and the class resource) you are referring to. I had a look at and it seems all fine for the types? Please provide e.g. for Uganda all full IRIs and the source/version of the dataset you used.

Morning jfrey,

Sorry I should have provided the links:

Sorry I can only putting 2 links in a post due to my new user status

I am using the Virtuoso SPARQL Query Editor with the query below:

SELECT ?e_types WHERE {
?dbpedia_id owl:sameAs ?wikidata_id .
?dbpedia_id rdf:type ?e_types .
VALUES (?wikidata_id) {(wd:Q1011600)}
filter contains(str(?e_types),“”)

Hey @anthonym598 thanks. I don’t know as well where this is coming from. Maybe SDType extension maybe incorrect mapping or extraction. But it seems the error does not occur in fresh releases anymore for Uganda

and for world war there is barely any triple

So to conclude, this seems fixed but has potentially nothing to do with the ontology I assume