使用 SPARQL 从 DBpedia 获取属性名称
Get Attribute names using SPARQL from DBpedia
我有一个获取一些对象和属性的查询。
例如
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT * {
?company a <http://dbpedia.org/ontology/Company> .
OPTIONAL {
?company <http://dbpedia.org/ontology/industry> ?industry .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/revenue> ?revenue_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/homepage> ?homepage_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/industry> ?industry_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/location> ?location_ .
}
}LIMIT 200
我得到了一些结果,例如
但我真正想要的是一个简单的属性字符串。像
company industry revenue homepage location
Argonon Digital media 5.0E7 United Kingdom
如何创建查询以获取属性的名称?
听起来您只想获取其中一些值的 rdfs:label。您可以通过 属性 然后 rdfs:label 和 属性 路径来做到这一点。您可能还想根据标签的语言进行过滤。您查询的另一个问题是 homepage 属性 实际上应该 dbp:属性,而不是 dbo:属性。执行此操作后,您将得到以下查询:
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT * {
?company a <http://dbpedia.org/ontology/Company> .
OPTIONAL {
?company <http://dbpedia.org/ontology/industry>/rdfs:label ?industry .
filter langMatches(lang(?industry),"en")
}
OPTIONAL {
?company <http://dbpedia.org/ontology/revenue> ?revenue_ .
}
OPTIONAL {
?company <http://dbpedia.org/property/homepage> ?homepage_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/industry>/rdfs:label ?industry_ .
filter langMatches(lang(?industry_),"en")
}
OPTIONAL {
?company <http://dbpedia.org/ontology/location>/rdfs:label ?location_ .
filter langMatches(lang(?location_),"en")
}
}LIMIT 200
我有一个获取一些对象和属性的查询。 例如
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT * {
?company a <http://dbpedia.org/ontology/Company> .
OPTIONAL {
?company <http://dbpedia.org/ontology/industry> ?industry .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/revenue> ?revenue_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/homepage> ?homepage_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/industry> ?industry_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/location> ?location_ .
}
}LIMIT 200
我得到了一些结果,例如
但我真正想要的是一个简单的属性字符串。像
company industry revenue homepage location
Argonon Digital media 5.0E7 United Kingdom
如何创建查询以获取属性的名称?
听起来您只想获取其中一些值的 rdfs:label。您可以通过 属性 然后 rdfs:label 和 属性 路径来做到这一点。您可能还想根据标签的语言进行过滤。您查询的另一个问题是 homepage 属性 实际上应该 dbp:属性,而不是 dbo:属性。执行此操作后,您将得到以下查询:
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT * {
?company a <http://dbpedia.org/ontology/Company> .
OPTIONAL {
?company <http://dbpedia.org/ontology/industry>/rdfs:label ?industry .
filter langMatches(lang(?industry),"en")
}
OPTIONAL {
?company <http://dbpedia.org/ontology/revenue> ?revenue_ .
}
OPTIONAL {
?company <http://dbpedia.org/property/homepage> ?homepage_ .
}
OPTIONAL {
?company <http://dbpedia.org/ontology/industry>/rdfs:label ?industry_ .
filter langMatches(lang(?industry_),"en")
}
OPTIONAL {
?company <http://dbpedia.org/ontology/location>/rdfs:label ?location_ .
filter langMatches(lang(?location_),"en")
}
}LIMIT 200