Hi Arif, AFAIK, DAML format is not supported by Jena at the moment (also mentioned by Dave before). It was used around year 2000 I think, and then replaced by RDF(S)/OWL format as a standard.
I check the GEDCOM ontology, and it shouldn’t be too hard to recreate them in OWL format from scratch using protege 3.5 [1]. afterward, you could start to play with them using Jena. If you’re not familiar with ontology in general, I suggest to read an excellent introduction from Noy [1] for starter. Hope this helps, Fajar [1] http://protege.stanford.edu/download/protege/3.5/installanywhere/Web_Installers/ <http://protege.stanford.edu/download/protege/3.5/installanywhere/Web_Installers/> [2] http://protege.stanford.edu/publications/ontology_development/ontology101.pdf <http://protege.stanford.edu/publications/ontology_development/ontology101.pdf> > On 10 Dec 2015, at 10:19, M. Arif Wicaksana <[email protected]> wrote: > > Hi Dave, > > thanks for your response. > > I tried using RDFS_MEM. It gave me the classes, but I got the following > error for printing the properties: > > Exception in thread "main" org.apache.jena.ontology.ProfileException: > Attempted to use language construct OBJECT_PROPERTY that is not supported > in the current language profile: RDFS > > I am not sure I understand about this: > "However, for interpreting all the DAML specific things like > daml:Restriction you will have to work at the RDF level and do this > yourself." > What does working at the RDF level mean? (I am sorry, still new in this > topic) > > If DAML support is deprecated, does it mean that I cannot enrich the GEDCOM > ontology, and use it to do inference on a RDF file? > > > Regards, > Arif > > On Thu, Dec 10, 2015 at 9:55 AM, Dave Reynolds <[email protected]> > wrote: > >> Jena's DAML support was deprecated and then removed some time ago I think. >> >> For just finding the classes you could use an RDFS_MEM model since DAML is >> using rdfs:Class to declare classes (and not owl:Class). >> >> However, for interpreting all the DAML specific things like >> daml:Restriction you will have to work at the RDF level and do this >> yourself. >> >> Dave >> >> >> >> On 09/12/15 20:12, M. Arif Wicaksana wrote: >> >>> Hi all, >>> >>> I have a project to use GEDCOM ontology ( >>> http://www.daml.org/2001/01/gedcom/gedcom), enrich it with additional >>> classes and properties, and do some inferences against an RDF file based >>> on >>> the enriched GEDCOM ontology. >>> >>> Currently, I want to print all classes and properties from that ontology >>> (just to see if Jena can read it properly) using the code I put in the end >>> of this message. I download the ontology as 'gedcom-ori.xml'. However, the >>> code returns nothing. >>> >>> I have tried this code for another ontology which uses OWL. And it works >>> properly (prints all classes and properties). But I have no idea why it >>> does not work for GEDCOM ontology above. I suspect the problem is because >>> the ontology uses DAML. I tried my best to find in the documentation of >>> Jena about how to read DAML, but I can't find it. >>> >>> My question is, how can my code print all classes and properties from the >>> GEDCOM ontology? what is the correct way to read DAML-based ontology using >>> Jena? >>> >>> It is very likely that I misunderstand this problem, since I am still new >>> in this field. If that is the case, would you mind to show me my mistake? >>> >>> Thanks! >>> >>> >>> Regards, >>> Arif >>> >>> >>> ============= >>> code: >>> >>> OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM); >>> OntDocumentManager dm = m.getDocumentManager(); >>> dm.addAltEntry("http://www.daml.org/2001/01/gedcom/gedcom", >>> "file:/home/arif/workspace/RoyalInference/gedcom-ori.xml"); >>> >>> m.read("http://www.daml.org/2001/01/gedcom/gedcom"); >>> >>> if(m.isEmpty()) { >>> System.out.println("is empty"); >>> } else { >>> System.out.println("not empty"); >>> } >>> >>> ExtendedIterator allProperties = m.listAllOntProperties(); >>> while(allProperties.hasNext()) { >>> System.out.println("datatypeproperties: " + >>> allProperties.next().toString()); >>> } >>> >>> >>> ExtendedIterator classes = m.listClasses(); >>> >>> while(classes.hasNext()) { >>> OntClass thisClass= (OntClass) classes.next(); >>> System.out.println("found class: " + thisClass.toString()); >>> >>> ExtendedIterator instances = thisClass.listInstances(); >>> >>> while(instances.hasNext()) { >>> Individual thisInstance = (Individual) instances.next(); >>> System.out.println("found instance: " + >>> thisInstance.toString()); >>> } >>> } >>> ====================================== >>> >>>
