2013-12-17 3 views
-1

으로 이해할 수 있기 때문에 smb가 SPARQL을 도와줍니다.Protege에서 SPARQL의 간단한 요청을

어떻게이 온톨로지

https://www.dropbox.com/s/m25d6x3ej7ppjw4/MyProject.owl

I 1 개 이상의 방법을 만들 저자에 대한 정보를 볼 수 있어야에서 정보를 볼 수 있습니다.

이른 1900

보다 그리고 마지막에 생성 된 방법에 대한

정보, 영역에서 사용 된 "사용 분야"및 방법의 이름입니다.

간단한 예를 들어 SPARQL 구문을 사용하여 링크를 제공 할 수 있으면 좋을 것입니다.

+0

"간단한 예를 들어 SPARQL 구문을 사용하여 링크를 제공 할 수 있으면 좋을 것입니다. 또는 어떻게 작동하는지 설명 할 수 있습니다.": "도구, 라이브러리 또는 즐겨 찾기를 추천하거나 찾도록 요청하는 질문 오프 사이트 (off-topic) 리소스는 독창적 인 답변과 스팸을 끌어 들이기 때문에 주제를 벗어났습니다. 대신 문제를 설명하고 해결하기 위해 무엇을했는지 설명하십시오. " –

+1

또한 "코드를 묻는 질문은 해결할 문제에 대한 최소한의 이해를 보여 주어야합니다. ** 시도한 솔루션 포함, 작동하지 않은 이유 및 예상되는 결과. **"지금까지 시도한 내용은 무엇입니까? 그것에 대해 무엇이 효과가 없었습니까? –

+2

[tag : sparql] 태그가 붙은 StackOverflow 질문을 탐색하면 많은 쿼리 예제를 찾을 수 있습니다. 충분하지 않았습니까? –

답변

4

당신은 하나 이상의 방법을 저자를 찾기 위해 이와 같은 쿼리를 사용할 수 있습니다

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX : <http://www.semanticweb.org/vyacheslav/ontologies/2013/11/untitled-ontology-6#> 

SELECT ?author (count(?method) as ?numMethods) 
WHERE { 
    ?method :hasAuthor ?author . 
    ?author a :Author . 
} 
group by ?author 
having (?numMethods > 1) 

결과는 다음과 같이 : 노트의

results in Protégé

몇하지만. 이상적으로는 메소드가 실제로 메소드임을 지정하고 싶을 것입니다. 첫째, 일반적으로 클래스 이름을 형태로 지정하는 것이 좋습니다. 왜냐하면 개별 메소드가 "메소드"가 아니라 "메소드"라고 말하는 것이 자연 스럽기 때문입니다. 어쨌든, 클래스가 메소드의 이름이기 때문에,

?method a :Methods . 
?method :hasAuthor ?author . 
?author a :Author . 

같이 쿼리의 몸을 쓰는 것이 좋을 것이다 그러나 당신이 추론이 부착하지 않는 한이 작동하지 않습니다 (그 정도의 서브 클래스의 멤버로 선언하는 개인 메소드는 또한 메소드의 멤버로 추론 될 수 있습니다.

관련 문제