我使用 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(""));
...
}
返回
无效的
我是本体的新手,如果您能帮助解决这个问题,我将不胜感激。如果我提供的信息不充分,请告诉我。
先感谢您