0

我使用 SKOS 创建了一个本体,它包含两个概念,concept1concept2. 并且我添加了一个首选标签Temperature Sensor,以及三个备选标签Temperature@enTemp@enT@en进入concept1.

我期望的是,当我向包含或的目标概念发送请求时Temp,SKOS 将以相同的概念(在首选标签中定义)进行响应。TTemperatureTemperature 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>
4

1 回答 1

1

您提供的数据不完整;它缺少一些前缀声明,它使用相对 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 |
-----------------------------------------------
于 2015-01-15T17:02:35.867 回答