Java Jena someValuesFrom错误-{E201}rdf:此处不允许将资源作为属性

Java Jena someValuesFrom错误-{E201}rdf:此处不允许将资源作为属性,java,jena,owl,Java,Jena,Owl,我对语义网的学习还比较陌生,所以为了便于学习,我选择编写一个我非常熟悉的本体,视频游戏 所以我想我开始有点理解这一点了,但仍然有一些问题。我的总体想法是,基本上有4个平台。假设这是非常简单的(而不是不同的游戏机,只要列出制造游戏机的公司就可以了。)总之,我遇到的问题来自以下几行: <owl:someValuesFrom rdf:resource="#Platforms"/> 我有一种感觉,我并不完全理解owl:someValuesFrom,我所看到的大多数参考本体似乎都在类似的上下

我对语义网的学习还比较陌生,所以为了便于学习,我选择编写一个我非常熟悉的本体,视频游戏

所以我想我开始有点理解这一点了,但仍然有一些问题。我的总体想法是,基本上有4个平台。假设这是非常简单的(而不是不同的游戏机,只要列出制造游戏机的公司就可以了。)总之,我遇到的问题来自以下几行:

<owl:someValuesFrom rdf:resource="#Platforms"/>
我有一种感觉,我并不完全理解owl:someValuesFrom,我所看到的大多数参考本体似乎都在类似的上下文中使用它。我几乎可以肯定,我忽略了一些简单的东西,所以也许更多的眼睛会有所帮助,但任何和所有的帮助都会得到感激。如果需要的话,我很乐意发布更多的本体论

其背景是:

<owl:Class rdf:ID="Platforms">
    <owl:oneOf rdf:parseType="Collection">
        <owl:Thing rdf:about="#PC"/>
        <owl:Thing rdf:about="#Playstation"/>
        <owl:Thing rdf:about="#Xbox"/>
        <owl:Thing rdf:about="#Nintendo"/>
    </owl:oneOf>
</owl:Class>

<owl:Class rdf:ID="Platform">
    <rdfs:label>Platform</rdfs:label>
    <owl:Restriction>
        <owl:someValuesFrom rdf:resource="#Platforms"/>
    </owl:Restriction>
</owl:Class>
其他信息:
我正在使用Jena 2.10.0(最新版本)和Eclipse。

我不确定这是否是您看到的解析错误的原因,但您的限制缺少了一点:它说明了它限制的内容(即类
平台的一些值),但没有说明限制的属性

你需要这样的东西:

<owl:Restriction>
     <owl:onProperty rdf:resource="#platformType" />
     <owl:someValuesFrom rdf:resource="#Platforms"/>
</owl:Restriction>

我不确定这是否是您看到的解析错误的原因,但您的限制有点缺失:它说明了它限制的内容(即来自类
平台的一些值),但没有说明限制的是什么属性

你需要这样的东西:

<owl:Restriction>
     <owl:onProperty rdf:resource="#platformType" />
     <owl:someValuesFrom rdf:resource="#Platforms"/>
</owl:Restriction>

谢谢,我对这方面还不太熟悉,而且文档似乎很少。我试着使用Protege,但它给出的本体似乎不同,Jena似乎不喜欢它。Protege应该能够生成Jena(或任何其他RDF工具包)可以处理的OWL本体。如果你在这方面遇到了问题,问问周围的protege或jena用户列表。真的很晚才在这里登记,但我想提供一个更新。在花了很多时间之后,我最终放弃了这个“项目”,转而专注于其他更紧迫的任务。最后,将您的回答标记为回答,很抱歉花了这么长时间!谢谢,我对这方面还不太熟悉,而且文档似乎很少。我试着使用Protege,但它给出的本体似乎不同,Jena似乎不喜欢它。Protege应该能够生成Jena(或任何其他RDF工具包)可以处理的OWL本体。如果你在这方面遇到了问题,问问周围的protege或jena用户列表。真的很晚才在这里登记,但我想提供一个更新。在花了很多时间之后,我最终放弃了这个“项目”,转而专注于其他更紧迫的任务。最后,将您的回答标记为回答,很抱歉花了这么长时间!
<owl:Restriction>
     <owl:onProperty rdf:resource="#platformType" />
     <owl:someValuesFrom rdf:resource="#Platforms"/>
</owl:Restriction>
:Platforms a owl:Class ;
           owl:oneOf ( :PC :PlayStation :Xbox :Nintendo ) .

:Platform a owl:Class ;
          rdfs:label "Platform";
          rdfs:subClassOf [ a owl:Restriction ;
                            owl:onProperty :platformType ;
                            owl:someValuesFrom :Platforms ] .