1

我有一个包含几个类的本地本体,例如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/#,我不相信这是正确的。我究竟做错了什么?

4

1 回答 1

1
<rdfs:Class rdf:ID="User">

表示根据基本 URI 解析“用户”,即 file:///home/myusername/。这是对的。

将基本 URI 设置为您在 model.read 操作中需要的内容,或者您​​可以提供 URI:一个有用的 XML 实体:定义实体并在 rdf:ID=".." 和 xmlns:domain=".." 中

于 2014-05-24T18:19:50.823 回答