อะไรคือความแตกต่างระหว่าง RDF และนกฮูก [ปิด]


191

ฉันพยายามเข้าใจแนวคิดของ Semantic Web ฉันพบว่ามันยากที่จะเข้าใจว่าอะไรคือความแตกต่างระหว่าง RDF และนกฮูก นกฮูกเป็นส่วนเสริมของ RDF หรือสองสิ่งนี้เป็นเทคโนโลยีที่แตกต่างกันโดยสิ้นเชิงหรือไม่?


ฉันเองพบสำรับสไลด์นี้ค่อนข้างมีประโยชน์และเข้าใจได้ง่าย: slideshare.net/rlovinger/rdf-and-owl
dgorissen

คำตอบ:


272

เว็บความหมายมาในเลเยอร์ นี่เป็นบทสรุปโดยย่อของสิ่งที่ฉันคิดว่าคุณสนใจ

อัปเดต : โปรดทราบว่า RDFS ใช้เพื่อกำหนดโครงสร้างของข้อมูลไม่ใช่ OWL นกฮูกอธิบายความสัมพันธ์ทางความหมายที่การเขียนโปรแกรมปกติเช่นโครงสร้าง C ไม่ได้ยุ่งเกี่ยวกับและใกล้ชิดกับ AI วิจัยและทฤษฎีเซต

อเนกประสงค์ & URI

Subject - Predicate - Object

สิ่งเหล่านี้อธิบายข้อเท็จจริงเพียงอย่างเดียว โดยทั่วไปแล้ว URI จะใช้สำหรับเรื่องและภาคแสดง วัตถุนั้นเป็น URI อื่นหรือตัวอักษรเช่นตัวเลขหรือสตริง ตัวอักษรสามารถมีประเภท (ซึ่งก็คือ URI) และพวกเขายังสามารถมีภาษา ใช่นี่หมายถึงอเนกประสงค์สามารถมีข้อมูลได้มากถึง 5 บิต!

เช่นสามอาจอธิบายความจริงที่ว่า Charles เป็นพ่อของ Harrys

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

อเนกประสงค์เป็นฐานข้อมูลมาตรฐานที่นำไปสู่ตรรกะที่รุนแรง พวกเขามีข้อได้เปรียบที่คุณสามารถโหลด triples จากหลาย ๆ แหล่งลงในฐานข้อมูลเดียวโดยไม่มีการกำหนดค่าใหม่

RDF และ RDFS

เลเยอร์ถัดไปคือ RDF - กรอบคำอธิบายทรัพยากร RDF กำหนดโครงสร้างพิเศษบางอย่างให้กับอเนกประสงค์ สิ่งที่สำคัญที่สุดของ RDF คือคำจำกัดความที่เรียกว่า "rdf: type" สิ่งนี้ใช้เพื่อบอกว่าสิ่งต่าง ๆ เป็นประเภทที่แน่นอน ทุกคนใช้ rdf: type ซึ่งทำให้มีประโยชน์มาก

RDFS (RDF Schema) กำหนดบางคลาสที่แสดงแนวคิดของหัวเรื่องวัตถุเพรดิเคต ฯลฯ ซึ่งหมายความว่าคุณสามารถเริ่มต้นสร้างข้อความเกี่ยวกับคลาสของสิ่งต่าง ๆ และประเภทของความสัมพันธ์ ในระดับที่ง่ายที่สุดคุณสามารถระบุสิ่งต่างๆเช่นhttp://familyontology.net/1.0#hasFatherคือความสัมพันธ์ระหว่างบุคคลและบุคคล นอกจากนี้ยังช่วยให้คุณสามารถอธิบายความหมายของความสัมพันธ์หรือชั้นเรียนในข้อความที่มนุษย์สามารถอ่านได้ นี่คือสคีมา มันบอกให้คุณใช้ตามกฎหมายในชั้นเรียนและความสัมพันธ์ที่หลากหลาย นอกจากนี้ยังใช้เพื่อระบุว่าคลาสหรือคุณสมบัตินั้นเป็นชนิดย่อยของชนิดทั่วไปที่มากกว่า ตัวอย่างเช่น "HumanParent" เป็นคลาสย่อยของ "บุคคล" "Loves" เป็น sub-class ของ "Knows"

Serialisations RDF

RDF สามารถส่งออกในรูปแบบไฟล์จำนวนมาก ที่พบมากที่สุดคือ RDF + XML แต่สิ่งนี้มีจุดอ่อนอยู่บ้าง

N3 เป็นรูปแบบที่ไม่ใช่ XML ซึ่งอ่านง่ายกว่าและมีชุดย่อยบางส่วน (Turtle และ N-Triples) ซึ่งเข้มงวดกว่า

สิ่งสำคัญคือต้องรู้ว่า RDF เป็นวิธีการทำงานกับ triples ไม่ใช่รูปแบบไฟล์

XSD

XSD เป็นเนมสเปซที่ใช้เป็นหลักในการอธิบายประเภทคุณสมบัติเช่นวันที่จำนวนเต็มเป็นต้น โดยทั่วไปแล้วจะเห็นในข้อมูล RDF ที่ระบุประเภทของตัวอักษร มันยังใช้ใน XML schemas ซึ่งเป็นกาต้มน้ำปลาที่แตกต่างกันเล็กน้อย

