对于我的大学,我正在学习RDF/OWL/SPARQL。我正在尝试构建一个利用自动分类的web应用程序,我用Protege开发了本体。现在我有了一个类智能手机和一个子类Fast_Smartphone,它的等效属性设置为:
Smartphone
and (hasCores some integer[>=4])现在,当我转到DL查询选项卡并选择Fast_smartphone类的实例时,它成功地显示了所有作为智能手机并且具有4个或更多核心的实例。但是,当我到达SPARQL查询选项卡并键入以下查询时:
SELECT *
WHERE { ?x ?y uni:Fast_smartphone}没有结果。使用以下查询:
SELECT *
WHERE {uni:Fast_smartphone ?x ?y }成功返回:
xequivalentClass
是
智能手机和(hasCores some integer>=4)
推理者被打开并同步(隐士)。我不知道为什么它不会返回与DL选项卡相同的结果。我做错了什么吗?
发布于 2016-04-13 13:18:56
SPARQL Query中的Protege不允许推理。隐士是一个非常好的推理者分类,但我不认为它是用于RL推理。
我通常在Protege上构建我的本体,并使用Hermit测试一致性和分类。但是,当我需要使用SPARQL查询数据集时,我会导出数据并将其放入triplestore (在我看来,星犬是一个很好的数据集)。
https://stackoverflow.com/questions/28877091
复制相似问题