sparql and query in group of multiple predicates

丶灬走出姿态 提交于 2019-12-11 15:49:03

问题


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

Now I want to write a SPARQL query where

(
   (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

Classification can have any number of blank nodes.


回答1:


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 .
}


来源:https://stackoverflow.com/questions/52368573/sparql-and-query-in-group-of-multiple-predicates

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!