如何使用Jena添加对象属性?特殊格式



你好,我正试图在这两个人之间添加一个对象属性。我在代码中也有对象属性,个体在本体中。In只需要使用属性连接它们。代码中的个体看起来是这样的,我的问题是我从来没有使用过这个"描述"标签来处理本体。

<!-- http://vivo.iu.edu/individual/n6356 -->
<owl:Thing rdf:about="http://vivo.iu.edu/individual/n6356">
    <rdf:type rdf:resource="&bibo;Article"/>
    <rdf:type rdf:resource="&bibo;Document"/>
    <rdf:type rdf:resource="&vivo;ConferencePaper"/>
    <rdf:type rdf:resource="&vivo;InformationResource"/>
    <rdf:type rdf:resource="&owl;NamedIndividual"/>
    <rdfs:label xml:lang="en-us">Indiana University Digital Music Library Project</rdfs:label>
    <vitro:modTime rdf:datatype="&xsd;dateTime">2010-07-28T15:36:03</vitro:modTime>
    <vitro:moniker rdf:datatype="&xsd;string">conference paper</vitro:moniker>
    <bibo:doi rdf:datatype="&xsd;string">http://doi.acm.org/10.1145/379437.379774</bibo:doi>
    <title>Indiana University Digital Music Library Project</title>
    <dateTimeValue rdf:resource="http://vivo.iu.edu/individual/n4086167"/>
    <bibo:presentedAt rdf:resource="http://vivo.iu.edu/individual/n5092"/>
    <informationResourceInAuthorship rdf:resource="http://vivo.iu.edu/individual/n6257"/>
    <informationResourceInAuthorship rdf:resource="http://vivo.iu.edu/individual/n6300"/>
    <vitro:mostSpecificType rdf:resource="&vivo;ConferencePaper"/>
</owl:Thing>
<!-- http://vivo.iu.edu/individual/n6399 -->
<owl:Thing rdf:about="http://vivo.iu.edu/individual/n6399">
    <rdf:type rdf:resource="&bibo;Article"/>
    <rdf:type rdf:resource="&bibo;Document"/>
    <rdf:type rdf:resource="&vivo;ConferencePaper"/>
    <rdf:type rdf:resource="&vivo;InformationResource"/>
    <rdf:type rdf:resource="&owl;NamedIndividual"/>
    <rdfs:label xml:lang="en-us">Assessing Future Ecosystem Services: a Case Study of the Northern Highlands Lake District  Wisconsin</rdfs:label>
    <vitro:modTime rdf:datatype="&xsd;dateTime">2010-07-28T15:36:03</vitro:modTime>
    <vitro:moniker rdf:datatype="&xsd;string">conference paper</vitro:moniker>
    <bibo:doi rdf:datatype="&xsd;string">http://doi.acm.org/10.1145/379437.99999</bibo:doi>
    <title>Assessing Future Ecosystem Services: a Case Study of the Northern Highlands Lake District  Wisconsin</title>
    <dateTimeValue rdf:resource="http://vivo.iu.edu/individual/n111111"/>
    <bibo:presentedAt rdf:resource="http://vivo.iu.edu/individual/n2222"/>
    <informationResourceInAuthorship rdf:resource="http://vivo.iu.edu/individual/n3333"/>
    <informationResourceInAuthorship rdf:resource="http://vivo.iu.edu/individual/n4444"/>
    <vitro:mostSpecificType rdf:resource="&vivo;ConferencePaper"/>
</owl:Thing>

我尝试过使用这段代码,但是getter给了我空值。按名称获取两个人,获取对象属性并将其添加到模型中。

Individual doc = model.getIndividual("n6356");
Individual ref = model.getIndividual("n6399");
ObjectProperty cites = model.getObjectProperty("http://purl.org/ontology/bibo/cites");
model.add(doc,cites,ref);
RDF中的资源要么是空白节点,要么是URI节点。你的个人恰好是IRI节点,所以你需要用来检索它们
Individual doc = model.getIndividual("http://vivo.iu.edu/individual/n6356");
Individual ref = model.getIndividual("http://vivo.iu.edu/individual/n6399");

如果你要做很多这样的事情,那么这样做可能是有意义的:

final String NS = "http://vivo.iu.edu/individual/";
Individual doc = model.getIndividual(NS+"n6356");
Individual ref = model.getIndividual(NS+"n6399");

如果不将模型保存在内存中,请不要忘记将其写出来。

final String NS = "http://vivo.iu.edu/individual/";
Individual doc = model.getIndividual(NS+"n6356");
Individual ref = model.getIndividual(NS+"n6399");
ObjectProperty cites = model.getObjectProperty("http://purl.org/ontology/bibo/cites");
model.add(doc,cites,ref).write(new FileOutputStream(new File("rdf/myRDFFile.owl"));

最新更新