简体   繁体   English

sparql和多个谓词组中的查询

[英]sparql and query in group of multiple predicates

I did not get the right sentence to ask the question. 我没有得到问这个问题的正确句子。 I would like to explain my problem using a sample data. 我想用样本数据解释我的问题。

let's say the triples are as below. 假设三元组如下。

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
@prefix p0: <http://www.mlacustom.com#> .
@prefix p2: <http://www.mla.com/term/> .
_:bnode7021016689601753065 p0:lastModifiedDateTime "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                           p0:lastModifiedUser "admin"^^xs:string .
<http://www.mla.com/name/4204078359> p0:hasClassingFacet "http://www.mla.com/facet/RA"^^xs:string ;
                                     p0:type "Normal"^^xs:string ;
                                     p0:classification _:bnode3452184423513029143 ,
                                                       _:bnode6827572371999795686 ;
                                     p0:recordType "Name"^^xs:string ;
                                     p0:recordNumber "4204078359"^^xs:string ;
                                     p0:stdDescriptor "classification111111"^^xs:string ;
                                     p0:establishedBy "admin"^^xs:string ;
                                     skos:prefLabel "classification111111"^^xs:string ;
                                     p0:createdBy "admin"^^xs:string ;
                                     a skos:Concept ;
                                     p0:createdDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:establishedDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:hasRAsubFacet "http://www.mla.com/subfacet/classing-subject-authors"^^xs:string ;
                                     p0:lastModifiedDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:lastModifiedDetails _:bnode7021016689601753065 ;
                                     p0:isProblematic "N,N"^^xs:string ;
                                     p0:lastModifiedBy "admin"^^xs:string ;
                                     p0:status "established"^^xs:string .
_:bnode3452184423513029143 p0:literature p2:1513 ;
                           p0:timePeriod p2:1005 ;
                           p0:language p2:3199 .
_:bnode6827572371999795686 p0:literature p2:11307 ;
                           p0:timePeriod p2:1009 ;
                           p0:language p2:31 .

please have a look at the p0:classification it has two blank nodes and both the blank nodes has triples with p0:literature, p0:timePeriod, p0:language 请看一下p0:classification它有两个空白节点,两个空白节点都有三元组,分别是p0:literature, p0:timePeriod, p0:language

Now I want to write a SPARQL query where 现在我想编写一个SPARQL查询,其中

(
   (p0:literature is p2:1513 AND  p0:timePeriod is p2:1005) AND 
   (p0:literature is p2:11307 AND p0:timePeriod is p2:1009)
) 

As per the above scenario it should return me the http://www.mla.com/name/4204078359 subject 按照上述方案,它应该返回我http://www.mla.com/name/4204078359主题

Classification can have any number of blank nodes. 分类可以具有任意数量的空白节点。

Here is one of the solutions. 这是解决方案之一。 It is possible to find many different queries. 可以找到许多不同的查询。 This one is explicit. 这是明确的。

SELECT ?s WHERE {
    ?s p0:classification ?o1 .
    ?s p0:classification ?o2 .

    ?o1 p0:literature p2:1513 ;
        p0:timePeriod p2:1005 .

    ?o2 p0:literature p2:11307 ;
        p0:timePeriod p2:1009 .
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM