我使用以下简单的SPARQL查询来通过Fuseki获取本体及其子类的类列表:
SELECT DISTINCT ?subject ?object
WHERE { ?subject rdfs:subClassOf ?object }
这样,我可以看到所有类的完整URI
。现在,我想查询特定类的子类,比如abc
我查看查询的输出,我看到焦点类abc
的URI是这样的:
http://blahblahblah/file.owl#abc
因此,我提出了以下SPARQL查询来获取其子类:
SELECT DISTINCT ?subject
WHERE { ?subject rdfs:subClassOf http://blahblahblah/file.owl#abc }
但是输出是空的。我也尝试用单引号和双引号括起URL,但没有用。
SELECT DISTINCT ?subject
WHERE { ?subject rdfs:subClassOf 'http://blahblahblah/file.owl#abc' }
SELECT DISTINCT ?subject
WHERE { ?subject rdfs:subClassOf "http://blahblahblah/file.owl#abc" }
我做错了什么?
谢谢,
答案 0 :(得分:4)
syntax for IRIs in SPARQL将尖叫括号(<
和>
)中的IRI括起来。您的查询应写为:
SELECT DISTINCT ?subject
WHERE { ?subject rdfs:subClassOf <http://blahblahblah/file.owl#abc> }