นกฮูก

OWL เพิ่มซีแมนทิกส์ให้กับสคีมา อนุญาตให้คุณระบุเพิ่มเติมเกี่ยวกับคุณสมบัติและคลาส มันถูกแสดงออกมาในอเนกประสงค์ ตัวอย่างเช่นมันสามารถระบุว่า "ถ้า A isMarriedTo B" ดังนั้นนี่ก็หมายถึง "B isMarriedTo A" หรือว่าถ้า " C isAncestorOf D " และ " D isAncestorOf E " ดังนั้น " C isAncestorOf E " สิ่งที่มีประโยชน์อีกประการหนึ่งที่นกฮูกเสริมก็คือความสามารถในการพูดสองสิ่งเหมือนกันซึ่งเป็นประโยชน์อย่างมากสำหรับการเข้าร่วมข้อมูลที่แสดงในสคีมาที่แตกต่างกัน คุณสามารถพูดได้ว่าความสัมพันธ์ "พ่อพันธุ์แม่พันธุ์" ในหนึ่งสคีมาเป็นนกฮูก: เหมือนกัน "บิดา" ในสคีมาอื่น นอกจากนี้คุณยังสามารถใช้เพื่อบอกสองสิ่งเหมือนกันเช่น "Elvis Presley" บนวิกิพีเดียเป็นสิ่งเดียวกับ BBC

นอกจากนี้คุณยังสามารถใช้ OWL เพื่อสรุปข้อเท็จจริงโดยนัยเช่น " C isAncestorOf E "


21
นี่คือรูปภาพของเลเยอร์ความหมายของเว็บ: w3.org/2001/12/semweb-fin/swlevels.png สำหรับการอ้างอิงเท่านั้น
Timo Westkämper

8
ส่วนหนึ่งของสิ่งนี้ที่ยังไม่ชัดเจนสำหรับฉันคือดูเหมือนจะมีการทับซ้อนกันระหว่างสิ่งที่ RDFS และ OWL สามารถแสดงได้ เช่นนกฮูก: Class สามารถดูคล้ายกับ rdfs: Class (เช่นเอนทิตีของนกฮูกประเภท: Class มักเป็นหัวข้อของ RDF predicates เช่น rdfs: ความคิดเห็นและ rdfs: subclassOf) ฉันกำลังดิ้นรนที่จะเข้าใจว่า OWL เป็นเลเยอร์บน RDFS เพราะเมื่อมันมาถึง การกำหนดคลาสดูเหมือนเป็นวิธีเพิ่มคุณค่าให้กับสิ่งที่คุณสามารถทำได้กับ RDFS
Ian Griffiths

ขึ้นอยู่กับโปรไฟล์ OWL / OWL-2 ที่คุณใช้คุณมีความสามารถ 'เพิ่มเติม' เพื่อเพิ่มความรู้ให้กับฐานความรู้ของคุณด้วย DL axioms (เช่นข้อ จำกัด ด้านทรัพย์สินความไม่ต่อเนื่องและอื่น ๆ อีกมากมาย)
Zhubarb

4
@IanGriffiths: ในความเป็นจริงภายใต้ความหมายของ OWL2 นกฮูก: Class และ rdfs: Class (รวมถึงคู่ที่น่าประหลาดใจอีกหลายคู่) เป็น eqivalent: answers.semanticweb.com/questions/30954/…
Vladimir Alexiev

... OWL, RDFS, XSD ... เป็นภาษาที่สมบูรณ์ ... แต่ละคนมีบทบาทในการอธิบายโดเมนของคุณและทุกคนเข้าร่วมเพื่อทำให้ดีขึ้น ...
Sergio

82

ในระยะสั้น:

  • RDF กำหนดวิธีการเขียนเนื้อหา
  • นกฮูกกำหนดสิ่งที่จะเขียน

ตามที่ผู้โพสต์ก่อนหน้าเขียนไว้ RDF เป็นข้อกำหนดที่บอกวิธีการกำหนดอเนกประสงค์

ปัญหาคือ RDF อนุญาตให้คุณกำหนดทุกอย่างดังนั้นคุณสามารถเขียนประกาศดังนี้:

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

อเนกประสงค์เหล่านี้ฟอร์มเอกสาร RDF ที่ถูกต้อง

แต่ในเชิงความหมายคุณเข้าใจว่าข้อความเหล่านี้ไม่ถูกต้องและ RDF ไม่สามารถช่วยคุณตรวจสอบสิ่งที่คุณเขียนได้

นี่ไม่ใช่ภววิทยาที่ถูกต้อง

ข้อมูลจำเพาะของนกฮูกกำหนดสิ่งที่คุณสามารถเขียนด้วย RDF เพื่อให้มี ontology ที่ถูกต้อง

อภิปรัชญาสามารถมีคุณสมบัติหลายอย่าง

นั่นเป็นสาเหตุที่ OWL (ver 1) กำหนดหลายเวอร์ชันเช่น OWL DL, OWL Lite, OWL Full


28
แต่โปรดทราบว่า OWL จะไม่ จำกัด สิ่งที่คุณสามารถใส่ในที่เก็บ RDF ของคุณข้อมูล OWL schema จะใช้เพื่อการอนุมานไม่ใช่เพื่อบังคับใช้ข้อ จำกัด
DNA

32

RDF, RDFS และ OWL นั้นหมายถึงการแสดงข้อมูลหรือความรู้ที่ซับซ้อนมากขึ้น พวกเขาทั้งหมดสามารถต่อเนื่องกันในไวยากรณ์ RDF / XML (หรือไวยากรณ์อื่น ๆ ของการทำให้เป็นอันดับ RDF อื่น ๆ เช่น Turtle หรือ N3 เป็นต้น)

เทคโนโลยีเหล่านี้มีความเกี่ยวข้องและควรจะใช้งานร่วมกันได้ แต่ก็มีต้นกำเนิดที่แตกต่างกันซึ่งอาจเป็นเหตุผลว่าทำไมความสัมพันธ์ระหว่างพวกเขาจึงซับซ้อนที่จะเข้าใจ ตัวเลือกอย่างใดอย่างหนึ่งขึ้นอยู่กับความซับซ้อนของสถานการณ์ที่คุณต้องการโมเดล

บทสรุปของการแสดงออก

RDF : การแสดงที่ตรงไปตรงมามุ่งเน้นไปที่อินสแตนซ์และการแมปกับประเภทของพวกเขา ( rdf:type) สามารถกำหนดคุณสมบัติที่กำหนดเองเพื่อเชื่อมโยงข้อมูลและสร้างอเนกประสงค์ได้ สอบถามข้อมูล RDF ด้วย SPARQL ตัวอย่าง RDF ที่ทำเป็นอนุกรมใน Turtle:

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

RDFS:บางสถานการณ์ไม่ได้เป็นแบบอย่างที่ง่ายโดย RDF เพียงอย่างเดียวบางครั้งมันก็น่าสนใจที่จะแสดงความสัมพันธ์ที่ซับซ้อนมากขึ้นเช่น subclasses ( ประเภทของประเภท ) ตัวอย่างเช่น RDFS ให้หมายพิเศษเพื่อเป็นตัวแทนของกรณีดังกล่าวมีโครงสร้างชอบrdfs:subClassOf, หรือrdfs:range rdfs:domainในอุดมคติแล้วผู้มีเหตุผลสามารถเข้าใจความหมาย RDFS และขยายจำนวนอเนกประสงค์ตามความสัมพันธ์: ตัวอย่างเช่นถ้าคุณมีอเนกประสงค์John a Manและแล้วคุณควรสร้างเช่นเดียวสามMan rdfs:subClassOf Human John a Humanโปรดทราบว่านี่เป็นไปไม่ได้ที่จะทำกับ RDF เพียงอย่างเดียว มีการสอบถามข้อมูล RDFS โดยใช้ SPARQL ตัวอย่างของ RDFS ต่อเนื่องใน Turtle:

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

นกฮูก:ระดับสูงสุดของการแสดงออก ความสัมพันธ์ระหว่างชั้นเรียนสามารถเป็นแบบอย่างอย่างเป็นทางการขึ้นอยู่กับคำอธิบาย logics (ทฤษฎีทางคณิตศาสตร์) นกฮูกอาศัยอาศัยเหตุผลอย่างมากก็เป็นไปได้ที่จะแสดงการสร้างที่ซับซ้อนเช่นคุณสมบัติที่ถูกผูกมัดสำหรับอินสแตนซ์หรือข้อ จำกัด ระหว่างชั้นเรียน นกฮูกทำหน้าที่สร้าง ontology หรือ schema ที่ด้านบนของชุดข้อมูล RDF เนื่องจาก OWL สามารถต่อเนื่องเป็น RDF / XML จึงเป็นไปได้ในทางทฤษฎีในการสืบค้นผ่าน SPARQL แต่มันเป็นเรื่องที่เข้าใจได้ง่ายกว่าในการสืบค้น OWL ontology ด้วยการสืบค้น DL (ซึ่งโดยทั่วไปจะเป็นนิพจน์ระดับ OWL มาตรฐาน) ตัวอย่างของ OWL สร้างแบบต่อเนื่องใน Turtle

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

2
คลาสย่อยไม่ใช่ "ประเภทของประเภท": นั่นคือ metaclass "X a Y. Y a Z. " แตกต่างจาก "X a Y. Y subClassOf Z"
Vladimir Alexiev

14

ประการแรกเป็นที่ได้รับการชี้ให้เห็นก่อนนกฮูกสามารถต่อเนื่องใน RDF

ประการที่สองนกฮูกเพิ่มความสามารถด้านออนโทโลจีให้กับ RDF (ซึ่งมีเพียงความสามารถที่ จำกัด อย่างมากสำหรับการนำเสนอที่เป็นทางการที่รู้จักกันอย่างเป็นทางการ) โดยจัดเตรียมเครื่องมือในการกำหนดส่วนประกอบของทริปเปิลของคุณ นั่นคือสิ่งที่ผู้โพสต์ที่นี่หมายถึงเมื่อพวกเขาพูดถึง "ความหมายความหมาย"

ประการที่สามสิ่งสำคัญคือต้องตระหนักว่าใน OWL-Full (สำหรับ OWL 1) rdfs: class และ owl: class เทียบเท่าและใน OWL-DL, owl: class เป็นคลาสย่อยของ rdfs: class ซึ่งหมายความว่าคุณสามารถใช้ OWL ontology เป็นสคีมาสำหรับ RDF (ซึ่งไม่ต้องการ schemata อย่างเป็นทางการ)

