是否有在N3 / Turtle本体语言中创建类的快捷方式

时间:2012-08-29 00:44:59

标签: rdf semantic-web n3 turtle-rdf

以下是我在N3中创建课程的方法:

:Person a rdfs:Class.

以下是如何指定特定的ressource是该类的实例:

:Pat a :Person.

问题:我想创建一个包含20000多个实例的类(以编程方式生成)。为我的20000个实例编写整个:Pat a :Person.会使本体文件变得冗长。

问题:是否有解决方案缩小文件?

2 个答案:

答案 0 :(得分:6)

如果你真的使用N3而不是Turtle(我怀疑),你可以使用@is ... @of关键字,如下所示:

:Person  a  rdfs:Class;
    @is a @of  :Pat, :Bob, :Chris, :Cindy, :Suzy .

几乎没有任何Turtle工具包允许这样做。

public-rdf-comments@w3.org Mail Archives还有一个关于将此功能添加到Turtle(目前由W3C作为最后通话工作草案发布)的comment by Tim Berners-Lee的长讨论主题,从{{3}开始}。然后去了一个comment by Dave Beckett要求包括该功能,再一个长线程。然后用当前RDF工作组中Turtle规范的编辑comment by Gavin Carothers对这些职位进行了总结。

然而,我怀疑这将成为Turtle最终标准化的一个特征。

顺便说一句,当它以编程方式生成(并且我猜,解析)时,有20,000条记录的问题是什么?如果您需要通过网络交换这么多数据,您可以轻松压缩它。或者,您可以使用紧凑的序列化语法,如HDT,但实现很少。

答案 1 :(得分:3)

您可以为完整的类URI定义自定义前缀,然后只需使用前缀来引用该类:

@prefix : <http://example.com/myOntology#>.
@prefix x: <http://example.com/myOntology#MyClass>.

:Alice a x: .
:Bob a x: .
:Charlie a x: .

这不是完全可读的,但只要它能得到它。

我同意Antoine的说法,这种诡计没什么意义。磁盘空间很便宜,而且这种东西可以很好地压缩网络传输,并且在应用程序中进行处理时它也会被扩展。