[rdf] RDF와 OWL의 차이점은 무엇입니까? [닫은]

시맨틱 웹의 개념을 파악하려고합니다. RDF와 OWL의 차이점이 정확히 무엇인지 이해하기가 어렵습니다. OWL은 RDF의 확장입니까, 아니면이 두 기술은 완전히 다른 기술입니까?



답변

시맨틱 웹은 계층으로 제공됩니다. 이것은 당신이 관심이 있다고 생각하는 것들에 대한 요약입니다.

업데이트 : RDFS는 OWL이 아닌 데이터 구조를 정의하는 데 사용됩니다 . OWL은 C 구조체와 같은 일반적인 프로그래밍이 까다 롭지 않고 AI 연구 및 설정 이론에 더 가까운 의미 론적 관계를 설명합니다.

트리플 및 URI

Subject - Predicate - Object

이것들은 단일 사실을 설명합니다. 일반적으로 URI는 주제와 술어에 사용됩니다. 객체는 다른 URI이거나 숫자 또는 문자열과 같은 리터럴입니다. 리터럴은 유형 (URI이기도 함)을 가질 수 있으며 언어도 가질 수 있습니다. 그렇습니다. 트리플은 최대 5 비트의 데이터를 가질 수 있습니다!

예를 들어 트리플은 찰스가 해리스의 아버지라는 사실을 설명 할 수 있습니다.

<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .

트리플은 논리적으로 극단적 인 데이터베이스 표준화입니다. 많은 소스에서 트리플을 재구성없이 하나의 데이터베이스로로드 할 수 있다는 이점이 있습니다.

RDF 및 RDFS

다음 계층은 RDF-Resource Description Framework입니다. RDF는 트리플에 대한 추가 구조를 정의합니다. RDF가 정의하는 가장 중요한 것은 “rdf : type”이라는 술어입니다. 사물이 특정 유형이라고 말하는 데 사용됩니다. 누구나 rdf : type을 사용하므로 매우 유용합니다.

RDFS (RDF Schema)는 주제, 오브젝트, 술어 등의 개념을 나타내는 일부 클래스를 정의합니다. 이는 사물 클래스 및 관계 유형에 대한 명령문을 작성할 수 있음을 의미합니다. 가장 간단한 수준에서 http://familyontology.net/1.0#hasFather 와 같은 것을 말할 수 있습니다. 아버지 는 사람과 사람의 관계입니다. 또한 사람이 읽을 수있는 텍스트로 관계 또는 클래스의 의미를 설명 할 수 있습니다. 이것은 스키마입니다. 다양한 클래스와 관계의 합법적 사용을 알려줍니다. 또한 클래스 또는 속성이 더 일반적인 유형의 하위 유형임을 나타내는 데 사용됩니다. 예를 들어 “HumanParent”는 “Person”의 하위 클래스입니다. “Loves”는 “Knows”의 하위 클래스입니다.

RDF 직렬화

RDF는 다양한 파일 형식으로 내보낼 수 있습니다. 가장 일반적인 것은 RDF + XML이지만 몇 가지 약점이 있습니다.

N3은 읽기 쉬운 XML이 아닌 형식이며 일부 하위 집합 (Turtle 및 N-Triples)이 더 엄격합니다.

RDF는 파일 형식이 아니라 3 배로 작업하는 방법이라는 것을 알아야합니다.

XSD

XSD는 날짜, 정수 등과 같은 속성 유형을 설명하는 데 주로 사용되는 네임 스페이스입니다. 일반적으로 리터럴의 특정 유형을 식별하는 RDF 데이터에서 볼 수 있습니다. 또한 약간 다른 물고기 주전자 인 XML 스키마에도 사용됩니다.

올빼미

OWL은 시맨틱을 스키마에 추가합니다. 속성과 클래스에 대해 훨씬 더 많은 것을 지정할 수 있습니다. 또한 트리플로 표현됩니다. 예를 들어, “A가 isMarriedTo B이면”이 “B isMarriedTo A”를 의미 할 수 있습니다. 또는 ” C isAncestorOf D “및 ” D isAncestorOf E “이면 ” C isAncestorOf E “. 올빼미가 추가하는 또 다른 유용한 것은 두 가지가 같다고 말할 수 있다는 것입니다. 이것은 다른 스키마로 표현 된 데이터를 결합하는 데 매우 유용합니다. 한 스키마에서”sired “관계가 owl : sameAs”fathered ” wikipedia의 “Elvis Presley”와 같은 두 가지가 동일하다고 말하는데도 사용할 수 있습니다. 여러 사이트에서 데이터를 결합 할 수 있다는 점에서 매우 흥미 롭습니다. ( “링크 된 데이터”입니다).

OWL을 사용하여 ” C isAncestorOf E ” 와 같은 암시 적 사실을 유추 할 수도 있습니다 .


답변

한마디로 :

  • RDF는 물건 쓰는 방법을 정의 합니다
  • OWL은 무엇 을 쓸 것인지 정의합니다

이전 포스터에서 언급했듯이 RDF는 트리플을 정의하는 방법을 알려주는 사양입니다.

문제는 RDF를 통해 모든 것을 정의 할 수 있으므로 다음과 같은 선언을 작성할 수 있다는 것입니다.

| subject | predicate | object |
|---------|-----------|--------|
| Alex    | Eats      | Apples |
| Apples  | Eats      | Apples |
| Apples  | Apples    | Apples |

이 트리플은 유효한 RDF 문서를 형성합니다.

그러나 의미 적으로는 이러한 진술이 잘못되었으며 RDF가 작성한 내용의 유효성을 검증 할 수 없음을 이해합니다.

이것은 유효한 온톨로지가 아닙니다.

OWL 사양은 유효한 온톨로지를 갖기 위해 RDF로 작성할 수 있는 내용 을 정확하게 정의합니다 .

온톨로지는 여러 속성을 가질 수 있습니다.

이것이 OWL (1 버전)이 OWL DL, OWL Lite, OWL Full과 같은 여러 버전을 정의하는 이유입니다.


답변

RDF, RDFS 및 OWL은 갈수록 복잡 해지는 정보 나 지식을 표현하는 수단입니다. 이들 모두는 RDF / XML 구문 (또는 Turtle 또는 N3과 같은 다른 RDF 직렬화 구문)으로 직렬화 될 수 있습니다.

이러한 기술은 서로 관련이 있으며 상호 운용이 가능해야하지만 서로 다른 기원을 가지고 있기 때문에 기술 간의 관계가 이해하기 어려운 이유 일 수 있습니다. 하나 또는 다른 하나의 선택은 모델링하는 상황이 얼마나 복잡한 지에 따라 다릅니다.

표현성 요약

RDF : 인스턴스와 해당 유형에 대한 매핑에 중점을 둔 간단한 표현입니다 ( rdf:type). 데이터를 연결하고 트리플을 생성하는 사용자 정의 속성을 정의 할 수 있습니다. RDF 데이터는 SPARQL로 조회됩니다. 거북이에서 직렬화 된 RDF의 예 :

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .

RDFS : 일부 상황은 RDF만으로는 쉽게 모델링 할 수 없으며, 예를 들어 서브 클래스 ( type 유형 ) 와 같은보다 복잡한 관계를 나타내는 것이 흥미 롭습니다 . RDFS는 구조가 좋아 함께, 이러한 경우를 표현하기 위해 특별한 수단을 제공 rdfs:subClassOf, rdfs:range또는 rdfs:domain. 이상적으로, 추론은 RDFS 의미를 이해할 수와의 관계에 따라 트리플의 수를 확장 : 예를 들어 당신은 트리플이있는 경우 John a Man그리고 Man rdfs:subClassOf Human당신은뿐만 아니라 트리플을 생성해야합니다 John a Human. 이것은 RDF만으로는 가능하지 않습니다. SPARQL을 사용하여 RDFS 데이터를 쿼리합니다. 거북이에서 직렬화 된 RDFS의 예 :

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:Man    rdfs:subClassOf    :Human .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .
# After reasoning
:john    rdf:type    :Human .

