我使用SKOS创建了一个本体,它包含两个概念,concept1和concept2。我给Temperature Sensor添加了一个首选标签,在concept1中添加了三个替代标签Temperature@en、Temp@en和T@en。
我期望的是,当我向包含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>发布于 2015-01-15 17:02:35
您提供的数据是不完整的;它缺少一些前缀声明,它使用相对IRIs,但没有定义基本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 |
-----------------------------------------------https://stackoverflow.com/questions/27958866
复制相似问题