2

目标:获得某年官职人员的DBpedia资源。例如 1998 年的美国总统、现任康涅狄格州纽黑文市市长等……

在查看了总统巴拉克奥巴马、市长托尼哈普和其他一些人的 DBpedia 资源页面后,我发现唯一一致提供的信息是属性termStarttermEnd. 问题是它termStart包含termEnd多个条目,因此使用它们也会包含不正确的资源页面。我不知道如何区分正确和错误。
一个人应该很容易地获得这种性质的查询的结果,这似乎很简单。如果有人使用freebase,但freebase不是最新的,因此对纽黑文市长的查询返回空。

以下是我使用 Virtuoso 对 1998 年美国总统的查询

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>

SELECT DISTINCT ?s ?w ?dstart ?dend
WHERE {
    ?s dcterms:subject <http://dbpedia.org/resource/Category:Presidents_of_the_United_States> .
    ?w foaf:primaryTopic ?s .
    ?s prop:termStart ?dstart .
    ?s prop:termEnd ?dend .
    FILTER (?dstart < '1998-01-01'^^xsd:date && ?dend > '1998-12-31'^^xsd:date) .
}

我得到的结果是巴拉克·奥巴马、比尔·克林顿、乔治·W·布什和威廉·霍华德·塔夫脱。塔夫脱总统被包括在内,因为结束日期是 1892 年 3 月,我认为可以修复。但是,我不知道剩下的 3 个中哪一个是正确的。请记住,如果我更改上述类别,我将获得不同的职位名称。例如 Mayors_of_New_Haven_,Connecticutts 或 Governors_of_California 等...

Category:无论如何,如果我以某种方式知道后面的字符串是正确的但不知道它是什么,我可以获得正确的结果吗?或者有没有在特定日期查询任何政府职位持有人?

4

1 回答 1

2

在 SPARQL 中:

"March 1892"@en > '1998-12-31'^^xsd:date

是比较错误(值空间不兼容),因此过滤器为假。

此外 - 数据看起来很奇怪,例如:比尔·克林顿 (Bill Clinton) 的总统是 1993 年 1 月 20 日至 2001 年 1 月 20 日(根据维基百科页面),但结果有多个 dstart 条目。

于 2014-03-17T11:26:50.300 回答