ฉันหวังว่าจะช่วยชี้แจงเพิ่มเติม


โพสต์ที่ดีมาก ... ฉันต้องการบันทึก triples RDF ใน Oracle 11g ฉันสามารถใช้ OWL เป็นสคีมาสำหรับ RDF ของฉันได้หรือไม่
Saad

10

เมื่อคุณใช้คำว่า RDF คุณจะต้องแยกความแตกต่างสองอย่าง:

  1. คุณสามารถอ้างถึง RDF เป็นแนวคิด :

    วิธีการอธิบายสิ่งต่าง ๆ / ตรรกะ / อะไรก็ได้โดยใช้คอลเลกชันของอเนกประสงค์

    ตัวอย่าง:

    "แอนนามีแอปเปิ้ล" "แอปเปิ้ลมีสุขภาพดี"

    ด้านบนคุณมีสองอเนกประสงค์ที่อธิบายสองแหล่งข้อมูล "แอนนา" และ "แอปเปิ้ล" แนวคิดของ 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 ตัวอย่าง: คุณสมบัติ rdfs: subClassOf ซึ่งคุณสามารถใช้เพื่ออธิบายว่าคลาส A เป็นคลาสย่อยของคลาส B

    คำศัพท์ RDF และ RDFS นั้นขึ้นอยู่กับอีกฝ่ายหนึ่ง RDF กำหนดเงื่อนไขของมันโดยใช้ RDFS และ RDFS ใช้ RDF สำหรับการกำหนดเงื่อนไขของมันเอง

    คำศัพท์ RDF / RDFS ให้คำศัพท์ที่สามารถใช้เพื่อสร้างคำอธิบายพื้นฐานของทรัพยากร หากคุณต้องการคำอธิบายที่ซับซ้อนและแม่นยำยิ่งขึ้นคุณต้องใช้คำศัพท์นกฮูก

คำศัพท์ของนกฮูกมาพร้อมกับชุดของคำศัพท์ใหม่ที่กำหนดเป้าหมายรายละเอียดเพิ่มเติม คำเหล่านี้ถูกกำหนดโดยใช้คำศัพท์จากคำศัพท์ 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 .

ดังที่คุณเห็นข้างต้นคำศัพท์ของนกฮูกขยายแนวความคิดของ rdf: คุณสมบัติโดยการสร้างคุณสมบัติใหม่ที่มีความเป็นนามธรรมน้อยกว่าและสามารถให้คำอธิบายที่แม่นยำยิ่งขึ้นของทรัพยากร

สรุป:

  1. RDF เป็นแนวคิดหรือวิธีการอธิบายทรัพยากรโดยใช้ชุดของอเนกประสงค์
  2. สามารถเก็บอเนกประสงค์ RDF ในรูปแบบต่าง ๆ (XML / RDF, Turtle เป็นต้น)
  3. แนวคิดของ RDF คือรูปแบบพื้นฐานของเทคโนโลยีและโครงสร้างเว็บแบบ Semantic ทั้งหมด (เช่นคำศัพท์)
  4. RDF ยังเป็นคำศัพท์ที่มาพร้อมกับคำศัพท์ RDFS ให้ชุดคำศัพท์ที่สามารถใช้สำหรับการสร้างคำอธิบายทั่วไป / นามธรรมของทรัพยากร
  5. นกฮูกเป็นคำศัพท์ที่สร้างขึ้นด้วยคำศัพท์ RDF และ RDFS ที่ให้คำศัพท์ใหม่สำหรับการสร้างคำอธิบายรายละเอียดเพิ่มเติมของทรัพยากร
  6. คำศัพท์ทางเว็บความหมายทั้งหมด (RDF, RDFS, OWL และอื่น ๆ ) สร้างขึ้นโดยเคารพแนวคิด RDF
  7. และแน่นอนว่าคำศัพท์ของ OWL นั้นมีอยู่เบื้องหลังทุกประเภทของตรรกะและแนวคิดที่ซับซ้อนซึ่งเป็นตัวกำหนดภาษาของ Ontology คำศัพท์นกฮูกเป็นเพียงวิธีการใช้ตรรกะทั้งหมดในการปฏิบัติ

9

RDF เป็นวิธีที่จะกำหนด Triple A 'เรื่อง', 'วินิจฉัย', 'ค่า' ตัวอย่างเช่นถ้าฉันต้องการที่จะพูด

"ฉันชื่อปิแอร์"

ฉันจะเขียน

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

เห็น<foaf:name>ไหม มันเป็นส่วนหนึ่งของอภิปรัชญาของFOAF ontology เป็นวิธีที่เป็นทางการในการอธิบายคุณสมบัติคลาสของหัวเรื่องที่กำหนดและOWLเป็นวิธี (RDF) เพื่อกำหนด ontology

คุณใช้ C ++, Java, etc ... เพื่อกำหนด Class, คลาสย่อย, ฟิลด์, ฯลฯ ...

class Person
{
    String email_as_id;
    String name;
}

RDF ใช้นกฮูกเพื่อกำหนดคำสั่งประเภทนี้

อีกที่ที่จะถามคำถามแบบนี้: http://www.semanticoverflow.com/


