I have read here* that ontologies (RDF's in nature) are data-driven because one can work with a small ontology and use it for an application, and later... integrate additional concepts to the same ontology to make it more robust.
My concern is how can a certain triple become more robust in the future? For example.
School : Class
Properties:
has Name : String
has Area : float
has Type : String // can be** , choices are Specialist, Faith, Free etc.
at this point, instantiating School will give us...
School X : School
has Name = School X : String
has Area = 20000.00 : float
has Type = Specialist : String <<--------------------------
The triple I am interested in is
SchoolX hasType Specialist^^string
what if later on I found out that the word Specialist has several properties underneath it, and so I have decided to create a Specialist : Class
Specialist : Class <<--------------------------
has Specialization : String // can be**
followsNationalCurriculum : boolean
...and so forth
say,
MusicSpc : Specialist
has Specialization = Music : String
followsNationalCurriculum = true
etc.
my question is.
- For those individuals that used hasType=Specialist^^string, how do you implement that the string literal "Specialist" in the older ontology must be connected to an instance of the Specialist(Cls) in the new ontology? Do you do it in Jena or OWL/RDF?
- In connection with (1), I know in Java that overloading a method can prove useful at times. Is overloading good for ontologies? s.t. hasType : String, hasType : Specialist(Cls)? And do I declare it in OWL/RDF that the URI=namespace#hasType is both a Datatype and an Object property?
I hope someone will help me on this.
References: