2017-10-04 158 views
0

如何才能获取表示图结构 - 类和属性层次结构(即没有个人,属性值)的三元组?通过SPARQL查询获取RDF图的结构

+0

对于类层次结构:'构造物,其中 {子的rdfs:??subClassOf燮}'使用谓词'RDFS类似财产层次:subPropertyOf' – AKSW

+0

或者做一个查询: 'CONSTRUCT { ?s?p?o。 } WHERE {?值p {RDFS:subClassOf的rdfs:subPropertyOf} 性s PØ }' – AKSW

+0

谢谢,但似乎我也需要RDF:???型,猫头鹰:等级:域:范围的三倍。 – palandlom

回答

0

看来我需要rdf:type,owl:class等三胞胎。所以这是我的变种:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl:  <http://www.w3.org/2002/07/owl#> 

select ?s ?p ?o 
where 
{ 
    { 
     graph <http://graph.org/gr> 
     {  
      ?s rdf:type ?o. 
      ?s ?p ?o. 
     } 
     FILTER 
      (?o IN (owl:Class, owl:DatatypeProperty, owl:AnnotationProperty, owl:ObjectProperty, owl:DataRange, owl:Ontology, 
      owl:DataRange,owl:DeprecatedClass,owl:DeprecatedProperty,owl:OntologyProperty,rdfs:Class,owl:Restriction,owl:InverseFunctionalProperty, 
      owl:FunctionalProperty,owl:AllDisjointClasses,rdf:Property, rdfs:Datatype) 
      ) 
} 
UNION 
{ 
     graph <http://graph.org/gr> 
     { 
      ?s ?p ?o. 
     } 
     FILTER 
      (?p IN (rdfs:subClassOf,rdfs:subPropertyOf,rdfs:domain,rdfs:range,rdfs:label,rdfs:comment,rdfs:member, 
      rdf:first,rdf:rest,owl:allValuesFrom,owl:someValuesFrom,owl:AnnotationProperty,owl:equivalentClass, 
      owl:equivalentProperty,owl:hasValue,owl:OntologyProperty,owl:SymmetricProperty,owl:TransitiveProperty, 
      owl:versionInfo,owl:priorVersion,owl:oneOf,owl:maxCardinality,owl:minCardinality,owl:inverseOf, 
      owl:incompatibleWith,owl:intersectionOf,owl:imports,owl:backwardCompatibleWith,owl:AllDifferent, 
      owl:differentFrom,owl:disjointWith,owl:distinctMembers,owl:complementOf,owl:cardinality,owl:unionOf,owl:onProperty)) 
     } 
} 
+0

下次应在您的问题中澄清这一点。这听起来更像是你正在查询OWL本体的所有模式公理。你仍然缺少像'?p rdf:type owl:FunctionalProperty'等公理。 – AKSW

+0

此外,你问三元组,因此,我不明白你为什么使用'SELECT'查询。 – AKSW

+0

对不起,我用解决方案混淆了三元组。 – palandlom