OWL : 최고 수준의 표현력. 클래스 간의 관계는 설명 논리 (수학 이론)를 기반으로 공식적으로 모델링 할 수 있습니다. OWL은 추론에 크게 의존하기 때문에 체인 속성이나 클래스 간 제한과 같은 복잡한 구성을 표현할 수 있습니다. OWL은 RDF 데이터 세트 위에 온톨로지 또는 스키마를 구축하는 역할을합니다. OWL을 RDF / XML로 직렬화 할 수 있으므로 이론적으로 SPARQL을 통해 쿼리 할 수 ​​있지만 DL 쿼리 (일반적으로 표준 OWL 클래스 표현식)를 사용하여 OWL 온톨로지를 쿼리하는 것이 훨씬 더 직관적입니다. 거북이에서 직렬화 된 OWL 구조의 예.

@prefix : <http://www.example.org/> .
:livesIn    rdf:type    owl:DatatypeProperty .
:Human    rdf:type    owl:Class .
:Man   rdf:type    owl:Class .
:Man    rdfs:subClassOf    :Human .
:John    rdf:type    :Man .
:John    rdf:type    owl:NamedIndividual .


답변

첫째로, 이전에 지적 된 바와 같이, 올빼미는 RDF에서 직렬화 될 수있다.

둘째, OWL은 공식적인 계산 가능한 1 차 설명 논리를 사용하여 트리플의 구성 요소를 정의하는 장치를 제공함으로써 RDF에 온톨로지 기능을 추가합니다. 그것이 “의미 적 풍요”에 대해 이야기 할 때의 포스터의 의미입니다.

셋째, OWL-Full (OLW 1의 경우)에서 rdfs : class와 owl : class는 동일하고 OWL-DL에서 owl : class는 rdfs : class의 서브 클래스임을 인식해야합니다. 실제로 이것은 OWL 온톨로지를 RDF의 스키마로 사용할 수 있음을 의미합니다 (공식적으로 schemata가 필요하지 않음).

나는 그것이 더 명확하게하는 데 도움이되기를 바랍니다.


답변

