1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| import java.util.*;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.ontology.*;
import java.io.*;
import java.awt.*;
import com.hp.hpl.jena.vocabulary.XSD;
public class FamilyModel
{
public FamilyModel ()
{
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
String uriBase = "http://www.something.com/FAM";
model.createOntology(uriBase);
//Classes
OntClass personne = model.createClass(uriBase+"#personne");
OntClass ego = model.createClass(uriBase+"#ego");
OntClass femme = model.createClass(uriBase+"#femme");
OntClass homme = model.createClass(uriBase+"#homme");
OntClass genre = model.createClass(uriBase+"#genre");
OntClass feminin = model.createClass(uriBase+"#feminin");
OntClass masculin = model.createClass(uriBase+"#masculin");
OntClass evenement = model.createClass(uriBase+"#evenement");
OntClass deces = model.createClass(uriBase+"#deces");
OntClass mariage = model.createClass(uriBase+"#mariage");
OntClass divorce = model.createClass(uriBase+"#divorce");
//Sous-classes
genre.addSubClass(feminin);
genre.addSubClass(masculin);
personne.addSubClass(homme);
personne.addSubClass(femme);
evenement.addSubClass(deces);
evenement.addSubClass(mariage);
evenement.addSubClass(divorce);
ObjectProperty aGenre = model.createObjectProperty(uriBase+"#aGenre");
aGenre.setDomain(personne);
aGenre.setRange(genre);
DatatypeProperty aPourNom = model.createDatatypeProperty(uriBase+"#aPourNom");
aPourNom.setDomain(personne);
aPourNom.setRange(XSD.xstring);
DatatypeProperty aPourPrenom = model.createDatatypeProperty(uriBase+"#aPourPrenom");
aPourPrenom.setDomain(personne);
aPourPrenom.setRange(XSD.xstring);
DatatypeProperty aDateNaiss = model.createDatatypeProperty(uriBase+"#aDateNaiss");
aDateNaiss.setDomain(personne);
aDateNaiss.setRange(XSD.xstring);
Resource P1 = model.createResource(uriBase+"Anne", personne);
Resource P2 = model.createResource(uriBase+"Jean", personne);
Resource P3 = model.createResource(uriBase+"Patrice", personne);
Resource F = model.createResource(uriBase+"F", feminin);
Resource H = model.createResource(uriBase+"H", masculin);
Statement statement1 = model.createStatement(P1,aPourNom,"Gervais");
Statement statement2 = model.createStatement(P1,aPourPrenom,"Anne");
Statement statement3 = model.createStatement(P1,aGenre,F);
Statement statement4 = model.createStatement(P1,aDateNaiss,"20/03/1984");
model.add(statement1);
model.add(statement2);
model.add(statement3);
model.add(statement4);
//Write File
StringWriter sw = new StringWriter();
model.write(sw, "RDF/XML-ABBREV");
String owlCode = sw.toString();
File file = new File("d:/t2.rdf");
try{
FileWriter fw = new FileWriter(file);
fw.write(owlCode);
fw.close();
} catch(FileNotFoundException fnfe){
fnfe.printStackTrace();
} catch(IOException ioe){
ioe.printStackTrace();
}
}
public static void main(String args[]) {
new FamilyModel();
} |
Partager