Jena是一套开发语义网应用的Java API。包括了对RDF,RDFS,OWL描述的ONTOLOGY模型的解析,创建,串行化等。SPARQL语句的解析,转化为SQL以及基于规则的推理引擎。
Jena提供了读取,创建,输出模型的Java API。其主要的数据结构是图Graph,但是用户的操作主要还是在Model上进行。
基本的方法是ModelFactory建立模型,model.CreateResource( uri ),再通过resource添加属性,逐步构成一个graph。以ontology为例,资源属性值三元组以一个个triple的形式保存在model中。
通过model.listStatement()方法可以得到所有Statement的游标,可以遍历模型中所有的三元组(Statement)但在取出三元组各部分时需注意,Object可以使字符,也可以是Resource,需要测试。
RDF图中的一个节点,或者ONTOLOGY中的一个资源,在RDF中以<rdf:Description rdf:about =${uri}>开始, uri指出了资源的URI。如果下面有匿名资源,或者说图中有空白节点则用<${prediction} rdf:nodeid="${anonymousenodeid}"> 另外再使用一个rdf:Description来描述这个空结点:<rdf:Description rdf:nodeid="${anonymousenodeid}">。当然人工手写的时候通过使用嵌套可以不用创建匿名资源