Search code examples
semantic-webontologyfoaf

How to use FOAF as part of another ontology?


I want to have a class Professor which will have some properties: name, surname and nationality.

Now I just created a class Professor, a class Person and a class Nationality, and some data properties for name and surname and an object property hasNationaity to relate a professor with a nationality.

Does it make sense to use FOAF for Person and maybe something like Group and member for the nationalities?

To do so I would need to import FOAF, right?

I guess my main question is what are the reasons that justify importing an upper ontology? and is this what people normally do?

In any case the ontology, in Turtle, is available here on GitHub.


Solution

  • Ontologies and more generally "Semantic web technologies" are dedicated to knowledge pooling.

    As Sire Tim Berners-Lee specified in its 5-Stars Ranking on Open Data, the best level of opening is reached when you "link your data to other data to provide context". So it is a good thing !

    About the "import", not all the FOAF ontology is mandatory in your case I think. Importing all statements of an ontology is, in my experience, important when you need to implement many resources relative to the upper-ontology (Graph browsing, structure modification, ...) On the other hand, the simple use of prefixes can solve many problem without weighing an application:

    xmlns:foaf="http://xmlns.com/foaf/0.1/#"
    

    About the nationality question, Group from FOAF can be a solution. Nota Bene that other ontologies may provide suited answer like YAGO (Yet Another Great Ontology). Some may create multiple imports/connections to increase the contextualisaiton of their Knowledge Base.