如何让这个sparqle查询工作?

如何让这个sparqle查询工作?,sparql,semantic-web,Sparql,Semantic Web,我想在Sparql中进行以下查询: 涉及巴拉克·奥巴马和另外两名与伊利诺伊州有联系的人的社会三合会。 其中,社会三合会是一个由三个人组成的团体,每对人之间都有联系 # Find social triads involving Barack Obama and two other people who # have some connection to the state of Illinois. A social triad is a # group of three people where

我想在Sparql中进行以下查询: 涉及巴拉克·奥巴马和另外两名与伊利诺伊州有联系的人的社会三合会。 其中,社会三合会是一个由三个人组成的团体,每对人之间都有联系

# Find social triads involving Barack Obama and two other people who
# have some connection to the state of Illinois.  A social triad is a
# group of three people where there is a link between every pair.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpr: <http://dbpedia.org/resource/>
PREFIX dbpo: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT  distinct ?P1 ?P2
WHERE { 
    ?P1 a dbpo:Person.
    ?P2 a dbpo:Person.
    ?P1 dbpprop:state dbpr:Illinois.
    ?P2 dbpprop:state dbpr:Illinois.
    ?prop a rdf:Property. 

    {?P1 ?prop ?P2} UNION {?P2 ?prop ?P1}.
    {dbpedia:Barack_Obama ?prop ?P1} UNION {?P1 ?prop dbpedia:Barack_Obama}. 
    {dbpedia:Barack_Obama ?prop ?P2} UNION {?P2 ?prop dbpedia:Barack_Obama}. 

  }

但是我没有得到任何结果。我怎样才能让它工作?此外,我希望?P1和?P2是不同的人。这怎么可能呢?

如果我理解正确,那么这可能就是你想要的:

SELECT  distinct ?P1 ?P2
WHERE { 
  ?P1 a dbpo:Person.
  ?P2 a dbpo:Person.
  ?P1 dbpprop:state dbpr:Illinois.
  ?P2 dbpprop:state dbpr:Illinois.

  # all three are connected via prop
  ?P1 ?prop ?P2, dbpedia:Barack_Obama .
  ?P2 ?prop ?P1, dbpedia:Barack_Obama .
  dbpedia:Barack_Obama ?prop ?P1, ?P2 .

  # P1 and P2 are not the same, and not Barack Obama
  FILTER (?P1 != ?P2)
  FILTER (?P1 != dbpedia:Barack_Obama)
  FILTER (?P2 != dbpedia:Barack_Obama)
}

请注意,此查询仅针对具有相同属性的人的三元组?链接他们,而不是通过任何属性连接的三元组。

如果我理解正确,则这可能是您想要的:

SELECT  distinct ?P1 ?P2
WHERE { 
  ?P1 a dbpo:Person.
  ?P2 a dbpo:Person.
  ?P1 dbpprop:state dbpr:Illinois.
  ?P2 dbpprop:state dbpr:Illinois.

  # all three are connected via prop
  ?P1 ?prop ?P2, dbpedia:Barack_Obama .
  ?P2 ?prop ?P1, dbpedia:Barack_Obama .
  dbpedia:Barack_Obama ?prop ?P1, ?P2 .

  # P1 and P2 are not the same, and not Barack Obama
  FILTER (?P1 != ?P2)
  FILTER (?P1 != dbpedia:Barack_Obama)
  FILTER (?P2 != dbpedia:Barack_Obama)
}
请注意,此查询仅针对具有相同属性的人的三元组,而不是通过任何属性连接的三元组