1

Jena のプロテッジにデータ プロパティを追加する方法は誰でも知っています。オブジェクト プロパティを簡単に追加できますが、データ プロパティではどうにか機能しません。データ プロパティ アサーションにプロパティを追加する代わりに、注釈を追加しています。多分私のコードに何か問題がありますか?

コード

 OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);


            String NS = "http://www.semanticweb.org/thato/ontologies/2012/10/9/thesis_ontology#";
            model.read(in, null);
            in.close();

            OntClass ApplicationModel = model.getOntClass(NS + "ApplicationModel");

            Individual AM20 = model.createIndividual(NS + xmlDoc.getDocumentElement().getAttribute("guid")+ theAttribute.getNodeValue(), ApplicationModel);

            Individual dom = model.getIndividual(NS + domainElement.getAttribute(attrDomain));
            Individual pha = model.getIndividual(NS + neededString.trim());
            Individual lev =  model.getIndividual(NS + lodElement.getAttribute(attrLOD));
            Individual typ = model.getIndividual(NS + theAttrType.getNodeValue());

            Property urlAdd =  model.createProperty(NS + "http://xxxxx.com");

            // Create Object Property
            ObjectProperty domain = model.createObjectProperty(NS +"hasDomain");
            ObjectProperty fase = model.createObjectProperty(NS +"hasPhase");
            ObjectProperty lod = model.createObjectProperty(NS +"hasLevelOfDetail");
            ObjectProperty type = model.createObjectProperty(NS +"hasType");

            model.add(AM20, domain, dom);
            model.add(AM20, fase, pha);
            model.add(AM20, lod, lev);
            model.add(AM20, type, typ);

            // Create Data Property
            DatatypeProperty url = model.createDatatypeProperty(NS + "hasURL");

            model.add(AM20, url, urlAdd );

            PrintStream p= new PrintStream("./src/thesis_ontology.owl");
            model.write(p, "RDF/XML-ABBREV", null);
            p.close();
4

1 に答える 1

4

私は問題を見つけたと思います。それがいつか誰かを助けることができることを願っています:D

コードは次のようになります

 OntClass ApplicationModel = model.getOntClass(NS + "ApplicationModel");

            Individual AM20 = model.createIndividual(NS + xmlDoc.getDocumentElement().getAttribute("guid")+ theAttribute.getNodeValue(), ApplicationModel);

            Individual dom = model.getIndividual(NS + domainElement.getAttribute(attrDomain));
            Individual pha = model.getIndividual(NS + neededString.trim());
            Individual lev =  model.getIndividual(NS + lodElement.getAttribute(attrLOD));
            Individual typ = model.getIndividual(NS + theAttrType.getNodeValue());


            // Create Object Property
            ObjectProperty domain = model.createObjectProperty(NS +"hasDomain");
            ObjectProperty fase = model.createObjectProperty(NS +"hasPhase");
            ObjectProperty lod = model.createObjectProperty(NS +"hasLevelOfDetail");
            ObjectProperty type = model.createObjectProperty(NS +"hasType");

            model.add(AM20, domain, dom);
            model.add(AM20, fase, pha);
            model.add(AM20, lod, lev);
            model.add(AM20, type, typ);

            // Create Data Property
            DatatypeProperty url = model.createDatatypeProperty(NS + "hasURL");

            model.add(AM20, url, "http://...");
于 2013-02-06T18:46:50.380 に答える