将对象链接到RDF域中的主题 [英] Link object to subject in RDF domain
问题描述
我有这个RDF文件:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="http://relation/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Description rdf:about="soggetto">
<j.0:Nome>Vercelli</j.0:Nome>
<j.0:Regione>Piemonte</j.0:Regione>
</rdf:Description>
<rdf:Description rdf:about="Piemonte">
<rdfs:label>Piemonte</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="Regione">
<rdfs:label>Regione</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>
<rdf:Description rdf:about="Vercelli">
<rdfs:label>Vercelli</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="Nome">
<rdfs:label>Nome</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>
</rdf:RDF>
我想将Piemonte和Vercelli对象(在"soggetto"主题中)与Piemonte和Vercelli主题相关联,并且我想将Regione和Nome谓词(在"soggetto"主题中)与Regione和Nome主题相关联.
I would like to link Piemonte and Vercelli objects (in the "soggetto" subject) with Piemonte and Vercelli subjects, and I would like to link Regione and Nome predicates (in the "soggetto" subject) with Regione and Nome subjects.
对我来说,韦尔切利主语等于韦尔切利宾语,皮埃蒙特主题等于皮埃蒙特对象,Regione谓词等于Regione主语,Nome谓词等于Nome主语.
For me, Vercelli subject is equal to Vercelli object, Piemonte subject is equal to Piemonte object, Regione predicate is equal to Regione subject, and Nome predicate is equal to Nome subject.
我如何才能做到这一点?
我可以使用rdf:type
谓词使Vercelli对象等于Vercelli主题吗?
还是存在另一个属性?
How I can accomplish this?
Can I use rdf:type
predicate to make Vercelli object equal to Vercelli subject?
Or does another attribute exist?
推荐答案
我认为您真正要问的是如何将资源用作某些主题的对象,而不是碰巧具有相似内容的字符串.首先,让我们在数据中添加一个xml:base
和一个xmlns
,以便更具可预测性:
I think that what you're really asking is how to use the resource as the object of some of the subjects instead of the a string that happens to have similar content. First, let's add an xml:base
and an xmlns
to your data, so that it's a bit more predictble:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="http://stackoverflow.com/q/24084473/1281433/relations/"
xml:base="http://stackoverflow.com/q/24084473/1281433/"
xmlns="http://stackoverflow.com/q/24084473/1281433/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Description rdf:about="soggetto">
<j.0:Nome>Vercelli</j.0:Nome>
<j.0:Regione>Piemonte</j.0:Regione>
</rdf:Description>
<rdf:Description rdf:about="Piemonte">
<rdfs:label>Piemonte</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="Regione">
<rdfs:label>Regione</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>
<rdf:Description rdf:about="Vercelli">
<rdfs:label>Vercelli</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="Nome">
<rdfs:label>Nome</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>
</rdf:RDF>
现在,与RDF/XML相比,使用Turtle/N3序列化要容易得多,因此让我们来看一下Turtle中的相同数据:
Now, it's much easier to work with a Turtle/N3 serialization than with RDF/XML, so let's look at the same data in Turtle:
@prefix : <http://stackoverflow.com/q/24084473/1281433/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix j.0: <http://stackoverflow.com/q/24084473/1281433/relations/> .
:Nome a rdf:Property ;
rdfs:label "Nome" .
:Regione a rdf:Property ;
rdfs:label "Regione" .
:Vercelli rdfs:label "Vercelli" .
:soggetto j.0:Nome "Vercelli" ;
j.0:Regione "Piemonte" .
:Piemonte rdfs:label "Piemonte" .
查看数据的结构以及如何解决该问题要容易得多.听起来好像不是在说
It's much easier to see the structure of the data, and to see what to do to fix it. It sounds like rather than saying
:soggetto j.0:Nome "Vercelli" ;
j.0:Regione "Piemonte" .
您希望将:soggetto
的区域设置为 resource :Piemonte,只需使用:Piemonte
而不是"Piemonte"
即可完成.那么您在Turtle和RDF/XML中的数据将是
you'd like to have the region of :soggetto
be the resource :Piemonte, which you can do simply by using :Piemonte
instead of "Piemonte"
. Then your data, in Turtle and RDF/XML would be
@prefix : <http://stackoverflow.com/q/24084473/1281433/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix j.0: <http://stackoverflow.com/q/24084473/1281433/relations/> .
:Nome a rdf:Property ;
rdfs:label "Nome" .
:Regione a rdf:Property ;
rdfs:label "Regione" .
:Vercelli rdfs:label "Vercelli" .
:soggetto j.0:Nome "Vercelli" ;
j.0:Regione :Piemonte .
:Piemonte rdfs:label "Piemonte" .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://stackoverflow.com/q/24084473/1281433/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:j.0="http://stackoverflow.com/q/24084473/1281433/relations/">
<rdf:Property rdf:about="http://stackoverflow.com/q/24084473/1281433/Regione">
<rdfs:label>Regione</rdfs:label>
</rdf:Property>
<rdf:Property rdf:about="http://stackoverflow.com/q/24084473/1281433/Nome">
<rdfs:label>Nome</rdfs:label>
</rdf:Property>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/soggetto">
<j.0:Nome>Vercelli</j.0:Nome>
<j.0:Regione>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Piemonte">
<rdfs:label>Piemonte</rdfs:label>
</rdf:Description>
</j.0:Regione>
</rdf:Description>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Vercelli">
<rdfs:label>Vercelli</rdfs:label>
</rdf:Description>
</rdf:RDF>
这篇关于将对象链接到RDF域中的主题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!