以下是我在N3中创建课程的方法:
:Person a rdfs:Class.
以下是如何指定特定的ressource是该类的实例:
:Pat a :Person.
问题:我想创建一个包含20000多个实例的类(以编程方式生成)。为我的20000个实例编写整个:Pat a :Person.
会使本体文件变得冗长。
问题:是否有解决方案缩小文件?
答案 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的说法,这种诡计没什么意义。磁盘空间很便宜,而且这种东西可以很好地压缩网络传输,并且在应用程序中进行处理时它也会被扩展。