14
ไม่เห็นด้วยกับ: "RDF ใช้ OWL เพื่อกำหนดข้อความประเภทนี้" RDF ไม่ใช้นกฮูกในทางใดทางหนึ่ง นี่เป็นวิธีอื่น: OWL ใช้ RDF Schema ซึ่งใช้ RDF
alexkr

@Stefano พวกเขาหาคนทำงานที่ไหนนั่นเป็นคำถามที่แท้จริง
Pascal Thivent

7

ฉันพยายามเข้าใจแนวคิดของ Semantic Web ฉันพบว่ามันยากที่จะเข้าใจว่าอะไรคือความแตกต่างระหว่าง RDF และนกฮูก นกฮูกเป็นส่วนเสริมของ RDF หรือสองสิ่งนี้เป็นเทคโนโลยีที่แตกต่างกันโดยสิ้นเชิงหรือไม่?

ในระยะสั้นใช่คุณสามารถพูดได้ว่านกฮูกเป็นส่วนขยายของ RDF

ในรายละเอียดเพิ่มเติมด้วย RDF คุณสามารถอธิบายกราฟที่กำกับได้โดยการกำหนด triples-predicate-object หัวเรื่องและวัตถุเป็นโหนดเพรดิเคตคือขอบหรือด้วยคำอื่น ๆ เพรดิเคตอธิบายความสัมพันธ์ระหว่างหัวเรื่องและวัตถุ ตัวอย่างเช่น:Tolkien :wrote :LordOfTheRingsหรือ:LordOfTheRings :author :Tolkienฯลฯ .. ระบบข้อมูลที่เชื่อมโยงใช้สิ่งเหล่านี้สามตัวเพื่ออธิบายกราฟความรู้ ตอนนี้เป็นระบบขนาดใหญ่ แต่คุณสามารถใช้ RDF โดยโครงการขนาดเล็ก ทุกแอปพลิเคชันมีภาษาเฉพาะโดเมน (หรือตามข้อกำหนด DDD ภาษาที่แพร่หลาย) คุณสามารถอธิบายภาษานั้นในภววิทยา / คำศัพท์ของคุณเพื่อให้คุณสามารถอธิบายรูปแบบโดเมนของแอปพลิเคชันของคุณด้วยกราฟซึ่งคุณสามารถเห็นภาพแสดงให้ ppl ธุรกิจพูดคุยเกี่ยวกับการตัดสินใจทางธุรกิจตามรูปแบบและสร้างแอปพลิเคชันด้านบน ของที่ คุณสามารถผูกคำศัพท์ของแอปพลิเคชันของคุณกับข้อมูลที่ส่งคืนและคำศัพท์ที่เครื่องมือค้นหารู้จักเช่นmicrodata(ตัวอย่างเช่นคุณสามารถใช้ HTML กับ RDFA เพื่อทำสิ่งนี้) และดังนั้นเครื่องมือค้นหาสามารถค้นหาแอปพลิเคชันของคุณได้อย่างง่ายดายเพราะความรู้เกี่ยวกับสิ่งที่มันทำจะทำให้เครื่องสามารถประมวลผลได้ นี่คือความหมายของเว็บที่ใช้ความหมาย (อย่างน้อยนี่เป็นวิธีที่ฉันจินตนาการ)

ตอนนี้เพื่ออธิบายแอปพลิเคชันเชิงวัตถุที่คุณต้องการประเภทคลาสคุณสมบัติอินสแตนซ์ ฯลฯ ... ด้วย RDF คุณสามารถอธิบายเฉพาะวัตถุ RDFS (RDF schema) ช่วยให้คุณอธิบายคลาส, การสืบทอด (ขึ้นอยู่กับออบเจ็กต์ ofc.) แต่มันกว้างเกินไป ในการกำหนดข้อ จำกัด (เช่นเด็กหนึ่งคนต่อครอบครัวชาวจีน) คุณต้องมีคำศัพท์อื่น นกฮูก (ภาษาภววิทยาเว็บ) ทำงานนี้ นกฮูกเป็นภววิทยาซึ่งคุณสามารถใช้เพื่ออธิบายการใช้งานเว็บ มันรวม XSD simpleTypes
ดังนั้นRDF -> RDFS -> OWL -> MyWebAppเพื่ออธิบายเว็บแอปพลิเคชันของคุณในแบบที่เฉพาะเจาะจงมากขึ้น


ขอบคุณ - นี่ดูเหมือนจะมีประโยชน์มาก ฉันคิดว่าคุณกำลังพูด (โปรดแจ้งให้เราทราบหากฉันเข้าใจถูกต้อง) ว่า (1) RDF ช่วยให้ระบุความสัมพันธ์โดยตรงระหว่างวัตถุ ( personA friendsWith personB) ที่ (2) RDFS ขยายนี้โดยการให้ความสามารถในการระบุความสัมพันธ์ระหว่างobject classes- class Person <has 'friendsWith' relationship> Personคือ ที่ช่วยให้คุณวลี RDF ผ่านชั้นเรียน: A:typeof:person friendsWith B:<typeof:person>. และ (3) นกฮูกจะช่วยให้คุณระบุข้อ จำกัด ของความสัมพันธ์ได้หรือไม่
Zach Smith

