2015-01-15 6 views
0

SKOS를 사용하여 온톨로지를 만들었습니다. 두 개념, concept1concept2이 포함되어 있습니다. 그리고 하나의 선호 레이블 Temperature Sensor과 세 개의 대체 레이블 [email protected], [email protected][email protected]concept1에 추가했습니다. 내가 Temp, T 또는 Temperature를 포함하는 대상 개념에 요청을 보낼 때 나는 무엇을 기대SKOS에서 개념 검색을 수행하는 방법은 무엇입니까?

은 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> 
+0

어떻게이 데이터를 쿼리하는? SPARQL 사용하기? 수동으로 파일을 읽으시겠습니까? SKOS는 * 스키마 * 일 뿐이며 "SKOS를 사용하여이를 달성 할 수 있습니까?" 단순히 "yes, 그냥 altLabel 대신 prefLabel 값을 사용하십시오"입니다. 그러나 데이터를 쿼리하는 방법을 알려줘야합니다. –

+0

또한 완전한 * 예제로 작업하는 것이 훨씬 쉽습니다. "skos :"는 표준 접두어이지만 데이터에 정의되어 있지 않습니다. 상대 IRI도 있습니다 (conceptSchemeSensors). 이것은 응답에서 그것을 사용하려는 사람에게 추가적인 부담을 부과합니다. 완전한 * 예제를 제공해주십시오. –

+0

@Joshua Taylor 필자는 온톨로지 파일을로드 한 후 SPARQL을 사용하여 온톨로지를 요청합니다. 귀하의 SPARQL 쿼리 코드를 참조하십시오, 나는 내 문제를 soveld. 그러나 SKOS를 갈 길이 멀다. 당신의 도움을 주셔서 감사합니다. – Novamartin

답변

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 | 
-----------------------------------------------