次のクラスと DataType プロパティを含む Jena API を使用してオノロジーを作成しました。
public class Onto {
OntClass USER,...;
OntModel model;
String uriBase;
DatatypeProperty Name,Surname,..;
ObjectProperty has_EDUCATION_LEVEL;
public Onto (){
model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_MICRO_RULE_INF );
uriBase = "http://www.something.com/";
model.createOntology(uriBase);
//Classes
USER=model.createClass(uriBase+"USER");
...
//DatatTypesProperties
Name= model.createDatatypeProperty(uriBase+"Name");
Name.setDomain(USER_AUTNENTIFICATION);
Name.setRange(XSD.xstring);
Surname= model.createDatatypeProperty(uriBase+"Surname");
Surname.setDomain(USER_AUTNENTIFICATION);
Surname.setRange(XSD.xstring);
...
//ObjectProperties
has_EDUCATION_LEVEL= model.createObjectProperty(uriBase+"has_EDUCATION_LEVEL");
has_EDUCATION_LEVEL.setDomain(USER);
has_EDUCATION_LEVEL.setRange(EDUCATION_LEVEL);}
次に、Web を介して DataType プロパティの「名前」と「姓」の値を挿入した「USER」クラスのインスタンスを作成しました。私のコードの出力は .owl ファイルですが、Protege でそれを読むと、すべての Data Properties 、Object Properties 、さらにはクラスに 2 つの接頭辞 j.1 と j.0 が含まれていることがわかりました。OWL ファイルのインスタンスのコードは次のとおりです。
<j.1:USER rdf:about="http://www.something.com/#Jhon">
<j.0:has_EDUCATION_LEVEL rdf:resource="http://www.something.com/HIGH_EDUCATION_LEVEL"/>
<j.0:Surname>Smith</j.0:Surname>
<j.0:Name>Jhon</j.0:Name>
</j.1:USER>
私はどんな助けや提案にも感謝します