use*_*750 5 rdf semantic-web n3 turtle-rdf
以下是我在N3中创建类的方法:
:Person a rdfs:Class.
Run Code Online (Sandbox Code Playgroud)
以下是如何指定特定的ressource是该类的实例:
:Pat a :Person.
Run Code Online (Sandbox Code Playgroud)
问题:我想创建一个包含20000多个实例的类(以编程方式生成).:Pat a :Person.
为我的20000个实例编写整体使得本体文件变得冗长.
问题:是否有解决方案使文件变小?
如果你真的使用N3而不是Turtle(我怀疑),你可以使用@is ... @of
关键字,如下所示:
:Person a rdfs:Class;
@is a @of :Pat, :Bob, :Chris, :Cindy, :Suzy .
Run Code Online (Sandbox Code Playgroud)
几乎没有任何Turtle工具包允许这样做.
public-rdf-comments@w3.org邮件档案馆还有一个很长的讨论主题,关于将这个功能添加到Turtle(目前由W3C作为最后调用工作草案发布),从Tim Berners的评论开始-李.然后由Dave Beckett发表评论,要求不再包括该功能,并再次提供一个长线程.然后通过当前RDF工作组的Turtle规范编辑Gavin Carothers的评论,对这些职位进行了总结.
但是,我怀疑当它最终标准化时,这将成为Turtle的一个特征.
顺便说一句,当它以编程方式生成(并且我猜,解析)时,有20,000条记录的问题是什么?如果您需要通过网络交换这么多数据,您可以轻松压缩它.或者,您可以使用紧凑的序列化语法,如HDT,但实现很少.
您可以为完整的类 URI 定义自定义前缀,然后仅使用该前缀来引用该类:
@prefix : <http://example.com/myOntology#>.
@prefix x: <http://example.com/myOntology#MyClass>.
:Alice a x: .
:Bob a x: .
:Charlie a x: .
Run Code Online (Sandbox Code Playgroud)
这并不完全可读,但它会尽可能短。
我同意安托万的观点,这种诡计毫无意义。磁盘空间很便宜,而且这些东西可以很好地压缩以进行网络传输,并且为了在应用程序中进行处理,无论如何它都会被扩展。