我必须创建一个Q& A系统,我可以使用SPARQL和DBpedia回答问题。目前,我必须使用不存在的属性对DBpedia进行许多无用的查询。我试图获取所有属性并将其放在一个txt文件中,但是我没有得到它的前缀。
我的SPARQL查询如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "io.atlanticlab.pubnubmaptracker"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
}
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.pubnub:pubnub-android-debug:3.7.10'
compile 'com.pubnub:pubnub-android:3.7.10'
}
repositories {
mavenCentral()
}
其中select distinct str(COALESCE(?property2, ?property)) as ?property where
{
?instance a <%s> .
?instance ?property ?obj .
OPTIONAL{?property rdfs:label ?property2}
}
是从DBpedia获得的标签的链接(我使用Python执行此操作),如下所示:
s
我从查询中获得的输出(CSV)是:
"http://dbpedia.org/ontology/Amphibian"
"http://dbpedia.org/ontology/AmusementParkAttraction"
"http://dbpedia.org/ontology/AnatomicalStructure"
"http://dbpedia.org/ontology/Animal"
我希望包含前缀,例如:
"prijzengeld loopbaan ($)" "Verluste" "casualties" "pertes"
"verliezen" "Kategorie" "categorie"
prop-nl:
特别是dbpedia-owl:
非常重要,因为我必须使用荷兰语属性名称。
答案 0 :(得分:2)
?属性(在其中部分查询中)是URI;这就是你真正想要的,不是吗?人类可读的前缀,如“prop-nl”,“dbpedia-owl”等,只是某些文本的缩写。并且DBpedia实际上更改了一些预定义的,因此dbpedia-owl:foo
曾用于公共端点,但现在却没有;你必须使用dbo:foo
。但<http://dbpedia.org/ontology/foo>
总能奏效。
但如果这就是你想做的事,你可以在SPARQL query to get all class label with namespace prefix defined
找到答案