RDF라는 용어를 사용하는 경우 다음 두 가지를 구별해야합니다.

  1. RDF를 개념 이라고 할 수 있습니다 .

    트리플 컬렉션을 사용하여 사물 / 논리 / 물건을 설명하는 방법.

    예:

    “애나는 사과가있다.” “애플은 건강하다.”

    위에는 “Anna”와 “apples”라는 두 가지 리소스를 설명하는 두 개의 트리플이 있습니다. RDF (Resource Description Framework)의 개념은 3 단어 (단어)로 자원 (모든 것)을 설명 할 수 있다는 것입니다. 이 수준에서는 3 단어의 문자열이나 벽에 그림이 있거나 3 개의 열이있는 테이블 등 정보를 저장하는 방법에 신경 쓰지 않습니다.

    이 개념 수준에서 중요한 것은 트리플 문을 사용하여 원하는 것을 표현할 수 있다는 것입니다.

  2. RDF를 어휘 라고 할 수 있습니다

    어휘는 파일 또는 어딘가에 저장된 용어 정의 모음입니다. 이러한 정의 된 용어는 일반적으로 다른 설명에서 재사용 될 목적으로 사람들이 데이터 (자원)를보다 쉽고 표준적인 방식으로 설명 할 수 있습니다.

    웹에서 다음과 같은 표준 어휘를 찾을 수 있습니다.

    RDF ( https://www.w3.org/1999/02/22-rdf-syntax-ns )

    RDFS ( https://www.w3.org/2000/01/rdf-schema# )

    올빼미 ( https://www.w3.org/2002/07/owl )

    RDF 어휘는 (가능한 가장 기본적인 수준에서) 개인 / 수업의 실체를 설명하는 데 도움이되는 용어를 정의합니다. 예 : rdf : type, rdf : Property

    rdf : type을 사용하면 일부 리소스가 클래스의 인스턴스라고 설명 할 수 있습니다.

     <http://foo.com/anna> rdf:type <http://foo.com/teacher>
    

    따라서 RDF 어휘에는 클래스 인스턴스의 기본 설명과 다른 설명 (삼중 문장 정의 또는 술어 정의와 같은 RDF 개념에 일반적으로 적용되는 용어)을 대상으로하는 용어가 있습니다.

    RDFS 어휘에는 클래스와 클래스 간의 관계를 설명하는 데 도움이되는 용어 정의가 있습니다. RDFS 어휘는 RDF 어휘와 같은 클래스 (개별) 인스턴스에 대해서는 신경 쓰지 않습니다. 예 : 클래스 A가 클래스 B의 하위 클래스임을 설명하는 데 사용할 수있는 rdfs : subClassOf 특성

    RDF와 RDFS 어휘는 서로 종속적입니다. RDF는 RDFS를 사용하여 용어를 정의하고 RDFS는 RDF를 사용하여 자체 용어를 정의합니다.

    RDF / RDFS 어휘는 자원에 대한 매우 기본적인 설명을 작성하는 데 사용할 수있는 용어를 제공합니다. 보다 복잡하고 정확한 설명을 원하면 OWL 어휘를 사용해야합니다.

OWL 어휘에는보다 자세한 설명을 대상으로하는 새로운 용어가 포함되어 있습니다. 이 용어는 RDF / RDFS 어휘의 용어를 사용하여 정의됩니다.

owl:ObjectProperty a rdfs:Class ;
                   rdfs:label "ObjectProperty" ;
                   rdfs:comment "The class of object properties." ;
                   rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                   rdfs:subClassOf rdf:Property .

owl:DatatypeProperty a rdfs:Class ;
                     rdfs:label "DatatypeProperty" ;
                     rdfs:comment "The class of data properties." ;
                     rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                     rdfs:subClassOf rdf:Property .

 owl:TransitiveProperty a rdfs:Class ;
                        rdfs:label "TransitiveProperty" ;
                        rdfs:comment "The class of transitive properties." ;
                        rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                        rdfs:subClassOf owl:ObjectProperty .

위에서 볼 수 있듯이 OWL 어휘는 덜 추상적이고 더 정확한 자원 설명을 제공 할 수있는 새로운 유형의 특성을 작성하여 rdf : Property의 개념을 확장합니다.

결론 :

  1. RDF는 3 중 세트를 사용하여 자원을 설명하는 개념 또는 방법입니다.
  2. RDF 트리플은 다른 형식 (XML / RDF, Turtle 등)으로 저장 가능
  3. RDF의 개념은 모든 시맨틱 웹 기술과 구조 (어휘와 같은)의 기본 모델입니다.
  4. RDF는 또한 RDFS 어휘와 함께 자원에 대한 일반적인 / 추상적 인 설명을 작성하는 데 사용할 수있는 용어 세트를 제공하는 어휘입니다.
  5. OWL은 RDF 및 RDFS 어휘로 빌드 된 어휘로,보다 자세한 자원 설명을 작성하기위한 새로운 용어를 제공합니다.
  6. 모든 시맨틱 웹 어휘 (RDF, RDFS, OWL 등)는 RDF 개념을 준수하여 빌드됩니다.
  7. 물론 OWL 어휘에는 웹 온톨로지 언어를 정의하는 모든 종류의 복잡한 논리와 개념이 있습니다. OWL 어휘는 실제로 모든 논리를 사용하는 방법입니다.

답변

RDF는 트리플 ‘subject’, ‘predicate’, ‘value’ 를 정의하는 방법 입니다. 예를 들어 말하고 싶은 경우

“제 이름은 피에르입니다”

나는 쓸 것이다

<mail:me@where.com> <foaf:name> "Pierre"

<foaf:name>?를 참조하십시오 . FOAF 온톨로지의 일부입니다 . 온톨로지는 속성을 설명하는 공식적인 방법, 주어진 주제의 클래스 및 OWL 은 온톨로지를 정의하는 (RDF) 방법입니다.

C ++, Java 등을 사용하여 클래스, 서브 클래스, 필드 등을 정의합니다.

class Person
{
    String email_as_id;
    String name;
}

RDF는 OWL을 사용하여 이러한 종류의 명령문을 정의합니다.

이런 종류의 질문을 할 수있는 또 다른 곳 : http://www.semanticoverflow.com/


답변

시맨틱 웹의 개념을 파악하려고합니다. RDF와 OWL의 차이점이 정확히 무엇인지 이해하기가 어렵습니다. OWL은 RDF의 확장입니까, 아니면이 두 기술은 완전히 다른 기술입니까?

간단히 말해, OWL은 RDF의 확장이라고 말할 수 있습니다.

보다 자세하게는 RDF를 사용하면 주제-사물-객체 트리플을 정의하여 유 방향 그래프를 설명 할 수 있습니다. 주제와 객체는 노드이거나, 술어는 가장자리이거나, 다시 말해서 술어는 주제와 객체 사이의 관계를 나타냅니다. 예를 들어:Tolkien :wrote :LordOfTheRings 또는:LordOfTheRings :author :Tolkien등 … 링크 된 데이터 시스템은 이러한 트리플을 사용하여 지식 그래프를 설명하고이를 저장하고 쿼리하는 방법을 제공합니다. 이제 이들은 거대한 시스템이지만 소규모 프로젝트에서 RDF를 사용할 수 있습니다. 모든 응용 프로그램은 도메인 특정 언어 (또는 DDD 용어로 유비쿼터스 언어)를 갖습니다. 온톨로지 / 어휘에서 해당 언어를 설명 할 수 있으므로 그래프를 사용하여 애플리케이션의 도메인 모델을 설명 할 수 있습니다. 그래프를 사용하여 비즈니스 ppl에 표시하고 모델을 기반으로 비즈니스 의사 결정에 대해 이야기하고 애플리케이션을 맨 위에 빌드 할 수 있습니다. 그것의. 애플리케이션의 어휘를 리턴하는 데이터 및 마이크로 데이터 와 같은 검색 엔진에 알려진 어휘에 바인딩 할 수 있습니다.(예를 들어 RDFA와 함께 HTML을 사용하여이를 수행 할 수 있으므로) 검색 엔진은 애플리케이션이 수행하는 작업에 대한 지식이 기계 처리 가능하기 때문에 애플리케이션을 쉽게 찾을 수 있습니다. 시맨틱 웹의 작동 방식입니다. (적어도 이것이 내가 상상하는 방법입니다.)

이제 객체 지향 응용 프로그램을 설명하려면 유형, 클래스, 속성, 인스턴스 등이 필요합니다. RDF를 사용하면 객체 만 설명 할 수 있습니다. RDFS (RDF 스키마)는 클래스, 상속 (c.의 객체 기반)을 설명하는 데 도움이되지만 너무 광범위합니다. 제약 조건을 정의하려면 (예 : 중국 가족당 한 아이) 다른 어휘가 필요합니다. OWL (웹 온톨로지 언어)이이 작업을 수행합니다. OWL은 웹 애플리케이션을 설명하는 데 사용할 수있는 온톨로지입니다. XSD simpleType을 통합합니다.
그래서 RDF -> RDFS -> OWL -> MyWebApp더 많은 특정 방법으로 웹 응용 프로그램을 설명하는 순서입니다.