rok*_*y76 3 rdf sesame uri openrdf
我的问题很简单但可能没有意义.(在这种情况下,对于那些花时间解释我原因的人感到遗憾)我想创建一个像(我没有在这里显示所有资源声明)的资源:
<owl:DatatypeProperty rdf:about="relation:isPartOf">
<rdfs:domain rdf:resource="http://www.w3.org/2004/02/skos/core#note"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#anyURI"/>
</owl:DatatypeProperty>
<rdf:Description rdf:about="resource:context:sc#c1">
<skos:note rdf:datatype="relation:isPartOf" rdf:resource="resource:context:sc#c2">
</skos:note>
</rdf:Description>
Run Code Online (Sandbox Code Playgroud)
重要的是看到关于skos的三重奏:注释关系
主题:c1 a uri.谓词:skos:注意,对象:类型化的URI
我的URI不是直接URI,而是"关系; isPartOf"uri.我创建了一个自定义typedUri类来做/我使用自制的三重商店,所以我可以使用自己的类.我改变了一点RDFXMWritter来输出这些例子.所以"它有效".我的问题更多:可以像这样输入URI吗?为什么芝麻openrdf不提供TypedURI类?我确定有充分的理由吗?任何帮助,想法或答案都会很好.
我很确定,我在某处创建TypedURi类的想法是错误的.但是哪里 ?:-) 谢谢
编辑:TypedURI并不是一种新的资源.我上下文中的URI仍然是URI.我只是在我的skos:note语句中声明,对于c1,语句的对象是"relation:isPartOf"类型的数据,数据的范围是anyURI.... typedURI有助于实现具有此范围的数据类型.
首先:不,在RDF中不能像这样输入URI.这也回答了您的第二个问题:OpenRDF Sesame不提供此功能,因为它不是RDF模型的一部分.
URI的键入(或更准确地说,使用URI标识的资源)是通过使用rdf:type关系将资源URI链接到类URI来完成的.例如,要创建ex:p1类型的资源foaf:Person,我们会说(使用Turtle的RDF语法):
ex:p1 rdf:type foaf:Person .
Run Code Online (Sandbox Code Playgroud)
在RDF中还有另一种类型,即数据类型.这仅适用于文字值,因此不能在URI上使用.它用于将文字值设为字符串,整数,日期等.
更新可能会出现混淆,因为xsd:anyURI它是RDF中的有效数据类型,并且(在XML Schema中)被定义为URI的类型.但是,在RDF中使用数据类型时,其词法空间始终是文字(因为规范只允许文字实际上具有数据类型).所以你确实可以这样做(使用Turtle语法作为文字表示法):
"http://www.example.org/some/uri"^^xsd:anyURI
Run Code Online (Sandbox Code Playgroud)
但是从RDF模型的角度来看,这不是一个URI,而是一个文字字符串(带数据类型xsd:anyURI).所以从某种意义上说,是的,你可以在RDF中为URI添加类型,但是你只能通过首先将它们"转换"为文字来实现.
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |