ฉันพยายามเข้าใจแนวคิดของ Semantic Web ฉันพบว่ามันยากที่จะเข้าใจว่าอะไรคือความแตกต่างระหว่าง RDF และนกฮูก นกฮูกเป็นส่วนเสริมของ RDF หรือสองสิ่งนี้เป็นเทคโนโลยีที่แตกต่างกันโดยสิ้นเชิงหรือไม่?
ฉันพยายามเข้าใจแนวคิดของ Semantic Web ฉันพบว่ามันยากที่จะเข้าใจว่าอะไรคือความแตกต่างระหว่าง RDF และนกฮูก นกฮูกเป็นส่วนเสริมของ RDF หรือสองสิ่งนี้เป็นเทคโนโลยีที่แตกต่างกันโดยสิ้นเชิงหรือไม่?
คำตอบ:
เว็บความหมายมาในเลเยอร์ นี่เป็นบทสรุปโดยย่อของสิ่งที่ฉันคิดว่าคุณสนใจ
อัปเดต : โปรดทราบว่า 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 "
ในระยะสั้น:
ตามที่ผู้โพสต์ก่อนหน้าเขียนไว้ 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
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 .
ประการแรกเป็นที่ได้รับการชี้ให้เห็นก่อนนกฮูกสามารถต่อเนื่องใน RDF
ประการที่สองนกฮูกเพิ่มความสามารถด้านออนโทโลจีให้กับ RDF (ซึ่งมีเพียงความสามารถที่ จำกัด อย่างมากสำหรับการนำเสนอที่เป็นทางการที่รู้จักกันอย่างเป็นทางการ) โดยจัดเตรียมเครื่องมือในการกำหนดส่วนประกอบของทริปเปิลของคุณ นั่นคือสิ่งที่ผู้โพสต์ที่นี่หมายถึงเมื่อพวกเขาพูดถึง "ความหมายความหมาย"
ประการที่สามสิ่งสำคัญคือต้องตระหนักว่าใน OWL-Full (สำหรับ OWL 1) rdfs: class และ owl: class เทียบเท่าและใน OWL-DL, owl: class เป็นคลาสย่อยของ rdfs: class ซึ่งหมายความว่าคุณสามารถใช้ OWL ontology เป็นสคีมาสำหรับ RDF (ซึ่งไม่ต้องการ schemata อย่างเป็นทางการ)
ฉันหวังว่าจะช่วยชี้แจงเพิ่มเติม
เมื่อคุณใช้คำว่า RDF คุณจะต้องแยกความแตกต่างสองอย่าง:
คุณสามารถอ้างถึง RDF เป็นแนวคิด :
วิธีการอธิบายสิ่งต่าง ๆ / ตรรกะ / อะไรก็ได้โดยใช้คอลเลกชันของอเนกประสงค์
ตัวอย่าง:
"แอนนามีแอปเปิ้ล" "แอปเปิ้ลมีสุขภาพดี"
ด้านบนคุณมีสองอเนกประสงค์ที่อธิบายสองแหล่งข้อมูล "แอนนา" และ "แอปเปิ้ล" แนวคิดของ RDF (Resource Description Framework) คือคุณสามารถอธิบายทรัพยากร (อะไรก็ได้) ด้วยชุดคำเพียง 3 คำ (เงื่อนไข) ในระดับนี้คุณไม่สนใจว่าคุณจะเก็บข้อมูลอย่างไรไม่ว่าคุณจะมี 3 คำหรือภาพวาดบนกำแพงหรือโต๊ะที่มี 3 คอลัมน์เป็นต้น
ในระดับแนวคิดนี้สิ่งเดียวที่สำคัญคือคุณสามารถแสดงสิ่งที่คุณต้องการโดยใช้คำสั่งสามรายการ
คุณสามารถอ้างถึง 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: คุณสมบัติโดยการสร้างคุณสมบัติใหม่ที่มีความเป็นนามธรรมน้อยกว่าและสามารถให้คำอธิบายที่แม่นยำยิ่งขึ้นของทรัพยากร
สรุป:
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/
ฉันพยายามเข้าใจแนวคิดของ 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
เพื่ออธิบายเว็บแอปพลิเคชันของคุณในแบบที่เฉพาะเจาะจงมากขึ้น
personA friendsWith personB
) ที่ (2) RDFS ขยายนี้โดยการให้ความสามารถในการระบุความสัมพันธ์ระหว่างobject classes
- class Person <has 'friendsWith' relationship> Person
คือ ที่ช่วยให้คุณวลี RDF ผ่านชั้นเรียน: A:typeof:person friendsWith B:<typeof:person>
. และ (3) นกฮูกจะช่วยให้คุณระบุข้อ จำกัด ของความสัมพันธ์ได้หรือไม่
RDFS ช่วยให้คุณสามารถแสดงความสัมพันธ์ระหว่างสิ่งต่าง ๆ โดยสร้างมาตรฐานให้กับรูปแบบที่มีความยืดหยุ่นและอิงสามประการจากนั้นจึงจัดเตรียมคำศัพท์ ("คำหลัก" เช่นrdf:type
หรือrdfs:subClassOf
) ซึ่งสามารถใช้พูดสิ่งต่างๆ
นกฮูกมีลักษณะคล้ายกัน แต่ใหญ่กว่าดีกว่าและแย่กว่า นกฮูกช่วยให้คุณพูดมากขึ้นเกี่ยวกับรูปแบบข้อมูลของคุณมันแสดงให้คุณเห็นวิธีการทำงานอย่างมีประสิทธิภาพกับการสืบค้นฐานข้อมูลและผู้ให้เหตุผลอัตโนมัติและมันมีคำอธิบายประกอบที่เป็นประโยชน์
ความแตกต่างระหว่าง 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, …)
ในความเป็นจริงนกฮูกให้คำศัพท์ใหม่ที่ซับซ้อนเพื่อใช้ในการสร้างแบบจำลองข้อมูลและการใช้เหตุผลที่ได้รับบทเรียนของตัวเอง!
ข้อแตกต่างที่สำคัญอีกอย่างหนึ่งก็คือไม่เหมือน 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 โลกของนกฮูกกำหนดโครงสร้างที่เข้มงวดมากขึ้น
สมมติว่าคุณใช้เวลาชั่วโมงสุดท้ายในการสร้างภววิทยาที่อธิบายถึงธุรกิจการผลิตวิทยุของคุณ ในช่วงกลางวันงานของคุณคือสร้างภววิทยาสำหรับธุรกิจผลิตนาฬิกาของคุณ บ่ายนี้หลังจากดื่มกาแฟดีๆเจ้านายของคุณจะบอกคุณว่าคุณจะต้องสร้างอภิปรัชญาสำหรับธุรกิจวิทยุนาฬิกาที่ทำกำไรได้สูง มีวิธีที่จะนำงานเช้ามาใช้ซ้ำได้อย่างง่ายดายหรือไม่?
นกฮูกทำสิ่งต่าง ๆ เช่นนี้ง่ายมาก Owl:Import
คือสิ่งที่คุณจะใช้ในสถานการณ์เช่นนาฬิกาวิทยุ แต่นกฮูกยังช่วยให้คุณมีความหลากหลายที่อุดมไปด้วยคำอธิบายประกอบเช่นowl:versionInfo
, owl:backwardsCompatibleWith
และowl:deprecatedProperty
ซึ่งสามารถจะเชื่อมโยงข้อมูลแบบจำลองที่ใช้กันเป็นที่สอดคล้องกันร่วมกันทั้ง
ซึ่งแตกต่างจาก RDFS, นกฮูกมั่นใจว่าจะตอบสนองความต้องการทั้งหมดของการสร้างแบบจำลอง meta-meta-data
นกฮูกให้คำศัพท์ที่มีขนาดใหญ่กว่าให้คุณเล่นซึ่งทำให้ง่ายต่อการพูดทุกสิ่งที่คุณอาจต้องการพูดเกี่ยวกับตัวแบบข้อมูลของคุณ มันยังช่วยให้คุณสามารถปรับแต่งสิ่งที่คุณพูดตามความเป็นจริงในการคำนวณของคอมพิวเตอร์ในปัจจุบันและเพิ่มประสิทธิภาพสำหรับแอพพลิเคชั่นเฉพาะ (สำหรับคำค้นหาเป็นต้น) นอกจากนี้ OWL ยังให้คุณแสดงความสัมพันธ์ระหว่างจีส์ต่าง ๆ ได้อย่างง่ายดาย .
ทั้งหมดนี้เป็นข้อดีเมื่อเทียบกับ RDFS และโดยทั่วไปจะคุ้มค่ากับความพยายามพิเศษที่ใช้ในการทำความคุ้นเคยกับพวกเขา
ที่มา: RDFS vs. OWL
ในรูปแบบวัตถุเอกสาร WC3 เป็นเอกสารเป็นสิ่งที่เป็นนามธรรม: มีองค์ประกอบที่มีข้อความแสดงความคิดเห็นคุณลักษณะและองค์ประกอบอื่น ๆ ที่ซ้อนกันอยู่ภายใน
ในเว็บความหมายเราจัดการกับชุด "triples" แต่ละสามคือ:
นกฮูกเป็นเว็บความหมายเป็น Schemas เป็นรูปแบบวัตถุเอกสาร W3C เป็นเอกสารความหมายต่าง ๆ ของ URIs และระบุวิธีการใช้งานอย่างเป็นทางการที่สามารถตรวจสอบได้ด้วยเครื่อง เว็บแบบความหมายอาจหรืออาจไม่ถูกต้องเกี่ยวกับนกฮูกที่ใช้กับมันเช่นเดียวกับเอกสารอาจหรืออาจไม่ถูกต้องเกี่ยวกับสคีมา
RDF คือเว็บแบบ semantic เนื่องจาก XML คือ DOM - มันเป็นอนุกรมของชุดอเนกประสงค์
แน่นอน RDF มักจะต่อเนื่องกันเป็นเอกสาร XML ... แต่สิ่งสำคัญคือต้องเข้าใจว่า RDF นั้นไม่ใช่สิ่งเดียวกับ "XML serialization ของ RDF"
ในทำนองเดียวกัน OWL สามารถต่อเนื่องโดยใช้ OWL / XML หรือ (ขออภัยเกี่ยวกับเรื่องนี้) มันสามารถแสดงเป็น RDF ซึ่งตัวเองมักจะต่อเนื่องเป็น XML
สแต็กความหมายพื้นฐานของเว็บได้รับการอธิบายมากมายในเธรดนี้ ฉันต้องการเน้นคำถามเริ่มต้นและเปรียบเทียบ RDF กับ OWL
การใช้นกฮูกเป็นสิ่งจำเป็นที่จะได้รับความหมายมากขึ้น (การใช้เหตุผลและการอนุมาน) เพียงแค่รู้ข้อเท็จจริงบางอย่าง ข้อมูล "ที่สร้างขึ้นแบบไดนามิก" นี้สามารถใช้สำหรับการสืบค้นที่สอดคล้องเช่นเดียวกับใน SPARQL
ตัวอย่างบางส่วนจะแสดงให้เห็นว่าใช้งานได้จริงกับนกฮูก - สิ่งเหล่านี้ได้มาจากการพูดคุยของฉันเกี่ยวกับพื้นฐานของเว็บความหมายที่ TYPO3camp Mallorca, Spain ในปี 2015
Spaniard: Person and (inhabitantOf some SpanishCity)
นี่หมายความว่า a Spaniard
ต้องเป็นPerson
(และสืบทอดคุณสมบัติทั้งหมดในส่วนที่อนุมาน) และต้องอยู่อย่างน้อยหนึ่ง (หรือมากกว่า)SpanishCity
(หรือมากกว่า)
<Palma isPartOf Mallorca>
<Mallorca contains Palma>
ตัวอย่างที่แสดงให้เห็นถึงผลของการใช้inverseOf
เพื่อคุณสมบัติและisPartOf
contains
<:hasParent owl:cardinality “2“^^xsd:integer>
สิ่งนี้กำหนดว่าแต่ละคนThing
(ในสถานการณ์นี้น่าจะเป็นมากที่สุดHuman
) มีผู้ปกครองสองคน - มีการกำหนด cardinality ให้กับhasParent
ทรัพย์สิน
รูปภาพพูดหนึ่งพันคำ! แผนภาพด้านล่างนี้ควรเสริมสิ่งที่Christopher Gutteridge กล่าวไว้ในคำตอบนี้ว่า semantic web เป็น "สถาปัตยกรรมแบบเลเยอร์"
ที่มา: https://www.obitko.com/tutorials/ontologies-semantic-web/semantic-web-architecture.html
ทรัพยากรอธิบายหลักการ (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) ระบุว่าคุณสมบัติที่กำหนดเป็นคีย์เฉพาะสำหรับอินสแตนซ์ของคลาสเฉพาะและข้อ จำกัด ของโดเมนและช่วง สำหรับคุณสมบัติ