如何创建具有依赖关系的RDF?

如何创建具有依赖关系的RDF?,rdf,Rdf,我正在为我正在创建的相机本体而挣扎。生成单个Triples非常容易,但我想知道如何创建层次结构。基本上,我想了解我如何创建RDF图,其中主体成为对象。我只是从这个开始,所以如果我的术语不匹配,请随意调整/重写 例如: 我有一个叫做光学的课程,我想提供一系列相机的最大光圈。但是,该值取决于两个参数,即透镜位置(宽或远)和传感器格式(全帧或APS-C) 这是潜在的结果: 摄像机A: 光学元件--带位置-->宽-->带格式-->全帧----具有最大光圈-->1.8 光学器件--带位置-->电视-->格

我正在为我正在创建的相机本体而挣扎。生成单个Triples非常容易,但我想知道如何创建层次结构。基本上,我想了解我如何创建RDF图,其中主体成为对象。我只是从这个开始,所以如果我的术语不匹配,请随意调整/重写

例如:

我有一个叫做光学的课程,我想提供一系列相机的最大光圈。但是,该值取决于两个参数,即透镜位置(宽或远)和传感器格式(全帧或APS-C)

这是潜在的结果:

摄像机A:

光学元件--带位置-->宽-->带格式-->全帧----具有最大光圈-->1.8

光学器件--带位置-->电视-->格式-->全帧-->具有最大光圈-->4.0

光学器件--带位置-->宽-->带格式-->APS-C--具有最大光圈-->3.2

光学器件--带位置-->远程-->带格式-->APS-C--具有最大孔径-->6.0

摄像机B:

光学元件--带位置-->宽-->带格式-->全帧-->具有最大光圈-->4.0

光学器件--带位置-->电视-->格式-->全帧-->具有最大光圈-->8.0

等等


我如何使用RDF/XML编写代码才能达到最佳效果?

除非您想将这些关系建模为某种一般规则,否则使用Turtle(或N3,或NTriples,类似)比使用RDF/XML更容易

我认为你的例子不是你所描述的那样

主体成为客体

而是多个参数之间的关系。使用RDF,可以通过将参数分组到一个空白节点来建模

这是相机1的乌龟(假设前缀为空)

那对你有用吗


等效的RDF/XML类似于

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF 
   xmlns:ns1="http://example/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
   <rdf:Description rdf:nodeID="ub428bL0C36">
      <ns1:withFormat rdf:resource="http://example/#FullFrame"/>
      <ns1:withPosition rdf:resource="http://example/#Wide"/>
      <ns1:hasMaxAperture rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">1.8</ns1:hasMaxAperture>
   </rdf:Description>
   <rdf:Description rdf:about="http://example/#optics">
      <ns1:hasMaxAptertureDefinition rdf:nodeID="ub428bL0C36"/>
   </rdf:Description>
</rdf:RDF>

1.8

您为什么特别询问RDF/XML?当然。。。我确实看得太远了。谢谢我之所以要求使用rdf/xml,是因为我使用的是xml工作流,所以我很高兴能提供帮助,这更实用(但实际上不太干净)。从某种意义上说,它是<代码>,主体变成了对象< /代码>,但它是你的关系边的人工关节——空白节点。这在RDF/XML代码片段中很明显,其中
ub428bL0C36
在一个
RDF:Description
中是对象,在另一个
中是主题。
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF 
   xmlns:ns1="http://example/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
   <rdf:Description rdf:nodeID="ub428bL0C36">
      <ns1:withFormat rdf:resource="http://example/#FullFrame"/>
      <ns1:withPosition rdf:resource="http://example/#Wide"/>
      <ns1:hasMaxAperture rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">1.8</ns1:hasMaxAperture>
   </rdf:Description>
   <rdf:Description rdf:about="http://example/#optics">
      <ns1:hasMaxAptertureDefinition rdf:nodeID="ub428bL0C36"/>
   </rdf:Description>
</rdf:RDF>