0

我使用 Jena API 读取 TTL 文件并使用 Sparql 查询从它们中获取信息。这是我正在使用的查询:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX test: <http://www.test.com/Test#>
select ?property (str(?value) as ?valueLiteral) (str(count(distinct ? 
   ind)) as ?noOfValueOccurrences)
        where { ?ind rdf:type test:Lecturer. ?ind  ?property ? 
           value.
                    ?property a owl:DatatypeProperty .}
group by ?property ?value
order by ?property

我的目标是对不同的 TTL 文件运行 Sparql 查询,每个文件都有不同的 URI 或 IRI。<http://www.test.com/Test#>由于我试图在 Java 中自动执行查询,因此当我阅读.TTL文件时,我需要能够获取IRI(根据我的理解) 。

这就是我试图检索的方式:

public class Main {
     BasicConfigurator.configure();
     FileManager.get().addLocatorClassLoader(Main.class.getClassLoader());
     Model model = FileManager.get().loadModel(pathToFile, "TTL");
     System.out.println(model.getNsPrefixURI(""));
     ...
  }

返回

无效的

我是本体的新手,如果您能帮助解决这个问题,我将不胜感激。如果我提供的信息不充分,请告诉我。

先感谢您

4

0 回答 0