เช่นบุคคลสามารถมีการเชื่อมต่อได้สูงสุด 4 คน "กับเพื่อน"?
Zach Smith

@ZachSmith ใช่
inf3rno

ช่างเป็นคำตอบที่ดี - ขอบคุณ ทำให้ง่ายต่อการอ่านทุกอย่างในหน้านี้
Zach Smith

@ZachSmith yw
inf3rno

7

RDFS ช่วยให้คุณสามารถแสดงความสัมพันธ์ระหว่างสิ่งต่าง ๆ โดยสร้างมาตรฐานให้กับรูปแบบที่มีความยืดหยุ่นและอิงสามประการจากนั้นจึงจัดเตรียมคำศัพท์ ("คำหลัก" เช่นrdf:typeหรือrdfs:subClassOf) ซึ่งสามารถใช้พูดสิ่งต่างๆ

นกฮูกมีลักษณะคล้ายกัน แต่ใหญ่กว่าดีกว่าและแย่กว่า นกฮูกช่วยให้คุณพูดมากขึ้นเกี่ยวกับรูปแบบข้อมูลของคุณมันแสดงให้คุณเห็นวิธีการทำงานอย่างมีประสิทธิภาพกับการสืบค้นฐานข้อมูลและผู้ให้เหตุผลอัตโนมัติและมันมีคำอธิบายประกอบที่เป็นประโยชน์

ความแตกต่างที่ 1: คำศัพท์

ความแตกต่างระหว่าง RDFS และนกฮูกที่สำคัญที่สุดคือเพียงแค่ว่านกฮูกมีคำศัพท์ที่ห่างไกลที่มีขนาดใหญ่ห่างไกลที่คุณสามารถใช้ในการพูดสิ่งที่

ยกตัวอย่างเช่นนกฮูกรวมถึงเพื่อนเก่าของคุณทั้งหมดจาก RDFS เช่นrdfs:type, และrdfs:domain rdfs:subPropertyOfอย่างไรก็ตามนกฮูกยังให้เพื่อนใหม่และดีกว่า! ตัวอย่างเช่นนกฮูกช่วยให้คุณอธิบายข้อมูลของคุณในแง่ของการดำเนินการชุด:

Example:Mother    owl:unionOf     (Example:Parent, Example:Woman)

ช่วยให้คุณกำหนดความเท่าเทียมกันในฐานข้อมูล:

AcmeCompany:JohnSmith  owl:sameAs    PersonalDatabase:JohnQSmith

มันช่วยให้คุณ จำกัด ค่าคุณสมบัติ:

Example:MyState     owl:allValuesFrom     (State:NewYork, State:California, …)

ในความเป็นจริงนกฮูกให้คำศัพท์ใหม่ที่ซับซ้อนเพื่อใช้ในการสร้างแบบจำลองข้อมูลและการใช้เหตุผลที่ได้รับบทเรียนของตัวเอง!

ความแตกต่างที่ 2: ความแข็งแกร่ง

ข้อแตกต่างที่สำคัญอีกอย่างหนึ่งก็คือไม่เหมือน RDFS, นกฮูกไม่เพียง แต่จะบอกคุณว่าคุณสามารถใช้คำศัพท์บางอย่างได้อย่างไร แต่จริงๆแล้วมันบอกคุณว่าคุณไม่สามารถใช้มันได้ ในทางตรงกันข้าม RDFS ให้ทุกสิ่งเป็นไปในโลกที่คุณสามารถเพิ่มสามสิ่งที่คุณต้องการได้

ตัวอย่างเช่นใน RDFS สิ่งที่คุณรู้สึกว่าสามารถเป็นตัวอย่างrdfs:Classได้ คุณอาจตัดสินใจว่าBeagleนั้นเป็นrdfs:Classแล้วก็บอกว่าFidoเป็นตัวอย่างของBeagle :

Example: Beagle    rdf:Type    rdfs:Class

Example:Fido    rdf:Type    Example: Beagle

ต่อไปคุณอาจตัดสินใจว่าคุณอยากจะพูดในสิ่งที่เกี่ยวกับ beagles บางทีคุณอาจต้องการบอกว่าBeagleเป็นตัวอย่างของสุนัขที่เลี้ยงในอังกฤษ :

Example:Beagle    rdf:Type    Example:BreedsBredInEngland

Example: BreedsBredInEngland    rdf:Type    rdfs:Class

สิ่งที่น่าสนใจในตัวอย่างนี้คือการที่Example:Beagleจะถูกใช้เป็นทั้งชั้นและอินสแตนซ์ Beagleเป็นคลาสที่Fidoเป็นสมาชิก แต่Beagleนั้นเป็นสมาชิกของอีกคลาสหนึ่ง: Things Bred ในอังกฤษ

ใน RDFS ทั้งหมดนี้ถูกกฎหมายอย่างสมบูรณ์เพราะ RDFS ไม่ได้ จำกัด จริงๆคำสั่งที่คุณสามารถและไม่สามารถแทรก ใน OWL ตรงกันข้ามหรืออย่างน้อยในบางรสชาติของ OWL ข้อความข้างต้นไม่ถูกกฎหมาย: คุณไม่ได้รับอนุญาตให้พูดว่าบางสิ่งอาจเป็นทั้งคลาสและอินสแตนซ์

