ontology-tracker
ontology-tracker copied to clipboard
multiple domains per property
The DBpedia framework currently does not support multiple domains per property but the following properties define them which result in wrong domain names. This was discovered through https://github.com/dbpedia/mappings-tracker/issues/57
child -> Person,_PersonalEvent
cyclistGenre -> Athlete,_CareerStation
deanery -> Diocese,_Parish
diocese -> Parish,_Deanery
father -> Person,_PersonalEvent
membershipAsOf -> Organisation,_Parish
mother -> Person,_PersonalEvent
territory -> MilitaryConflict,_AdministrativeRegion
voice -> TelevisionShow,_FictionalCharacter
I will try to create a similar list for ranges
There are no rdfs:range
errors but here's the complete list for rdfs:domain
dbo:mother rdfs:domain dbo:Person,_PersonalEvent .
dbo:proYear rdfs:domain dbo:Athlete,_CareerStation .
dbo:diocese rdfs:domain dbo:Parish,_Deanery .
dbo:amateurYear rdfs:domain dbo:Athlete,_CareerStation .
dbo:voice rdfs:domain dbo:TelevisionShow,_FictionalCharacter .
dbo:amateurTeam rdfs:domain dbo:Athlete,_CareerStation .
dbo:dutchMIPCode rdfs:domain dbo:ArchitecturalStructure,_Monument .
dbo:child rdfs:domain dbo:Person,_PersonalEvent .
dbo:membershipAsOf rdfs:domain dbo:Organisation,_Parish .
dbo:deanery rdfs:domain dbo:Diocese,_Parish .
dbo:territory rdfs:domain dbo:MilitaryConflict,_AdministrativeRegion .
dbo:father rdfs:domain dbo:Person,_PersonalEvent .
dbo:leadTeam rdfs:domain dbo:Athlete,_CareerStation .
dbo:cyclistGenre rdfs:domain dbo:Athlete,_CareerStation .
dbo:leadYear rdfs:domain dbo:Athlete,_CareerStation .
dbo:firstAscent rdfs:domain dbo:Mountain,Volcano .
dbo:proTeam rdfs:domain dbo:Athlete,_CareerStation .
So how are we fixing this? I suggest to use schema:domainIncludes instead of rdfs:domain, because multiple domains are in fact very useful for DBpedia, and the best way to fix some of the errors in #57 is by adding multiple domains to the property.
Similarly, we should use schema:rangeIncludes instead of rdfs:range. @alexandrutodor @Nono314 what do you think?
So far we allow a single domain/range per property which also helps simplify the extraction code. So it is convenient to keep one but we could also adapt if needed (but it's too late for this release).
I think we should put this on the ontology committee but we should first prepare the draft guidelines
If you want to have multiple domains you have to use owl:unionOf, otherwise this would result the intersection of the domain classes.
I'm more in favor of keeping a single domain in order to keep it simple. What use it is to infer that something has type owl:unionOf? (BTW at present any attempt to use domain/range for inferring types will be disastrous.)
Double domains most often indicate a mistake in class modeling, eg:
- PersonalEvent cannot have child
- Parish is an Organization so should be a subclasss
- Volcano is a kind of Mountain so should be a subclass
- Athlete is a person while CareerStation is a position, which likely indicates a mistake in the modeling of Athlete
I agree with you that there are many modeling issues. I just wanted to make sure that if you decide to have multiple domains, by default they are treated as the intersection which is usually not intended. This is often an error when users try to make an ontology.
@LorenzBuehmann I suggest to switch to schema:domainIncludes, schema:rangeIncludes. Also see #14