I'm building an ontology and I need to create the same semantic relation (the name of the relation is the same as well as the meaning in the domain) between different classes of elements. For example:
o:ClassA o:hasSemanticRelation xsd:string
o:ClassB o:hasSemanticRelation xsd:string
o:ClassC o:hasSemanticRelation xsd:string
My first approach was to create multiple domains for the property but this actually means the intersection of the concepts which is not correct in the domain. My second approach was to have a super property
owl:Thing o:hasSemanticRelation xsd:string
o:hasSemanticRelationA owl:subPropertyOf o:hasSemanticRelation
o:ClassA o:hasSemanticRelationA xsd:string
Because of the meaning of the hasSemanticRelation I want that every time it is used it can be linked to the same property, i.e., o:hasSemanticRelation
Could anyone give ideas how can I best represent this situation?