将对象链接到RDF域中的主题 [英] Link object to subject in RDF domain

查看:103
本文介绍了将对象链接到RDF域中的主题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