Állítások #
Alany, Állítmány, Tárgy #
A tudást tény-állításokként rögzítjük. A tényeket kijelentő mondatokként megfogalmazott állítások formájában írtuk le. Például:
Luke Skywalker életkora kora 23 év.
angolul:
Luke Skywalker has age 23.
A mondatokat át lehet alakítani olyan formába, hogy azok az alany-állítmány-tárgy
szerkezetet tükrözzék.
Ezeket a szerkezeti elemeket angolul subject-predicate-object
névvel azonosítjuk.
Luke-Skywalker has-age 23.
A mondat elemei:
- subject (alany):
Luke-Skywalker
, - predicate (állítmány):
has-age
, - object (tárgy):
23
.
Mivel sok Luke Skywalker létezhet, ezért az egyértelműség kedvéért a konkrét személyre a Luke-Skywalker-from-StarWars
azonosítóval fogunk hivatkozni.
Mivel szabványosított formátumú, univerzális azonosítót akarunk használni, ezért Luke azonosítója a következő IRI lesz: <Luke-Skywalker-from-StarWars>
.
Luke egyértelműen egy resource, vagy más néven entitás, akit egy IRI-vel egyértelműen azonosítunk.
Van egy tulajdonsága, az életkor, amit a <has-age>
IRI-vel tudunk kifejezni, mivel ez egy általános fogalom.
Ezen felül szükségünk vagy egy literálra, aminek az értéke 23
és a típusa egész szám. Ezt az értéket veszi fel Luke esetében a has-age
tulajdonság.
Végleges formában tehát a kijelentés az alábbi lesz:
<Luke-Skywalker-from-StarWars> <has-age> 23^^integer .
Láthatjuk az 1. ábrán, hogy a subject-predicate-object
hármas felrajzolható gráfként, ahol a subject és az object node-okként jelenik meg, és a predicate lesz a két node-ot összekötő, irányított él.

1. ábra: Subject-Predicate-Object Gráf
Az ilyen formában felírt kijelentést triplet-nek is nevezik.
Példaképpen vizsgáljuk meg, hogyan tudnánk reprezentálni a számítógép számára az alábbi tényeket:
Luke Skywalker egy személy a StarWars világban. Családi neve Skywalker, keresztneve Luke.
Luke Skywalker jelenleg 23 éves.
Leia Organa egy személy a StarWars világban. Családi neve Organa, keresztneve Leia.
Leia ismeri Luke-ot.
Alakítsuk át a fenti mondatokat subject-predicat-object
szerkezetűvé.
Nézzük hogyan néz ki átfogalmazva a fenti néhány mondat. Az átrendezett mondatokat angolul fogjuk leírni, mert ezzel egyszerűbb lesz követni a gráffá alakítás során a jelölésmódot. A subject-eket és predicate-eket rögtön IRI formátumba alakítottuk.
<Luke-Skywalker-from-StarWars> <is-a> <Person> .
<Luke-Skywalker-from-StarWars> <has-given-name> "Luke" .
<Luke-Skywalker-from-StarWars> <has-family-name> "Skywalker" .
<Luke-Skywalker-from-StarWars> <has-age> 23 .
<Leia-Organa-from-StarWars> <is-a> <Person> .
<Leia-Organa-from-StarWars> <has-given-name> "Leia" .
<Leia-Organa-from-StarWars> <has-family-name> "Organa" .
<Leia-Organa-from-StarWars> <knows> <Luke-Skywalker-from-StarWars> .
Gráfként fogjuk ábrázolni a tényeket, azokkal az elemekkel, amit az előző fejezetben bevezettünk, resource-okkal, IRI-kkel, és literál értékekkel.
A resource-ok (subject-ek és object-ek):
- Luke Skywalker a StarWars világban:
<Luke-Skywalker-from-StarWars>
, - Leia Organa a StarWars világban:
<Leia-Organa-from-StarWars>
, - Személy (mint fogalom):
<Person>
.
A predikátumok:
<is-a>
,<has-given-name>
,<has-family-name>
,<has-age>
,<knows>
.
A literálok:
"Luke"
,"Skywalker"
,"Leia"
,"Organa"
,23
.
A 2. ábra azt szemléltei, hogy a fenti állítások hogyan jelennek meg gráfként:

2. ábra: Predikátumok gráfként ábrázolva
Az entitások sárga színnel, a literálok pedig zöld színnel vannak megjelenítve.
Üres node-ok #
Előfordul olyan eset, amikor az állításokat úgy akarjuk hozzákapcsolni egy entitáshoz, hogy ahhoz nem akarunk globális azonosítót, IRI-t rendelni, mivel az entitásra csak az adott gráfon belül van szükségünk, és annak a kapcsolatai a lényegesek, nem pedig az, hogy a külvilág felé egyértelmű legyen az azonossága. Ebben az esetben úgynevezett üres csomópontokat, angolul Blank Node-okat alkalmazunk.
A Blank Node-oknak is van saját azonosítója, ami egy adott gráfon belül egyedi ameddig a program fut.
A Blank Node-ok a _:
prefix-szel kezdődnek, és többnyire valamilyen véletlenszerűen generált számmal, vagy stringgel folytatódnak.
A 3. ábra hasonló a 2. ábrán látható gráfhoz, azzal a különbséggel, hogy azon a két személyt nem azonosítjuk, globális hatáskörű IRI-kkel, hanem csak lokális hatáskörű Blank Node-okkal.

3. ábra: Predikátumok gráfként ábrázolva, Blank node-okkal
A Blank Node-okat szürke színnel jelöljük.
Kapcsolódó oldalak:
A node-ok és quad-ok belső reprezentációja #
Fontos Megjegyeznünk, hogy valójában, a predikátumok belső reprezentációja szintén gráf csomópont, ami jellemzően IRI, vagy esetenként literál érték lehet. Ezek a predikátumok megjelenhetnek a keresési eredménylistákban is.
A 4. ábra szemlélteti, hogyan néz ki a belső reprezentáció (bal oldal), ahhoz a jelölésmódhoz viszonyítva, amit eddig alkalmaztunk a quad-ok ábrázolására (jobb oldal).
A diagram a következő két quad-ot jeleníti meg:
<starwars:leia_organa> <foaf:familyName> "Organa" "people" .
<starwars:leia_organa> <foaf:knows> _:n353930893927990388 "people" .

4. ábra: A quad-ok belső reprezentációja.
A belső reprezentációval kapcsolatban az alábbi megállapításokat tehetjük, az ábra alapján:
- A subject-ek, object-ek ((IRI-k és Blank Node-ok), továbbá a literál értékek mindannyian gáf csomópontokként vannak reprezentálva,
- A predikátumok szintén gráf csomópontokkal vannak reprezentálva,
- A gráf címkék úgyszintén gráf csomópontokkal vannak reprezentálva,
- Minden egyes komplett n-quad kijelentés egy további, kiegészítő gráf csomóponttal van reprezentálva.