我试图选择维基百科中所有具有特定职业,职业或以特定领域而闻名的人(即包含职业或职业的字符串)。
SELECT * WHERE {
?p a <http://dbpedia.org/ontology/Person> .
?p <http://dbpedia.org/ontology/influenced> ?influenced.
?p <http://dbpedia.org/ontology/knownFor> ?knownFor.
}
LIMIT 100
产生我想要的东西,但我也希望包括他们的职业/职业(两者都是?职业或职业),但以下内容不会返回任何内容:
SELECT * WHERE {
?p a <http://dbpedia.org/ontology/Person> .
?p <http://dbpedia.org/ontology/influenced> ?influenced.
?p <http://dbpedia.org/ontology/knownFor> ?knownFor.
?p <http://dbpedia.org/ontology/profession> ?profession.
}
LIMIT 100
或包括?职业不起作用,因为有些人没有专业入职但有职业。我只想让所有人(以及他们受影响的名单)成为一个特定的职业/职业,即“心理学”或“建筑师”。我基本上想要一张桌子:
Person | Profession/Occupation | Known For | Influenced Person | Profession/Occupation | Known For
以下显然是错误的,但是像这样....
SELECT * WHERE {
?p a <http://dbpedia.org/ontology/Person> .
?s <http://dbpedia.org/ontology/profession> ?profession. (or ?fields/?occupation)
?p <http://dbpedia.org/ontology/influenced> ?influenced.
?p <http://dbpedia.org/ontology/knownFor> ?knownFor.
?s <http://dbpedia.org/ontology/profession> ?profession. (or ?fields/?occupation)
}
LIMIT 100
答案 0 :(得分:0)
我不知道具体原因*,但似乎DBpedia中dbo:influenced
或dbo:knownFor
的人没有dbo:profession
或dbo:occupation
。< / p>
因此,您的查询无效,您必须找到其他方式来查找所需信息,可能是查看dbp:fields
或rdf:type
。
*我的猜测是dbo:influenced
和dbo:knownFor
用于科学家和科学家在DBpedia中没有职业或职业。
答案 1 :(得分:0)
DBpedia是提取维基百科的信息框。如果您查看第一个查询的结果并从中获取一个示例,请检查维基百科,您将看到在信息框中没有使用职业或职业。例如,让我们看一下http://dbpedia.org/page/Jerry_Coyne,维基百科页面是https://en.wikipedia.org/wiki/Jerry_Coyne。在维基百科页面中,我们找不到有关信息框中职业或职业的任何信息。这是因为https://en.wikipedia.org/wiki/Template:Infobox_scientist用作模板,并且该模板中没有职业/职业。另一方面,有https://en.wikipedia.org/wiki/Template:Infobox_person模板,我们可以找到职业和已知。因此,下面的查询将起作用:
SELECT * WHERE {
?p a <http://dbpedia.org/ontology/Person> .
?p <http://dbpedia.org/ontology/knownFor> ?knownFor.
?p <http://dbpedia.org/ontology/occupation> ?occupation.
}
LIMIT 100
但是这个只会查询使用https://en.wikipedia.org/wiki/Template:Infobox_person的页面的提取,并且不会返回使用https://en.wikipedia.org/wiki/Template:Infobox_scientist的任何页面。