使用OWL API JAVA从类中获取数据属性
我试图用java()的owlapi获取一个类的数据属性,但是我无法获取它 例如,类“person”有一个数据属性“hasGender”,其范围为:{“F”^^xsd:string,“M”^^xsd:string}使用OWL API JAVA从类中获取数据属性,java,api,object,range,owl,Java,Api,Object,Range,Owl,我试图用java()的owlapi获取一个类的数据属性,但是我无法获取它 例如,类“person”有一个数据属性“hasGender”,其范围为:{“F”^^xsd:string,“M”^^xsd:string} <owl:DatatypeProperty rdf:about="&lico;hasGender"> <rdfs:domain rdf:resource="&lico;Patient"/> <rdfs:range&g
<owl:DatatypeProperty rdf:about="&lico;hasGender">
<rdfs:domain rdf:resource="&lico;Patient"/>
<rdfs:range>
<rdfs:Datatype>
<owl:oneOf>
<rdf:Description>
<rdf:type rdf:resource="&rdf;List"/>
<rdf:first rdf:datatype="&xsd;string">F</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="&rdf;List"/>
<rdf:first rdf:datatype="&xsd;string">M</rdf:first>
<rdf:rest rdf:resource="&rdf;nil"/>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</owl:oneOf>
</rdfs:Datatype>
</rdfs:range>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="&lico;hasName">
<rdfs:domain rdf:resource="&lico;Patient"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
F
M
我试图获得如下数据类型:
OWLOntologyManager man = OWLManager.createOWLOntologyManager();
OWLOntology ont;
OWLDataFactory df = null;
ont = man.loadOntologyFromOntologyDocument(file);
df = ont.getOWLOntologyManager().getOWLDataFactory();
OWLClass clase = df.getOWLClass(Class);
Set<OWLDatatype> dataType = clase.getDatatypesInSignature();
OWLOntologyManager man=OWLManager.createOWLOntologyManager();
猫头鹰;
OWLDataFactory df=null;
ont=man.loadOntologyFromOntologyDocument(文件);
df=ont.getowletologyManager().getOWLDataFactory();
OWLClass clase=df.getOWLClass(Class);
Set dataType=clase.getDatatypesInSignature();
如何提取此属性和范围
提前谢谢 类在OWL中没有属性-您所尝试的将在对象的签名中获得数据类型IRI,因为对象是一个实体,其签名仅包含一个类IRI
您真正关注的是将类作为其域的一部分的数据属性,因此您需要从本体中获取所有数据属性域公理(可能包括导入),并检查域是否包含该类-即,该类出现在公理的签名中,或者如果您使用的是推理器,类是否具有作为超类的域。类在OWL中没有属性-您尝试的将在对象的签名中获得数据类型IRI,因为对象是一个实体,其签名仅包含类IRI 您真正关注的是将类作为其域的一部分的数据属性,因此您需要从本体中获取所有数据属性域公理(可能包括导入),并检查域是否包含该类-即,该类出现在公理的签名中,或者如果您使用的是推理器,类是否将域作为超类