Sparql 什么';需要什么来做出这个推论?
如果我想从这些事实推断“奥巴马出生于美国”:Sparql 什么';需要什么来做出这个推论?,sparql,rdf,owl,Sparql,Rdf,Owl,如果我想从这些事实推断“奥巴马出生于美国”: Obama bornIn Hawaii Hawaii partOf USA 这两个事实足以作出推论吗?如果是,是否应该使用RDF或OWL来表示事实?有什么在线SPARQL工具可以让我快速测试基于事实的事实说明和推断吗?没有人知道什么是bornIn或的一部分。你应该自己找到一个合适的本体或模型。有几种方法可以做到这一点 OWL 2功能 OWL 2 DL功能足以做出您想要的推断。 你所需要的只是一张支票 下面是一个序列化为RDF Turtle格式
Obama bornIn Hawaii
Hawaii partOf USA
这两个事实足以作出推论吗?如果是,是否应该使用RDF或OWL来表示事实?有什么在线SPARQL工具可以让我快速测试基于事实的事实说明和推断吗?没有人知道什么是
bornIn
或的一部分。你应该自己找到一个合适的本体或模型。有几种方法可以做到这一点
OWL 2功能
OWL 2 DL功能足以做出您想要的推断。
你所需要的只是一张支票
下面是一个序列化为RDF Turtle格式的示例本体
@prefix : <http://www.semanticweb.org/ontologies/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<http://www.semanticweb.org/ontologies/ontology> rdf:type owl:Ontology .
:Obama rdf:type owl:NamedIndividual ; :bornIn :Honolulu .
:Honolulu rdf:type owl:NamedIndividual ; :partOf :Hawaii .
:Hawaii rdf:type owl:NamedIndividual ; :partOf :USA .
:USA rdf:type owl:NamedIndividual .
:bornIn rdf:type owl:ObjectProperty ; owl:propertyChainAxiom ( :bornIn :partOf ) .
:partOf rdf:type owl:ObjectProperty .
SWRL在本体论层面上运行。其他或多或少通用的规则语言(例如SPIN)在RDF序列化级别上运行
Triplestore特定规则语言
在GraphDB中,您可以定义此类“规则集”:
Prefices { obama: http://www.semanticweb.org/ontologies/ontology# }
Axioms { }
Rules
{
Id: custom
a <obama:bornIn> b
b <obama:partOf> c
-----------------------
a <obama:bornIn> c
}
我建议你试试。创建存储库时:
- 如果要使用GraphDB的规则语言,请加载上面的规则集,或者
- 如果要使用OWL2功能,请选择内置的OWL-RL规则集
没有人知道什么是
bornIn
或的一部分。你应该自己找到一个合适的本体或模型。有几种方法可以做到这一点
OWL 2功能
OWL 2 DL功能足以做出您想要的推断。
你所需要的只是一张支票
下面是一个序列化为RDF Turtle格式的示例本体
@prefix : <http://www.semanticweb.org/ontologies/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<http://www.semanticweb.org/ontologies/ontology> rdf:type owl:Ontology .
:Obama rdf:type owl:NamedIndividual ; :bornIn :Honolulu .
:Honolulu rdf:type owl:NamedIndividual ; :partOf :Hawaii .
:Hawaii rdf:type owl:NamedIndividual ; :partOf :USA .
:USA rdf:type owl:NamedIndividual .
:bornIn rdf:type owl:ObjectProperty ; owl:propertyChainAxiom ( :bornIn :partOf ) .
:partOf rdf:type owl:ObjectProperty .
SWRL在本体论层面上运行。其他或多或少通用的规则语言(例如SPIN)在RDF序列化级别上运行
Triplestore特定规则语言
在GraphDB中,您可以定义此类“规则集”:
Prefices { obama: http://www.semanticweb.org/ontologies/ontology# }
Axioms { }
Rules
{
Id: custom
a <obama:bornIn> b
b <obama:partOf> c
-----------------------
a <obama:bornIn> c
}
我建议你试试。创建存储库时:
- 如果要使用GraphDB的规则语言,请加载上面的规则集,或者
- 如果要使用OWL2功能,请选择内置的OWL-RL规则集
的一部分
既不是RDFS的一部分,也不是OWL语义的一部分,因此,没有-没有RDFS或OWL推理程序会做出这种推断。在线SPARQL工具?不,您可以使用自己的三元组存储,或者使用具有一些SPARQL插件的Protege本体编辑器,或者其他内存中的SPARQL引擎,如Apache Jena、RDF4J等,或者一些基于磁盘的三元组存储…@AKSW,那么如何使此推断成为可能呢?这似乎是一个非常常见或逻辑的推理。如果ISA只是一种推理。本例中演示的推理似乎更为常见。难道没有一种方法可以实现这一点吗?或者换句话说,当在本体论中讨论推理时,是ISA 唯一可以推断的关系?除了内置的推断关系之外的任何关系,例如rdf:type
(您称之为“is-a”)、rdfs:subassof
,当然都必须由您自己建模。在您的案例中,可以使用规则语言,如SWRL或OWL属性链axiom。显然,您应该阅读RDFS和OWL的语义,以了解推理是如何工作的。对于RDFS,有一组推理规则,对于OWL,您必须理解底层描述逻辑SROIQ的基于集合的语义。partOf
既不是RDFS的一部分,也不是OWL语义的一部分,因此,没有-没有RDFS或OWL推理器会进行此推理。在线SPARQL工具?不,您可以使用自己的三元组存储,或者使用具有一些SPARQL插件的Protege本体编辑器,或者其他内存中的SPARQL引擎,如Apache Jena、RDF4J等,或者一些基于磁盘的三元组存储…@AKSW,那么如何使此推断成为可能呢?这似乎是一种非常常见或合乎逻辑的推理。如果ISA只是一种推理。本例中演示的推理似乎更为常见。难道没有一种方法可以实现这一点吗?或者换句话说,当在本体论中讨论推理时,是ISA 唯一可以推断的关系?除了内置的推断关系之外的任何关系,例如rdf:type
(您称之为“is-a”)、rdfs:subassof
,当然都必须由您自己建模。在您的案例中,可以使用规则语言,如SWRL或OWL属性链axiom。显然,您应该阅读RDFS和OWL的语义,以了解推理是如何工作的。对于RDFS,有一组推理规则,对于OWL,您必须理解底层描述逻辑SROIQ的基于集合的语义。这是一个很好的示例,非常清楚!另外,与StarDog相比,GraphDB有什么好处,如果我必须在两者之间做出选择的话?我对StarDog不太熟悉。如果你需要猫头鹰2的全面支持,那么星狗应该是你的选择。然而,在Windows上运行它并不容易,而且也没有免费的云版本(AFAIK)。测试两者。顺便说一句,你似乎不需要:部分的及物性,我明天会编辑答案。这是一个很好的例子,非常清楚!另外,与StarDog相比,GraphDB有什么好处,如果我必须在两者之间做出选择的话?我对StarDog不太熟悉。如果你需要猫头鹰2的全面支持,那么星狗应该是你的选择。然而,在Windows上运行它并不容易,而且也没有免费的云版本(AFAIK)。测试两者。顺便说一句,你似乎不需要:部分的及物性,我明天会编辑答案。