我阅读了Inference Rules & Reasoning for Virtuoso中的教程 。在示例 16.14.9 中,他们提到了以下内容:
SQL>ttlp ('
<john1> a <person> .
<john2> a <person> .
<mary> a <person> .
<mike> a <person> .
<john1> <name> "John" .
<john2> <name> "John" .
<john1> <address> "101 A street" .
<john2> <address> "102 B street" .
<john2> <knows> <mike> .
<john1> <http://www.w3.org/2002/07/owl#sameAs> <john2> .
<mary> <knows> "John" .
<mike> <knows> <john1> .
<mike> <knows> <john2> .
<john1> <name> "Tarzan" .
<mike> <nam> "Tarzan" .
', '', 'ifps');
SQL>ttlp ('
<name> a <http://www.w3.org/2002/07/owl#InverseFunctionalProperty> .
<name> <http://www.openlinksw.com/schemas/virtrdf#nullIFPValue> "Tarzan" .
', '', 'ifp_list');
SQL>rdfs_rule_set ('ifps', 'ifp_list');
SQL>SPARQL define input:inference "ifps" SELECT * FROM <ifps> WHERE {<john1> ?p ?o};
p o
VARCHAR VARCHAR
_______________________________________________________________________________
address 101 A street
name John
http://www.w3.org/2002/07/owl#sameAs john2
http://www.w3.org/1999/02/22-rdf-syntax-ns#type person
name Tarzan
name John
knows mike
http://www.w3.org/1999/02/22-rdf-syntax-ns#type person
address 102 B street
可以看到,owl:InverseFunctionalProperty 被datatype property所使用<name>
,是不是意味着可以在Virtuoso中使用OWL Full reasoning呢?在这个问题中,第一个答案是谈论使用 OWL Full 推理和数据类型属性的问题。