1) Because DBpedia contains thousands of classes for all kinds of different things, and they would never get anywhere if they had to search the Internet to reuse other classes before publishing DBpedia data. Therefore, they created their own DBpedia ontology with their own classes. In some cases, they map DBpedia ontology classes to existing classes via rdfs:subClassOf
or owl:equivalentClass
later, as they discover existing classes. In addition, there may be subtle differences in how the FOAF defines โPersonโ and how DBpedia defines โPersonโ. For example, a fictional character such as Harry Potter, a person or not? It may be safer to define your own class so that you have full control over the definition.
2) This is a difficult decision. If there is a well-established dictionary, such as FOAF, DC, SKOS, etc., that covers your needs, then you should always use it again and not reinvent your own. If there is no suitable dictionary, or if you do not believe that the publisher of the dictionary is authoritative and will maintain the dictionary and stabilize in the end, then it is probably best to create your own. You can always combine multiple dictionaries or extend an existing dictionary with several of your own properties (in your own namespace). If you define your own classes and properties, you should always try to match them with existing classes and properties. If you have a choice between several existing dictionaries, compare with the one that is more widely used. Services such as LOV , LODstats , and Sindice Analytics can help with this.
cygri source share