Rdf SPARQL查询-类和子类提供类名和命名空间

Rdf SPARQL查询-类和子类提供类名和命名空间,rdf,semantic-web,sparql,owl,ontology,Rdf,Semantic Web,Sparql,Owl,Ontology,在给定类名和命名空间的情况下,如何使用SPARQL查询从RDF数据源获取所有类属性及其具有属性的子类?如何: 前缀rdfs: 选择子类谓词 在哪里{ ?rdfs子类:rdfs子类。 谓词rdfs:域?子类 } 尝试使用SPARQL工具,例如。如何: 前缀rdfs: 选择子类谓词 在哪里{ ?rdfs子类:rdfs子类。 谓词rdfs:域?子类 } 尝试使用SPARQL工具,例如。是否尝试执行递归SPARQL查询?换句话说,选择一个给定的个体及其所有属性。如果属性的对象是另一个个体,请选择其属

在给定类名和命名空间的情况下,如何使用SPARQL查询从RDF数据源获取所有类属性及其具有属性的子类?

如何:

前缀rdfs:
选择子类谓词
在哪里{
?rdfs子类:rdfs子类。
谓词rdfs:域?子类
}
尝试使用SPARQL工具,例如。

如何:

前缀rdfs:
选择子类谓词
在哪里{
?rdfs子类:rdfs子类。
谓词rdfs:域?子类
}

尝试使用SPARQL工具,例如。

是否尝试执行递归SPARQL查询?换句话说,选择一个给定的个体及其所有属性。如果属性的对象是另一个个体,请选择其属性,依此类推

我不相信SPARQL支持这一点

天真的方法是这样做(假设您指的是个人而不是类,这实际上符合您的需求,但不处理下一个“级别”的三元组)


请注意,如果
?o2
是任何语句的主题,此查询将不会返回它们。

是否尝试执行递归SPARQL查询?换句话说,选择一个给定的个体及其所有属性。如果属性的对象是另一个个体,请选择其属性,依此类推

我不相信SPARQL支持这一点

天真的方法是这样做(假设您指的是个人而不是类,这实际上符合您的需求,但不处理下一个“级别”的三元组)

请注意,如果
?o2
是任何语句的主题,此查询将不会返回它们。

当您说需要“类属性”时,您是指个人(类的实例)及其属性吗?当您需要子类时,您是否也需要可传递的子类(A=>B,B=>C,所以您需要A=>C)?你能提供一个你正在查询的RDF图的例子吗?当你说你想要“类属性”时,你是指个体(类的实例)及其属性吗?当您需要子类时,您是否也需要可传递的子类(A=>B,B=>C,所以您需要A=>C)?您能提供一个正在查询的RDF图的示例吗?
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?subClass ?predicate 
WHERE {
   ?subClass rdfs:subClassOf <http://dbpedia.org/ontology/Work> .
   ?predicate rdfs:domain ?subClass
}
CONSTRUCT {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
} WHERE {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
}