RDF中的一对属性

RDF中的一对属性,rdf,Rdf,如何在不丢失连接的情况下为RDF中的实体指定一对(或多个)属性?(对不起,我是新手。) 例如,我想说一个GPS有一个纬度和经度的读数,但我想指定像“GPS有(纬度,经度)”这样的东西,而不是“GPS有纬度”和“GPS有经度”,因为当我有多个读数并且需要知道哪个纬度与哪个经度对应时,它会出现问题 我已经看过RDF示例,但我不太清楚如何做到这一点。 谢谢你的指点 [编辑]进一步研究后,我遇到了bnode或匿名节点。这样可以保留削片吗 从本质上讲,除非您使用RDF列表,否则您不能做这样的事情。出于可用

如何在不丢失连接的情况下为RDF中的实体指定一对(或多个)属性?(对不起,我是新手。)

例如,我想说一个GPS有一个纬度和经度的读数,但我想指定像“GPS有(纬度,经度)”这样的东西,而不是“GPS有纬度”和“GPS有经度”,因为当我有多个读数并且需要知道哪个纬度与哪个经度对应时,它会出现问题

我已经看过RDF示例,但我不太清楚如何做到这一点。
谢谢你的指点


[编辑]进一步研究后,我遇到了bnode或匿名节点。这样可以保留削片吗

从本质上讲,除非您使用RDF列表,否则您不能做这样的事情。出于可用性原因,我强烈建议您不要使用RDF列表。好消息是,使用空白节点,您可以非常接近所需的内容。例如:

:gps :hasReading [
            :longitud "x";
            :latitude "y";
      ] .
从根本上说,本例不创建对,而是创建一个带有两个输出弧的空白节点
:longitud
:latitude
。我想你需要的是记录多个读数,这可以用这个模型完美地实现:

:gps :hasReading [
            :longitud "x1";
            :latitude "y1";
      ];
      :hasReading [
            :longitud "x2";
            :latitude "y2";
      ].
此外,如果您需要为读取记录额外的属性,您可以添加任意多的属性

也可以考虑进去,在那里你会发现如下的标准表示:

@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
_:bnode a geo:Point;
    geo:lat "55.701";
    geo:long "12.552".
@前缀geo:。
@前缀rdf:。
_:b节点a地理位置:点;
geo:lat“55.701”;
地理位置:长“12.552”。

从本质上讲,除非您使用RDF列表,否则您不能做这样的事情。出于可用性原因,我强烈建议您不要使用RDF列表。好消息是,使用空白节点,您可以非常接近所需的内容。例如:

:gps :hasReading [
            :longitud "x";
            :latitude "y";
      ] .
从根本上说,本例不创建对,而是创建一个带有两个输出弧的空白节点
:longitud
:latitude
。我想你需要的是记录多个读数,这可以用这个模型完美地实现:

:gps :hasReading [
            :longitud "x1";
            :latitude "y1";
      ];
      :hasReading [
            :longitud "x2";
            :latitude "y2";
      ].
此外,如果您需要为读取记录额外的属性,您可以添加任意多的属性

也可以考虑进去,在那里你会发现如下的标准表示:

@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
_:bnode a geo:Point;
    geo:lat "55.701";
    geo:long "12.552".
@前缀geo:。
@前缀rdf:。
_:b节点a地理位置:点;
geo:lat“55.701”;
地理位置:长“12.552”。

到底是什么阻止了您使用同一谓词创建两个三元组。我不理解提供抽象层的原因。但是如果你需要提供一个包含两个变量的容器,如果订单不重要,我会使用一个袋子,如果订单不重要,我会使用seq。示例。

到底是什么阻止您使用同一谓词创建两个三元组。我不理解提供抽象层的原因。但是如果你需要提供一个包含两个变量的容器,如果订单不重要,我会使用一个袋子,如果订单不重要,我会使用seq。示例。

太棒了!正是我需要的。谢谢,太棒了!正是我需要的。非常感谢。