Node的类型结构
Node的类型结构
Node有五种子类型:Node_Blank, Node_Anon, Node_URI, Node_Variable, and Node_ANY.(即:空白结点,匿名结点,URI结点,属性结点,ANY结点)。
Jena中一共有8个类来描述Node结点,其中Node是最上层的类,其余的结点类型都是继承自Node结点。集成结构如下图所示:
(1)Node:最顶层的结点类。
属性:
ANY:Node_ANY类型,表示属于任意类型。
NULL:Node_NULL类型,表示空节点。
(以上两个属性都是static类型,所有类公有)
THRESHOLD:int类型,门限临界值(10000个)
label:Object类型,标示一个节点。
present:NodeCache类型(记录当前的节点信息?)
(2)Node_Concrete:表示本体中实际存在的节点。一共包含四种子类型:空白结点,数据结点,NULL结点,URI结点。
(3)Node_Blank:表示空白结点,如有标识没有URI的节点。(标识匿名结点,如下)|
<rdf:Description rdf:nodeID="A0">
<vcard:Family>Smith</vcard:Family>
<vcard:Given>John</vcard:Given>
</rdf:Description>
(4)Node_Literal:数据类型的结点。Literal支持不同的数据类型(String 、int等)。数据的URI是根据其类型决定的。
(5)Node_NULL:用于辨别数据库中的真实结点数据。
(6)Node_URI:可以根据URI识别的RDF结点。
(7)Node_Fluid:用于推理阶段匹配的结点。包括ANY结点和Variable结点。
(8)Node_ANY:该节点表示任意类型的意思。例如一个规则中,如果对一个statement的属性没有要求,那么可以描述属性结点为ANY。
(9)Node_Variable:该节点表示变量结点,用于描述规则中的变量。(?X等)