นี่เป็นข้อแตกต่างที่สำคัญที่สองระหว่าง RDFS และ OWL RDFS เปิดโอกาสให้ฟรีสำหรับทุกคนทุกสิ่งที่เกิดขึ้นในโลกที่เต็มไปด้วย Wild West, Speak-Easies และ Salvador Dali โลกของนกฮูกกำหนดโครงสร้างที่เข้มงวดมากขึ้น

ความแตกต่างที่ 3: คำอธิบายประกอบคือ meta-meta-data

สมมติว่าคุณใช้เวลาชั่วโมงสุดท้ายในการสร้างภววิทยาที่อธิบายถึงธุรกิจการผลิตวิทยุของคุณ ในช่วงกลางวันงานของคุณคือสร้างภววิทยาสำหรับธุรกิจผลิตนาฬิกาของคุณ บ่ายนี้หลังจากดื่มกาแฟดีๆเจ้านายของคุณจะบอกคุณว่าคุณจะต้องสร้างอภิปรัชญาสำหรับธุรกิจวิทยุนาฬิกาที่ทำกำไรได้สูง มีวิธีที่จะนำงานเช้ามาใช้ซ้ำได้อย่างง่ายดายหรือไม่?

นกฮูกทำสิ่งต่าง ๆ เช่นนี้ง่ายมาก Owl:Importคือสิ่งที่คุณจะใช้ในสถานการณ์เช่นนาฬิกาวิทยุ แต่นกฮูกยังช่วยให้คุณมีความหลากหลายที่อุดมไปด้วยคำอธิบายประกอบเช่นowl:versionInfo, owl:backwardsCompatibleWithและowl:deprecatedPropertyซึ่งสามารถจะเชื่อมโยงข้อมูลแบบจำลองที่ใช้กันเป็นที่สอดคล้องกันร่วมกันทั้ง

ซึ่งแตกต่างจาก RDFS, นกฮูกมั่นใจว่าจะตอบสนองความต้องการทั้งหมดของการสร้างแบบจำลอง meta-meta-data

ข้อสรุป

นกฮูกให้คำศัพท์ที่มีขนาดใหญ่กว่าให้คุณเล่นซึ่งทำให้ง่ายต่อการพูดทุกสิ่งที่คุณอาจต้องการพูดเกี่ยวกับตัวแบบข้อมูลของคุณ มันยังช่วยให้คุณสามารถปรับแต่งสิ่งที่คุณพูดตามความเป็นจริงในการคำนวณของคอมพิวเตอร์ในปัจจุบันและเพิ่มประสิทธิภาพสำหรับแอพพลิเคชั่นเฉพาะ (สำหรับคำค้นหาเป็นต้น) นอกจากนี้ OWL ยังให้คุณแสดงความสัมพันธ์ระหว่างจีส์ต่าง ๆ ได้อย่างง่ายดาย .

ทั้งหมดนี้เป็นข้อดีเมื่อเทียบกับ RDFS และโดยทั่วไปจะคุ้มค่ากับความพยายามพิเศษที่ใช้ในการทำความคุ้นเคยกับพวกเขา

ที่มา: RDFS vs. OWL


4

ในรูปแบบวัตถุเอกสาร WC3 เป็นเอกสารเป็นสิ่งที่เป็นนามธรรม: มีองค์ประกอบที่มีข้อความแสดงความคิดเห็นคุณลักษณะและองค์ประกอบอื่น ๆ ที่ซ้อนกันอยู่ภายใน

ในเว็บความหมายเราจัดการกับชุด "triples" แต่ละสามคือ:

  • หัวเรื่อง, สิ่งที่สามคือเกี่ยวกับ , id, คีย์หลักของฐานข้อมูล - URI; และ
  • เพรดิเคต, "กริยา", "คุณสมบัติ", "คอลัมน์ฐานข้อมูล" - URI อื่น; และ
  • วัตถุ , ค่าอะตอมหรือ URI บาง

นกฮูกเป็นเว็บความหมายเป็น Schemas เป็นรูปแบบวัตถุเอกสาร W3C เป็นเอกสารความหมายต่าง ๆ ของ URIs และระบุวิธีการใช้งานอย่างเป็นทางการที่สามารถตรวจสอบได้ด้วยเครื่อง เว็บแบบความหมายอาจหรืออาจไม่ถูกต้องเกี่ยวกับนกฮูกที่ใช้กับมันเช่นเดียวกับเอกสารอาจหรืออาจไม่ถูกต้องเกี่ยวกับสคีมา

RDF คือเว็บแบบ semantic เนื่องจาก XML คือ DOM - มันเป็นอนุกรมของชุดอเนกประสงค์

แน่นอน RDF มักจะต่อเนื่องกันเป็นเอกสาร XML ... แต่สิ่งสำคัญคือต้องเข้าใจว่า RDF นั้นไม่ใช่สิ่งเดียวกับ "XML serialization ของ RDF"

ในทำนองเดียวกัน OWL สามารถต่อเนื่องโดยใช้ OWL / XML หรือ (ขออภัยเกี่ยวกับเรื่องนี้) มันสามารถแสดงเป็น RDF ซึ่งตัวเองมักจะต่อเนื่องเป็น XML


3

