我正在寻找一种使用RDF建模的方法--一种用于集合关系的ORed (all)成员,以及一种用于集合的ANDed (all)成员。
手头的任务是如何表示(使用RDF语句)一个治疗方案,如下所示。
"Regimen_A“方案由药物(DB14502或DB09449)和DB11094组成
使用RDF/XML,我现在不得不提出由名单A中的一种(替代)药物和名单B中所有(非可选的)药物组成的药物组合(方案)。
a)药物方案有可能有零、一个或多个备选清单以及零、一个或多个非可选药物清单。
b)我还想把每种药物作为URIref的一种资源。( c)这些清单中的药物( ORed列表和ANDed列表)可以来自不同的数据库,如drugbank、ChEBI或WHOCC。例如,药物银行的URIref DB14502应该是"https://www.drugbank.ca/drugs/DB14502“。ChEBI药物的URI将是"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. 发布于 2019-05-29 22:57:37
您可以通过为OR引入自己的词汇表概念来表达它。
:regimenA :consistsOf [ a :Or;
:option :DB14502;
:option :DB09449 ],
:DB11094. 对于AND,您不需要任何特殊的词汇表。在您的情况下,可能更好的方法是在您介绍的词汇表中捕获域语义,而不是一般的“逻辑或”:
: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查询它,那么上述解决方案就可以了。
发布于 2019-06-08 08:29:25
发布的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. 将此海龟格式化的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>https://stackoverflow.com/questions/56354727
复制相似问题