我有一个包含多个类的本地本体,例如User
:
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:domain="http://www.somedomain.com/data/#">
<rdfs:Class rdf:ID="User">
<rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent" />
<rdfs:comment>
The class of users.
</rdfs:comment>
</rdfs:Class>
</rdf:RDF>
如果我尝试打印这样的所有类:
/* Lists all classes */
ExtendedIterator<OntClass> classIterator = model.listClasses();
while (classIterator.hasNext()) {
OntClass ontClass = classIterator.next();
System.out.println(ontClass.toString());
}
我用本地路径获取它们:
file:///home/myusername/#User
而不是
http://www.somedomain.com/data/#User
这非常令人讨厌,因为我在耶拿的名称空间是file:///home/myusername/#
,我不相信这是正确的。我做错了什么?
答案 0 :(得分:1)
<rdfs:Class rdf:ID="User">
意味着解决&#34;用户&#34;针对基URI,即file:/// home / myusername /。这是正确的。
将基本URI设置为model.read操作中所需的URI,或者您可以给出URI:一个有用的XML实体:定义实体并在rdf中:ID =&#34; ..&#34;和xmlns:domain =&#34; ..&#34;