我正在尝试描述RDF中的一种动态生成的有向图,其中每个节点的值取决于其前面的节点的"求和状态"。例如第一个节点可以具有 n 值。取决于它是 m 子节点,每个节点都带有 k 值之一。这些可能具有 l 儿童节点,依此类推。
因此,RDF语句可以轻松地之间的任何2个节点和它们之间的边缘。但是,当您浏览图时,主题或父节点有效地描述了其所有祖先节点的值。
有没有一种方法来表示这种图形,而无需为节点值的每个有效置换符号代表RDF三重的主题吗?
?作为一个例子,说我想在本体中捕获具有这些属性的本体中的某些关系:
can_input_to rdfs:domain material ; rdfs:range first_process .
can_feed_into rdfs:domain first_process ; rdfs:range second_process .
has_output rdfs:domain second_process ; rdfs:range widget .
以及关于这样的实例的一些陈述:
<material_a> <can_input_to> <first_process_a>
<material_b> <can_input_to> <first_process_a>
<material_c> <can_input_to> <first_process_b>
<material_d> <can_input_to> <first_process_b>
<first_process_a> <can_feed_into> <second_process_a> //If input is <material_a> OR <material_b>
<first_process_b> <can_feed_into> <second_process_a> //If input is <material_d>
<second_process_a> <has_output> <widget_a> //If input is <material_a> AND first_process is <first_process_a>
<second_process_a> <has_output> <widget_b> //If input is <material_a> AND first_process is <first_process_b>
在本体论中如何定义或捕获这些语句的条件(//如果输入是..)?
基于父节点和推理规则的儿童价值的这种动态推断开始引入流行的GraphStores。例如,Apache Jena支持RDFS或OWL编写的急诊规则。Pellet是可以使用Java的OLW 2推理器。