在符号 3 中定义 class 层次结构
Define class hierarchy in Notation 3
我正在尝试开发一个简单的 Notation3 ontology 文件。
到目前为止我在 notation3 文件中的代码是
@prefix my: <http://www.codeproject.com/KB/recipes/n3_notation#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
my:batterycs a my:spec;
my:preferedby my:BusinessPerson, my:LoveBird, my:MusicLover, my:Travelar;
my:name "batteryCS".
rdfs:Person a rdfs:Class.
我正在使用 dotNetRdf 库读取和查询 ontology 文件。 n3 文件中的上述代码工作正常。但是当我插入
rdfs:Woman a rdfs:Class; rdfs:subClassOf :Person .
在 ontology 文件的末尾出现错误 Unable to resolve the QName ':Person'
似乎甚至无法将 ontology 加载到解析器。
我学习了 http://www.w3.org/2000/10/swap/Primer.html
的 n3 语法
有人可以帮我解决这个我犯了错误的地方吗
提前致谢
您的数据无效,您需要定义空前缀以便能够在 QName 中引用它,例如 :Person
QName(合格名称)是一种语法快捷方式,它允许您缩短以 prefix:name
形式编写的 URI,其中 prefix
必须引用通过先前的 [=14] 定义的已定义名称空间前缀=] 语句。然后,解析器只需查找前缀并将其与 name
部分连接起来,因此例如 rdfs:Class
在您的示例数据中扩展为 http://www.w3.org/2000/01/rdf-schema#Person
。
如果未定义前缀,则 RDF 解析器会抛出错误。
所以您需要修复数据,根据您的意图,有几种方法可以做到这一点。
您打算将 :Person
放入您自己的 my:
命名空间
只需将 :Person
替换为 my:Person
请注意,您还提到了 rdfs:Person
,因此您的数据看起来有些不一致
您打算定义一个空的命名空间
只需添加以下@prefix
定义:
@prefix : <http://example.org/namespace#> .
其中 URI 是所需的命名空间 URI
一边
您使用的是什么版本的 dotNetRDF?还有你引用的错误信息是完整的错误信息吗?
较新版本的 dotNetRDF 应该会提供更多信息性错误消息,这些消息应该告诉您您可能缺少前缀声明
我正在尝试开发一个简单的 Notation3 ontology 文件。
到目前为止我在 notation3 文件中的代码是
@prefix my: <http://www.codeproject.com/KB/recipes/n3_notation#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
my:batterycs a my:spec;
my:preferedby my:BusinessPerson, my:LoveBird, my:MusicLover, my:Travelar;
my:name "batteryCS".
rdfs:Person a rdfs:Class.
我正在使用 dotNetRdf 库读取和查询 ontology 文件。 n3 文件中的上述代码工作正常。但是当我插入
rdfs:Woman a rdfs:Class; rdfs:subClassOf :Person .
在 ontology 文件的末尾出现错误 Unable to resolve the QName ':Person'
似乎甚至无法将 ontology 加载到解析器。
我学习了 http://www.w3.org/2000/10/swap/Primer.html
的 n3 语法
有人可以帮我解决这个我犯了错误的地方吗
提前致谢
您的数据无效,您需要定义空前缀以便能够在 QName 中引用它,例如 :Person
QName(合格名称)是一种语法快捷方式,它允许您缩短以 prefix:name
形式编写的 URI,其中 prefix
必须引用通过先前的 [=14] 定义的已定义名称空间前缀=] 语句。然后,解析器只需查找前缀并将其与 name
部分连接起来,因此例如 rdfs:Class
在您的示例数据中扩展为 http://www.w3.org/2000/01/rdf-schema#Person
。
如果未定义前缀,则 RDF 解析器会抛出错误。
所以您需要修复数据,根据您的意图,有几种方法可以做到这一点。
您打算将 :Person
放入您自己的 my:
命名空间
只需将 :Person
替换为 my:Person
请注意,您还提到了 rdfs:Person
,因此您的数据看起来有些不一致
您打算定义一个空的命名空间
只需添加以下@prefix
定义:
@prefix : <http://example.org/namespace#> .
其中 URI 是所需的命名空间 URI
一边
您使用的是什么版本的 dotNetRDF?还有你引用的错误信息是完整的错误信息吗?
较新版本的 dotNetRDF 应该会提供更多信息性错误消息,这些消息应该告诉您您可能缺少前缀声明