【发布时间】:2016-02-03 21:20:43
【问题描述】:
我安装了 Jena Fuseki,并希望能够从我自己的 OWL 文件中获取课程。 以下查询返回来自 owl 和 rdfs 的类,而不是来自 ont 的类。我怎样才能找回它们?在使用 Fuseki 进行查询时,我最终想使用我自己的 OWL 本体中的部分将数据添加到 TDB。我正在使用 Fuseki 版本:2.3.1。
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix ont: <http://wad.nistorandrei.com/ontology.owl#>
SELECT ?class ?label ?description
WHERE {
?class a owl:Class.
OPTIONAL { ?class rdfs:label ?label}
OPTIONAL { ?class rdfs:comment ?description}
}
【问题讨论】:
-
“来自 owl 和 rdfs 但不是来自 ont 的类”是什么意思?如果您在本体中声明了 owl:Classes 或 rdfs:Classes,则此查询将检索它们。如果没有看到您的数据,我们将无能为力。你的本体的内容是什么?
-
当我执行上面的命令时,我可以得到“owl:Thing”、“owl:Nothing”(和其他)作为类,但我没有得到 ont:Place 或 ont:Church。你可以在wad.nistorandrei.com/ontology.owl# 看到本体。我是否需要表格中的数据才能显示我的本体?
-
你至少需要加载你的本体。正如我在回复your previous question 时所说的那样,仅在 SPARQL 查询中声明前缀除了定义 IRI 的简写之外没有任何作用。例如,我可以编写类似
prefix snowy: <http://example.org/snowy.owl#> select ...的查询;查询引擎不会尝试加载http://example.org/snowy.owl或类似的东西。这只是意味着如果snowy:x出现在查询中,它与<http://example.org/snowy.owl#x>相同。这就是全部。您仍然需要将所需的任何数据加载到数据存储中。 -
你问的问题有点像“我昨天使用数据库机器 X 并存储了一些数据。今天我在机器 Y 上安装了 MySQL,但我的查询没有返回任何内容。为什么不是?”仅仅因为您在 一个 地方定义了一些数据,并不意味着您可以在其他地方使用它而无需加载它。
标签: semantic-web owl fuseki