Properties 特定类型的所有属性的SPARQL属性路径
我想创建一个查询来加载资源并自动加载由“DependencyProperty”连接的所有资源 下面的查询达到了我想要的3级深度。我想知道它是否可以改变-可能是通过属性路径以这样一种方式,它的深度是无限的Properties 特定类型的所有属性的SPARQL属性路径,properties,sparql,semantic-web,Properties,Sparql,Semantic Web,我想创建一个查询来加载资源并自动加载由“DependencyProperty”连接的所有资源 下面的查询达到了我想要的3级深度。我想知道它是否可以改变-可能是通过属性路径以这样一种方式,它的深度是无限的 SELECT * WHERE { :resourceToLoad ?p ?o. OPTIONAL { ?p rdf:type :DependencyProperty. ?o ?p2 ?o2. OPTIONAL {
SELECT * WHERE {
:resourceToLoad ?p ?o.
OPTIONAL {
?p rdf:type :DependencyProperty.
?o ?p2 ?o2.
OPTIONAL {
?p2 rdf:type :DependencyProperty.
?o2 ?p3 ?o3.
OPTIONAL {
?p3 rdf:type :DependencyProperty.
?o3 ?p4 ?o4.
}
}
}
}
所以现在我自己找到了解决办法。我补充说
:DependencyProperty rdfs:subClassOf [
a owl:Restriction;
owl:onProperty rdfs:subPropertyOf;
owl:hasValue :dependency;
]
现在,作为:DependencyProperty
的每个属性都是:dependency
的子属性,因此每当一个dependency属性作为谓词出现在三元组中时,就会创建另一个三元组:dependency作为谓词
现在我可以这样查询:
SELECT * WHERE { {
?s?p ?o
FILTER(?s= :resourceToLoad)
} UNION {
:resourceToLoad :dependency+ ?s.
?s?p ?o.
}}
所以现在我自己找到了解决办法。我补充说
:DependencyProperty rdfs:subClassOf [
a owl:Restriction;
owl:onProperty rdfs:subPropertyOf;
owl:hasValue :dependency;
]
现在,作为:DependencyProperty
的每个属性都是:dependency
的子属性,因此每当一个dependency属性作为谓词出现在三元组中时,就会创建另一个三元组:dependency作为谓词
现在我可以这样查询:
SELECT * WHERE { {
?s?p ?o
FILTER(?s= :resourceToLoad)
} UNION {
:resourceToLoad :dependency+ ?s.
?s?p ?o.
}}
从开始,然后继续到链接的…无法使用属性路径,因为属性路径中不允许使用变量。因此,单次查询无法解决您的问题根据答案,您使用的是推断,然后请添加与您的triplestore对应的标记。从开始,然后继续到链接的标记…这些标记无法处理属性路径,因为属性路径中不允许有变量。因此,单个查询无法解决问题根据答案,您使用的是推断,然后请添加与triplestore对应的标记。这仅适用于谓词为
:DependencyProperty
本身的triples,但对于类型为:dependencProperty
的属性,则不是您在问题中要求的属性-还是我错了?:a:dependencProperty:b。->:b rdfs:subpertyof:dependency代码>-这是范围公理。啊,你说得对,打字错误。。它应该是rdfs:subassof,而不是rdfs:range。这就是它的工作方式(对我来说也是如此)<代码>:a:p:b
&:p rdf:type:DependencyProperty
=>:a:dependency:b
。这只适用于谓词为:DependencyProperty
本身的三元组,但对于类型为:dependencProperty
的属性,则不是您在问题中要求的属性-还是我错了?:a:dependencProperty:b。->:b rdfs:subpertyof:dependency代码>-这是范围公理。啊,你说得对,打字错误。。它应该是rdfs:subassof,而不是rdfs:range。这就是它的工作方式(对我来说也是如此)<代码>:a:p:b
&:p rdf:type:DependencyProperty
=>:a:dependency:b
。