【发布时间】:2017-05-26 20:41:08
【问题描述】:
我想使用 RDF 清点我的葡萄酒收藏,但不确定如何指定葡萄酒可以包含多种葡萄品种的百分比。下面是在 Turtle 语法中使用 rdf:bag 的尝试。
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix vin: <http://example.org/wine#> .
<http://example.org/wine/id#1001>
a <http://example.org/wine/ns#red> ;
vin:name "Quilceda Creek CVR" ;
vin:vintage "2014"^^xsd:gYear ;
vin:winery "Quilceda Creek"@en ;
vin:alcoholContent "0.15"^^xsd:decimal ;
vin:agedIn "French Oak"@en ;
vin:varietals rdf:_1, rdf:_2, rdf:_3, rdf:_4, [
a rdf:Bag ;
rdf:_1 "Cabernet Sauvignon"@en ;
rdf:_1 "0.76"^^xsd:decimal ;
rdf:_2 "Merlot"@en ;
rdf:_2 "0.20"^^xsd:decimal ;
rdf:_3 "Petit Verdot"@en ;
rdf:_3 "0.03"^^xsd:decimal ;
rdf:_4 "Malbec"@en ;
rdf:_4 "0.01"^^xsd:decimal ;
] .
当我将其转换为 XML/RDF 时,带有百分比的三元组会被丢弃。这让我认为你不应该/不能多次使用包项谓词(例如 rdf:_1)。
我还考虑过制作一袋袋子,每个品种都有一个袋子,其中包含名称和百分比。这将涉及创建更多的空白节点,这对我来说似乎不正确。最终,我希望能够检索到所有包含至少一定百分比的特定品种的葡萄酒。如果品种名称和百分比对除了在同一个袋子中之外没有定义任何关系,我不确定我是否能够做到。
我是新手,但我觉得我需要查看 RDF 模式和本体来解决这个问题。也就是说,在我完全理解我为什么需要之前,我也不想跳槽。
如果可能,如何使用 RDF 来表示葡萄酒具有一定百分比的不同品种?
【问题讨论】:
-
你必须为包中的每个项目使用一个空白节点或URI,然后你可以将相应的信息附加到项目上,例如。
rdf:_1 vin:entry1和vin:entry1 rdfs:label "Cabernet Sauvignon"@en ; vin:grapePortion "0.76"^^xsd:decimal . -
这很好用。我所做的另一项更改是将
rdf:Bag替换为rdf:Seq,以便输入时,品种将从最大百分比到最小百分比排序。
标签: rdf ontology semantic-web linked-data