สแต็กความหมายพื้นฐานของเว็บได้รับการอธิบายมากมายในเธรดนี้ ฉันต้องการเน้นคำถามเริ่มต้นและเปรียบเทียบ RDF กับ OWL

  • นกฮูกเป็นชุดสุดยอดของ RDF & RDF-S (ด้านบน)
  • นกฮูกอนุญาตให้ทำงานอย่างมีประสิทธิภาพกับ RDF & RDF-S
  • นกฮูกมีคำศัพท์เพิ่มเติมบางส่วน
    • คลาส & บุคคล ("อินสแตนซ์")
    • คุณสมบัติ & ชนิดข้อมูล ("เพรดิเคต")
  • นกฮูกเป็นสิ่งจำเป็นสำหรับการให้เหตุผลและการอนุมานที่เหมาะสม
  • นกฮูกมาในสามภาษา Lite คำอธิบายตรรกะ & เต็ม

การใช้นกฮูกเป็นสิ่งจำเป็นที่จะได้รับความหมายมากขึ้น (การใช้เหตุผลและการอนุมาน) เพียงแค่รู้ข้อเท็จจริงบางอย่าง ข้อมูล "ที่สร้างขึ้นแบบไดนามิก" นี้สามารถใช้สำหรับการสืบค้นที่สอดคล้องเช่นเดียวกับใน SPARQL

ตัวอย่างบางส่วนจะแสดงให้เห็นว่าใช้งานได้จริงกับนกฮูก - สิ่งเหล่านี้ได้มาจากการพูดคุยของฉันเกี่ยวกับพื้นฐานของเว็บความหมายที่ TYPO3camp Mallorca, Spain ในปี 2015

เทียบเท่าตามกฎ

Spaniard: Person and (inhabitantOf some SpanishCity)

นี่หมายความว่า a Spaniardต้องเป็นPerson(และสืบทอดคุณสมบัติทั้งหมดในส่วนที่อนุมาน) และต้องอยู่อย่างน้อยหนึ่ง (หรือมากกว่า)SpanishCity(หรือมากกว่า)

ความหมายของคุณสมบัติ

<Palma isPartOf Mallorca>
<Mallorca contains Palma>

ตัวอย่างที่แสดงให้เห็นถึงผลของการใช้inverseOfเพื่อคุณสมบัติและisPartOfcontains

  • ผกผัน
  • สมมาตร
  • เกี่ยวกับสกรรมกริยา
  • ทำเคล็ด
  • ...

คุณสมบัติสำคัญ

<:hasParent owl:cardinality “2“^^xsd:integer>

สิ่งนี้กำหนดว่าแต่ละคนThing(ในสถานการณ์นี้น่าจะเป็นมากที่สุดHuman) มีผู้ปกครองสองคน - มีการกำหนด cardinality ให้กับhasParentทรัพย์สิน

  • ขั้นต่ำ
  • ขีดสุด
  • แน่นอน


2

ทรัพยากรอธิบายหลักการ (RDF)เป็นที่มีประสิทธิภาพอย่างเป็นทางการภาษาแทนความรู้และมาตรฐานพื้นฐานของเว็บความหมาย มันมีคำศัพท์ของตัวเองที่กำหนดแนวคิดหลักและความสัมพันธ์ (เช่น rdf: ประเภทที่สอดคล้องกับความสัมพันธ์ isA) และรูปแบบข้อมูลที่ช่วยให้งบเครื่องตีความในรูปแบบของหัวเรื่อง - วัตถุ - วัตถุ (ทรัพยากรทรัพย์สินมูลค่าตามตัวอักษร) triples เรียกว่า triples RDF เช่น picture-depicts-book การขยายคำศัพท์ RDF ด้วยแนวคิดที่จำเป็นในการสร้างคำศัพท์ควบคุมและจีส์พื้นฐานเรียกว่า RDF Schema หรือ RDF คำศัพท์คำศัพท์ภาษา (RDFS) RDFS ทำให้สามารถเขียนคำสั่งเกี่ยวกับคลาสและทรัพยากรและแสดงโครงสร้าง taxonomical เช่นผ่านความสัมพันธ์ superclass-subclass

โดเมนความรู้ที่ซับซ้อนต้องการความสามารถมากกว่าสิ่งที่มีอยู่ใน RDFS ซึ่งนำไปสู่การเปิดตัวของนกฮูก นกฮูกสนับสนุนความสัมพันธ์ระหว่างคลาส (สหภาพ, จุดตัด, ความไม่ต่อเนื่อง, ความเสมอภาค), ข้อ จำกัด ของ cardinality ของทรัพย์สิน (ขั้นต่ำ, สูงสุด, จำนวนที่แน่นอน, เช่น, ทุกคนมีพ่อหนึ่งคน), การพิมพ์ที่สมบูรณ์ของคุณสมบัติ, คุณสมบัติของคุณสมบัติและคุณสมบัติพิเศษ สมมาตร, การใช้งาน, ผกผันการทำงานเช่น A: hasAncestor B และ B ex: hasAncestor C บอกเป็นนัยว่า A อดีต: hasAncestor C) ระบุว่าคุณสมบัติที่กำหนดเป็นคีย์เฉพาะสำหรับอินสแตนซ์ของคลาสเฉพาะและข้อ จำกัด ของโดเมนและช่วง สำหรับคุณสมบัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.