I add n-ary relation with this code:

    OntModel m=
ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF);
    String ns ="http://www.w3.org/2002/07/owl#";;
    String base="http://www.w3.org/2002/07/owl";;
    //create classes
    OntClass f = m.createClass(ns+ "femme" );
    OntClass h = m.createClass(ns+ "homme" );
    OntClass d = m.createClass(ns+ "Date" );
    //create objectProperty
    OntClass n = m.createClass(ns + "n-ary" );
    ObjectProperty nf = m.createObjectProperty( ns + "n-femme" );
        nf.addDomain(n); nf.addRange(f);
        ObjectProperty nh = m.createObjectProperty( ns + "n-homme" );
        nh.addDomain(n); nh.addRange(h);
        ObjectProperty nd = m.createObjectProperty( ns + "n-date" );
        nd.addDomain(n); nd.addRange(d);
      // create individual
    Individual h1 = m.createIndividual( ns+"john", h );//ns
    Individual f1 = m.createIndividual( ns + "pretty", f );
    Individual n1 = m.createIndividual( ns + "instance-n-ary", n );
    Individual d1 = m.createIndividual( ns + "1997", d );
    //add values in objectProperty
    n1.addProperty(nd,d1);
    n1.addProperty(nf,f1);
    n1.addProperty(nh,h1);
    FileOutputStream writer =new
FileOutputStream("G:\\thése\\Rech12\\ENCD\\pizza\\context.owl");
        m.write(writer, "RDF/XML");
and I get this result:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns:owl="http://www.w3.org/2002/07/owl#";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"; >
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#n-femme";>
    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#femme"/>
    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#n-ary"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#femme";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#n-ary";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#n-date";>
    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Date"/>
    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#n-ary"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#1997";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Date"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#n-homme";>
    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#homme"/>
    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#n-ary"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Date";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#instance-n-ary";>
    <owl:n-homme rdf:resource="http://www.w3.org/2002/07/owl#john"/>
    <owl:n-femme rdf:resource="http://www.w3.org/2002/07/owl#pretty"/>
    <owl:n-date rdf:resource="http://www.w3.org/2002/07/owl#1997"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#n-ary"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#homme";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#john";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#homme"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#pretty";>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#femme"/>
  </rdf:Description>
</rdf:RDF>

but, I do not know if this code is correct or not
please, give me a response

Reply via email to