[英]How to do the concept search in SKOS?
我创建使用SKOS本体,它包括两个概念, concept1
和concept2
。 并且我增加了一个较佳的标签Temperature Sensor
,以及三种可选标签Temperature@en
, Temp@en
和T@en
成concept1
。
我期望的是,当我向包含Temp
, T
或Temperature
的目标概念发送请求时,SKOS将以相同的概念Temperature Sensor
(在首选标签中定义)进行响应。
我该如何实现? 使用SKOS是否可以实现这一目标? rdf
文件的一部分如下所示。
<skos:Concept rdf:about="TemperatureSensor">
<skos:altLabel xml:lang="en">T</skos:altLabel>
<skos:altLabel xml:lang="en">Temp</skos:altLabel>
<skos:altLabel xml:lang="en">Temperature</skos:altLabel>
<skos:prefLabel xml:lang="en">TemperatureSensor</skos:prefLabel>
<skos:inScheme rdf:resource="conceptSchemeSensors"/></skos:Concept>
您提供的数据不完整; 它缺少一些前缀声明,并且使用相对IRI,但未定义基本IRI。 这是我们可以使用的一些完整数据:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:Concept rdf:about="http://stackoverflow.com/q/27958866/1281433/TemperatureSensor">
<skos:altLabel xml:lang="en">T</skos:altLabel>
<skos:altLabel xml:lang="en">Temp</skos:altLabel>
<skos:altLabel xml:lang="en">Temperature</skos:altLabel>
<skos:prefLabel xml:lang="en">TemperatureSensor</skos:prefLabel>
<skos:inScheme rdf:resource="http://stackoverflow.com/q/27958866/1281433/conceptSchemeSensors"/>
</skos:Concept>
</rdf:RDF>
这是一个SPARQL查询,我们可以对相同的数据运行。 它检索所有概念,它们的首选标签及其替代标签。 然后,它使用合并来获取任何首选标签,如果没有,则使用该概念的任何替代标签。
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix : <http://stackoverflow.com/q/27958866/1281433/>
select ?concept (coalesce(sample(?prefLabel),sample(?altLabel)) as ?label) where {
?concept skos:altLabel ?altLabel ;
skos:prefLabel ?prefLabel .
}
group by ?concept
-----------------------------------------------
| concept | label |
===============================================
| :TemperatureSensor | "TemperatureSensor"@en |
-----------------------------------------------
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.