如何使用SPARQL获取所有反向属性?
我需要一个SPARQL查询来获取所有可用的反向属性。经验(之前、之后、配偶等) 我在特定的域(人)上尝试了这个: 结果:如何使用SPARQL获取所有反向属性?,sparql,rdf,semantic-web,dbpedia,sparqlwrapper,Sparql,Rdf,Semantic Web,Dbpedia,Sparqlwrapper,我需要一个SPARQL查询来获取所有可用的反向属性。经验(之前、之后、配偶等) 我在特定的域(人)上尝试了这个: 结果: 请注意,您并没有要求反向属性;您要求的是对称(或倒数,或反射)属性——其中每个主题/对象对也被描述为一个对象/主题对 如果你真的想要一个更接近倒数的东西,你可以试试像这样的东西-- --但是如果你从中观察,你会注意到许多“反射”关系并不是用实际上是彼此相反的属性来表达的 ex:child和ex:parent很容易被理解为相反的概念——但是
请注意,您并没有要求反向属性;您要求的是对称(或倒数,或反射)属性——其中每个主题/对象对也被描述为一个对象/主题对 如果你真的想要一个更接近倒数的东西,你可以试试像这样的东西-- --但是如果你从中观察,你会注意到许多“反射”关系并不是用实际上是彼此相反的属性来表达的
ex:child
和ex:parent
很容易被理解为相反的概念——但是ex:sibling
,ex:brother
,ex:sister
呢?还要注意有多少“反射”属性,例如
也许,描述你为什么需要这些,以及你打算如何利用它们,将有助于其他人提供更相关的答案或其他信息……注意,你并不是在要求相反的属性;您要求的是对称(或倒数,或反射)属性——其中每个主题/对象对也被描述为一个对象/主题对 如果你真的想要一个更接近倒数的东西,你可以试试像这样的东西-- --但是如果你从中观察,你会注意到许多“反射”关系并不是用实际上是彼此相反的属性来表达的
ex:child
和ex:parent
很容易被理解为相反的概念——但是ex:sibling
,ex:brother
,ex:sister
呢?还要注意有多少“反射”属性,例如
也许,描述你为什么需要这些,以及你打算如何利用它们,将有助于其他人提供更相关的答案或其他信息……你对“反向”的理解是什么?您的示例仅显示了谓词,其中一些人同时是三元组的主语和宾语。这并不意味着什么,如果只有一个这样的三元组,它甚至会返回谓词。你在这里真正想要的属性特征是对称性,也就是说,
p(s,o)->p(o,s)
顺便说一句,你返回的结果表明它们中的大多数都是无用的,或者为什么标题应该连接两个人?对于反向属性,你显然必须计算属性对,不是吗<代码>选择不同的?谓词1?谓词2,其中{?subject a dbo:Person.?object a dbo:Person.?subject?谓词1?object.?object?predicate2?subject.filter(?predicate1!=?predicate2)}显然,这并没有提供任何真正有意义的东西,您仍然需要计算这些对的频率(p1,p2)在科学上,常见的指标是信心和支持,因为你的任务只不过是挖掘规则(这里是p1(s,o)->p2(o)(s)
)@AKSW很抱歉来晚了,逆属性指两个谓词p1 p2它们是逆的,iff(A,p1,B)和(B,p2,A),A和B分别是主语和宾语。你把什么理解为“逆”呢?您的示例只显示了谓词,其中一些人同时是三元组的主语和宾语。这并不意味着什么,如果只有一个这样的三元组,它甚至会返回谓词。您在这里真正要求的属性特征是对称性,即p(s,o)->p(o,s)
顺便说一句,您返回的结果显示它们中的大多数都是无用的,或者为什么标题应该连接两个人?对于反向属性,您显然必须计算属性对,不是吗?选择DISTINCT?predicate1?predicate2,在哪里{?subject a dbo:Person。?object a dbo:Person。?subject?predicate1?object。?object?predicate2?subject.filter(?predicate1!=?predicate2)}
显然,这并没有提供任何真正有意义的东西,您仍然需要计算给定的情况下这些对(p1,p2)发生的频率(或p2
——在科学上,常见的度量是信心和支持,因为你的任务只不过是挖掘规则(这里p1(s,o)->p2(o,s)
)@AKSW抱歉来晚了,逆属性指两个谓词p1 p2,它们是逆的,iff(A,p1,B),以及(B,p2,A),A和B分别是主语和宾语
SELECT
DISTINCT ?predicate
WHERE
{
?subject a dbo:Person .
?object a dbo:Person .
?subject ?predicate ?object .
?object ?predicate ?subject .
}
SELECT DISTINCT ?predicate
?reverse_predicate
WHERE
{
?subject a dbo:Person .
?object a dbo:Person .
?subject ?predicate ?object .
?object ?reverse_predicate ?subject .
}
ORDER BY ?predicate ?reverse_predicate