[英]SPARQL query not inferencing properties after class specified
我正在SPARQL上運行測試查詢以測試推理。 我的查詢如下:
PREFIX eem: <http://purl.org/eem#>
PREFIX ns: <http://purl.org/net/ns/>
PREFIX sc_data: <http://purl.org/net/ns/sc_data/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX ex: <http://www.example.org/rdf#>
SELECT ?roa
WHERE {
SERVICE <http://dbpedia.org/sparql>{
ex:vaccine a dbp:Polio_vaccine.
ex:vaccine dbpprop:routesOfAdministration ?roa.
}
}
在snorql頁面嘗試時,此查詢沒有任何結果。 當我指定某種東西是小兒麻痹症疫苗時,它不應該自動繼承為疫苗指定的特性嗎? 我需要更改什么?
在原始查詢中, ex:vaccine是URI節點,是<http://www.example.org/rdf#vaccine>的縮寫。 這是非常不可能的DBpedia中包含有關它的任何信息。 盡管DBpedia端點可能(或可能不)包含從DBpedia數據中可以推斷出的信息,但它不會將SPARQL查詢視為部分斷言和部分查詢。
您的意思是說:“查找?roa的值,以使?roa是ex:vaccine的管理途徑,而ex:vaccine是dbp:Polio_vaccine的實例”。 ex:vaccine雖然是一個常數 ,所以有點像說:“找到10的因子,順便說一下,10是3和4的總和。” 但是,“ 10是3和4的和”並不在數據中,因此即使記錄了10的因數,也不會有任何匹配。最重要的是, dbp:Polio_vaccine是DBpedia不是類,因此不會有任何實例。
相反,您想詢問單個dbpedia:Polio_vaccine的dbpprop:routesOfAdministation屬性的任何值。 您在這里需要的查詢是(我使用的是在公共端點http://dbpedia.org/sparql定義的前綴):
select ?routes where {
dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.