2017-04-09 95 views
0

我需要检索camera.owl文件中的所有可用类(https://github.com/quoll/mulgara/blob/master/data/camera.owl)。这是我的查询,我觉得有些不妥,但很难弄清楚。如何使用SPARQL查询获取.owl文件中的所有可用类?

String queryString = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>" 
       + "PREFIX owl: <http://www.w3.org/2002/07/owl#>" 
       + "PREFIX : <http://www.xfront.com/owl/ontologies/camera/#>" 
       + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>" + 
       "SELECT DISTINCT ?class WHERE { ?s a ?class . }"; 

回答

1

你“感觉有问题”......这对计算机科学乃至任何科学都没有帮助。您应该真正描述下一次无法工作的内容,例如“不返回任何东西”或“导致例外”或“不会返回我所期望的”或...

您的查询完成您想要的操作,但仅限于那些具有实例的类。而且这个本体不包含任何实例数据。 或者,你可以查询owl:Class类型的所有资源,即你在架构层面的工作(注意,这并不只是如果有OWL类,这样的工作,为RDFS它不会工作):

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT ?class WHERE { ?class a owl:Class }