使用 RDF,请求有关如何将一个建模为集合的 ORed(所有)成员和一个集合的 AND(所有)成员的建议



我正在寻找一种方法来使用RDF对集合关系的1到ORed(所有)成员以及集合的1到ANDed(所有)成员进行建模。

手头的任务是如何表示(使用RDF语句三倍)如下治疗方案。

方案"Regimen_A"由药物(DB14502或DB09449)和DB11094

组成使用RDF/XML,我现在只能展示由列表A中的一种(替代)药物和列表B中的所有(非可选)药物组成的药物组合(方案)。

a) 一个药物方案可以有零个、一个或多个替代清单,以及零个、一个或多个非可选药物清单。
b) 我还想将每种药物作为具有 URIref 的资源呈现。 c) 这些清单中的药物(ORed清单和ANDed清单)可以来自不同的数据库,如药物库,ChEBI或WHOCC。 例如,药物银行药物DB14502的 URIref 将是"https://www.drugbank.ca/drugs/DB14502"。ChEBI 药物的 URI 将是"http://purl.obolibrary.org/obo/CHEBI_17012" 除了URIref之外,还需要以某种方式明确提供药物来源数据库的指示。

我一直在阅读RDF入门 https://www.w3.org/TR/rdf-primer/,目的是将下面的解决方案编码为RDF/XML,并对其进行扩展以满足上述要求,但我在这方面没有取得太大进展。

下面是RDF数据(由Jeen Broekstra提供,作为我最初问题的答案)我想转换为RDF/XML

:regimenA :consistsOf [ a :DrugAlternative; 
:option :DB14502;
:option :DB09449 ],
:DB11094. 

您可以通过为OR引入自己的词汇概念来表达它。

:regimenA :consistsOf [ a :Or; 
:option :DB14502;
:option :DB09449 ],
:DB11094. 

对于AND,您不需要任何特殊的词汇。也许在你的情况下,比起通用的"逻辑OR",更好的办法是在你引入的词汇表中捕获你的领域语义:

:regimenA :consistsOf [ a :DrugAlternative; 
:option :DB14502;
:option :DB09449 ],
:DB11094. 

你也可以使用标准的RDF词汇表来处理这类事情,使用rdf:Alt容器。它在语义上与逻辑 OR 并不完全相同,但对于大多数意图和目的,它很接近:

:regimenA :consistsOf [ a rdf:Alt; 
rdfs:member :DB14502;
rdfs:member :DB09449 ],
:DB11094. 

RDF也有用于表达列表的标准词汇表,即RDF集合词汇表。您可以按如下方式使用它:

:regimenA :consistsOf (:DB14502 :DB09449), :DB11094;

这里的潜在缺点是,这种建模方式留下了列表中项是隐含的替代项的事实。

当然,如果你想将蕴涵应用于其中任何一个,你必须超越RDF,使用像SPIN/SHACL这样的规则语言,或者像OWL这样更具表现力的本体语言。但是,如果您的目标是有一种方法来表达这一点,以便您以后可以通过例如SPARQL进行查询,那么上述解决方案就可以了。

发布的 Turtle 格式的 RDF 解决方案(由 Jeen Broekstra 提供,作为对我原始问题的答案)及其前缀将是

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://someplace.org/stuff/1.0/> .
:regimenA :consistsOf [ a :DrugAlternative; 
:option :DB14502;
:option :DB09449 ],
:DB11094. 

将这种 turtle 格式的 RDF 数据传递给 RDF/Turtle 到 RDF/XML 转换器(如"http://www.easyrdf.org/converter")会产生

<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ns0="http://someplace.org/stuff/1.0/">
<rdf:Description rdf:about="http://someplace.org/stuff/1.0/regimenA">
<ns0:consistsOf>
<ns0:DrugAlternative>
<ns0:option rdf:resource="http://someplace.org/stuff/1.0/DB14502"/>
<ns0:option rdf:resource="http://someplace.org/stuff/1.0/DB09449"/>
</ns0:DrugAlternative>
</ns0:consistsOf>
<ns0:consistsOf rdf:resource="http://someplace.org/stuff/1.0/DB11094"/>
</rdf:Description>
</rdf:RDF>

最新更新