我正在为我正在创建的相机本体而苦苦挣扎。生成单个 tripple 非常容易,但我想知道如何创建层次结构。基本上,我想了解我如何创建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 的海龟(假设前缀为空(
:optics :hasMaxAptertureDefinition [
:withPosition :Wide ;
:withFormat :FullFrame;
:hasMaxAperture 1.8
]
这对你有用吗?
等效的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>