I am trying to come up with an ontology (internal) for my application. However, I want to borrow as much as I can. When I look around different existing ontology, I observe an overlap. For eg: foaf:Person and dbpedia:Person etc. Both are subclasses of their agent class, thing class etc. Although they may have different properties. Why they did not re-use/extend each others?
My question:
1) Why did not dbpedia use foaf:person or vice-versa?
2) How do you choose b/w dbpedia:Person and foaf:Person or you create your own?
I am very new to this. Please pardon my ignorance.
RDF (Resource Description Framework) is one of the three foundational Semantic Web technologies, the other two being SPARQL and OWL. In particular, RDF is the data model of the Semantic Web. That means that all data in Semantic Web technologies is represented as RDF. If you store Semantic Web data, it's in RDF.
The semantic web is based on the use of the RDF framework to organize information based on meanings. RDF statements express relationships between resources, such as the following: documents.
The RDF namespace IRI (or namespace name) is http://www.w3.org/1999/02/22-rdf-syntax-ns# and is typically used in XML with the prefix rdf although other prefix strings may be used. The RDF Vocabulary is identified by this namespace name and consists of the following names only: Syntax names — not concepts.
namespace. Namespaces are based on the domain name system of the Internet. Your namespace is an identity space on the Internet that you control.
1) Because DBpedia contains thousands of classes for all kinds of different things, and they would never have gotten anywhere if they had to search the Web for other classes to re-use before starting to publish the DBpedia data. So they created their own DBpedia ontology with their own classes. In some cases they map the DBpedia ontology classes to existing classes via rdfs:subClassOf
or owl:equivalentClass
later on as they discover existing classes. Also, there might be subtle differences in how FOAF defines “Person” and how DBpedia defines “Person”. For example, is a fictional character such as Harry Potter a person or not? It can be safer to define your own class so that you have full control over the definition.
2) It's a complex decision. If there is a well-established vocabulary such as FOAF, DC, SKOS, etc., that covers your needs, then you should always re-use it rather than inventing your own. If no applicable vocabulary exists, or if you don't trust that the publisher of the vocabulary is reputable and will keep the vocabulary up and stable in the long run, then it's probably better to create your own. You can always combine multiple vocabularies, or extend an existing vocabulary with a few properties of your own (in your own namespace). If you define classes and properties of your own, you should always try to map them to existing classes and properties. If you have the choice between multiple existing vocabularies, pic the one that's more widely used. Services like LOV, LODstats, and Sindice Analytics can help with this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With