2017-12-29 40 views
0

나는 이러한 사실에서 "오바마 bornIn USA"고 추론하려면 :이 추론을하기 위해 필요한 것은 무엇입니까?

Obama bornIn Hawaii 
Hawaii partOf USA 

는 추론을하기에 충분이 두 가지 사실이 있습니까? 그렇다면 사실을 나타내는 데 RDFS 또는 OWL을 사용해야합니까? 온라인 SPARQL 도구를 사용하여 사실을 기반으로 사실 확인 및 추론을 신속하게 테스트 할 수 있습니까?

+1

'partOf'는 ** RDFS 나 OWL 의미론의 일부가 아니므로 RDFS 나 OWL 추론자가 이러한 추론을하지 않습니다. – AKSW

+0

온라인 SPARQL 도구? 아니요, 당신은 자신의 트리플 스토어를 사용할 수 있습니다. 일부 SPARQL 플러그인이있는 Protege 온톨로지 편집기 나 Apache Jena, RDF4J 등의 일부 인 메모리 SPARQL 엔진 또는 일부 디스크 기반 트리플 스토어를 사용할 수 있습니다. – AKSW

+0

@AKSW,이 추론은 어떻게 가능합니까? 이것은 매우 일반적이거나 논리적 인 추론처럼 보입니다. ISA가 단지 하나의 추론 유형일 경우. 이 예제에서 입증 된 추론은 더 보편적 인 것처럼 보입니다. 이것을 달성 할 수있는 방법이 없을까요? – user697911

답변

3

bornIn 또는 partOf은 누구도 알지 못합니다. 적절한 온톨로지를 찾거나이 물건을 직접 모델링해야합니다. 몇 가지 방법이 있습니다.

OWL 2 개 기능

OWL 2 DL 기능을 사용하면 원하는 추론을하기에 충분합니다.
필요한 것은 property chain입니다.

다음은 샘플 온톨로지가 RDF 터틀 형식으로 직렬화 된 것입니다.

@prefix : <http://www.semanticweb.org/ontologies/ontology#> . 
@prefix owl: <http://www.w3.org/2002/07/owl#> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 

<http://www.semanticweb.org/ontologies/ontology> rdf:type owl:Ontology . 

:Obama rdf:type owl:NamedIndividual ; :bornIn :Honolulu . 
:Honolulu rdf:type owl:NamedIndividual ; :partOf :Hawaii . 
:Hawaii rdf:type owl:NamedIndividual ; :partOf :USA . 
:USA  rdf:type owl:NamedIndividual . 

:bornIn rdf:type owl:ObjectProperty ; owl:propertyChainAxiom (:bornIn :partOf) . 

:partOf rdf:type owl:ObjectProperty . 

일반적인 규칙 언어

다음과 SWRL 규칙과 속성 체인 공리를 대체 할 수 있습니다.

bornIn(?person, ?place1)^partOf(?place1, ?place2) -> bornIn(?person, ?place2) 

SWRL은 존재 론적 수준에서 작동합니다. 다른 일반적인 언어 (예 : SPIN)는 RDF 직렬화 수준에서 작동합니다.

Triplestore 특정 규칙 언어 GraphDB에서

, 당신은이 종류의 "룰셋"정의 할 수 있습니다 :

Prefices { obama: http://www.semanticweb.org/ontologies/ontology# } 

Axioms { } 

Rules 
{ 
    Id: custom 
     a <obama:bornIn> b 
     b <obama:partOf> c 
    ----------------------- 
     a <obama:bornIn> c 
} 

일부 온라인 SPARQL 도구가 있다는 것을 내가 할 수있는 그 사실을 신속하게 테스트합니다. 사양과 추론은 사실을 기반으로합니까?

도구 또는 기타 오프 사이트 자료를 추천하거나 묻는 질문은 주제에 벗어났습니다. 그러나 아래 표는 인기있는 도구를 비교 한 것입니다.

+---------+-----+------+-----+-------+ 
|   | OWL | SWRL | … | rules | 
+---------+-----+------+-----+-------+ 
| Protege | + | + | … | – | 
| Stardog | + | + | … | + | 
| GraphDB | ± | – | … | + | 
| … | … | … | … | … | 
+---------+-----+------+-----+-------+ 

시도해 보시기 바랍니다. GraphDB Cloud. 저장소 생성 할 때 : 당신이 또는

  • 선택 GraphDB의 규칙 언어를 사용하려는 경우, 규칙 집합 위

    • 부하를 내장 OWL-RL의 룰, 당신은 OWL이 기능을 사용하려면.
  • +0

    아주 명확한 예입니다. 또한 StarDog에 비해 GraphDB가 누리는 이점 중 두 가지를 선택해야한다면 어떤 이점이 있습니까? – user697911

    +0

    저는 Stardog에 익숙하지 않습니다. 전체 OWL 2 지원이 필요하다면 Stardog가 선택되어야합니다. 그러나 Windows에서 실행하는 것은 그리 쉽지 않으며 무료 클라우드 버전 (AFAIK)도 없습니다. 둘 다 시험하십시오. BTW, 당신은': partOf'의 transitivity가 필요하지 않은 것 같아요, 내일 대답을 편집 할게요. –