写RDF
我有一个模型RDF,我想把它写在一个文件中。这将是结果:
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix legal: <http://www.linked-usdl.org/ns/usdl-legal#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix price: <http://www.linked-usdl.org/ns/usdl-price#> .
@prefix usdl: <http://www.linked-usdl.org/ns/usdl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dei: <http://dei.uc.pt/rdf/dei#> .
@prefix gr: <http://purl.org/goodrelations/v1#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
rdf:Standard_M1__Small_default
rdfs:CPU "1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)"^^xsd:string ;
rdfs:RAM "1.7"^^xsd:float ;
rdfs:Platform "32-bit"^^xsd:string ;
rdfs:Storage "160"^^xsd:float .
rdfs:IOPerformance "Moderate"^^xsd:string ;
rdfs:EBS-OptimizedAvailable
"false"^^xsd:boolean ;
rdfs:OS "Linux/UNIX"^^xsd:string ;
rdfs:Cost "0.08"^^xsd:float ;
但是,当执行model.write(out,lang);时,三元组按字母顺序排列(CPU,COST,ESB ......)。当我创建模型时,按照我想要的顺序放置属性并工作。但是当我编写模型时,它按字母顺序排列。如何忽略按字母顺序编写RDF模型?另一个问题,这个rdf文件是否正确?
感谢。
答案 0 :(得分:3)
.
问题中的RDF文件格式不正确。像
这样的表格s p1 o1 ;
p2 o2 ;
p3 o3 .
应以句号结束。看起来您可能只是向我们展示了文件的前几行。
这在技术上可能不会被禁止,但在某些序列化中,RDF命名空间中实际上不是RDF词汇表的术语会引起警告,因此像rdf:Standard_M1__Small_default
和rdfs:Platform
之类的术语可能是馊主意。例如,见
5.1 The RDF Namespace and Vocabulary
RDF词汇表由此命名空间名称标识并包含 仅限以下名称:...未定义任何其他名称 遇到时应该生成警告,否则应该生成警告 表现正常。
RDF是基于图形的数据表示。 RDF图是三元组的集,并且集合没有订单。可以通过许多不同的方式序列化相同的RDF图。 Turtle 比某些格式更易于人类阅读和写入,但它只是无序数据格式的表示。因为它是无序的数据表示,所以没有真正的理由让实现记住添加内容的顺序。因此,可能没有简单的方法来维护序列化的任何特定顺序。