Pusty węzeł - Blank node

Przykład pustego węzła na wykresie RDF

W RDF , pusty węzeł (zwany także bnode ) to węzeł na grafie RDF reprezentujący zasób, dla którego nie podano URI lub literału. Zasób reprezentowany przez pusty węzeł jest również nazywany zasobem anonimowym . Zgodnie ze standardem RDF, pusty węzeł może być używany tylko jako podmiot lub przedmiot potrójnego RDF.

Notacja w formatach serializacji

Puste węzły można oznaczyć za pomocą pustych identyfikatorów węzłów w następujących formatach: RDF / XML , RDFa , Turtle , N3 i N-Triples . Poniższy przykład pokazuje, jak to działa w RDF / XML .

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:ex="http://example.org/data#">
<rdf:Description rdf:about="http://example.org/web-data" ex:title="Web Data">
  <ex:professor rdf:nodeID="b"/>
</rdf:Description>
<rdf:Description rdf:nodeID="b" ex:fullName="Alice Carol">
  <ex:homePage rdf:resource="http://example.net/alice-carol"/>
</rdf:Description>
</rdf:RDF>

Puste identyfikatory węzłów są ograniczone jedynie w zakresie do serializacji określonego grafu RDF, tj. Węzeł _:b w kolejnym przykładzie nie reprezentuje tego samego węzła co węzeł nazwany _:b na jakimkolwiek innym grafie.

Puste węzły można również oznaczyć za pomocą elementów zagnieżdżonych (w RDF / XML , RDFa , Turtle i N3 ). Oto te same trójki z powyższym.

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:ex="http://example.org/data#">
<rdf:Description rdf:about="http://example.org/web-data" ex:title="Web Data">
  <ex:professor>
    <rdf:Description ex:fullName="Alice Carol">
      <ex:homePage rdf:resource="http://example.net/alice-carol"/>
    </rdf:Description>
  </ex:professor>
</rdf:Description>
</rdf:RDF>

Poniżej znajduje się ten sam przykład w standardzie RDFa .

<p about="http://example.org/web-data">
  <span property="ex:title">Web Data</span>
  <span rel="ex:professor">
    <a property="ex:fullName" rel="ex:homePage" href="http://example.net/alice-carol">Alice Carol</a>
  </span>
</p>

Poniżej ten sam przykład w grze Turtle .

@prefix ex: <http://example.org/data#> .
<http://example.org/web-data> ex:title "Web Data" ;
                               ex:professor [ ex:fullName "Alice Carol" ;
                                              ex:homePage <http://example.net/alice-carol> ] .

Użyteczność

Puste węzły są traktowane jako po prostu wskazujące na istnienie rzeczy, bez używania identyfikatora URI (Uniform Resource Identifier) ​​do identyfikacji jakiejkolwiek konkretnej rzeczy. To nie to samo, co założenie, że pusty węzeł oznacza „nieznany” identyfikator URI.

Anonimowe zasoby w RDF

Z technicznego punktu widzenia dają możliwość:

  1. opisywać struktury wielokomponentowe , takie jak kontenery RDF,
  2. opisać reifikację (tj. informacje o pochodzeniu),
  3. reprezentują złożone atrybuty bez konieczności jawnego nazywania węzła pomocniczego (np. adres osoby składający się z ulicy, numeru, kodu pocztowego i miasta) oraz
  4. oferują ochronę informacji wewnętrznych (np. ochronę poufnych informacji klientów przed przeglądarkami).

Poniżej znajduje się przykład, w którym puste węzły są używane do reprezentowania zasobów w wyżej wymieniony sposób. W szczególności pusty węzeł z identyfikatorem „_: Students” reprezentuje pojemnik Bag RDF, pusty węzeł z identyfikatorem „_: address” reprezentuje atrybut złożony, a te z identyfikatorami „_: activity1” i „_: activity2” „reprezentują zdarzenia z cyklu życia obiektu cyfrowego.

<http://example.org/web-data>
  ex:title "Web Data" ;
  ex:professor _:entity ;
  ex:students _:students ;
  ex:generatedBy _:activity1 .

_:entity
  ex:fullName "Alice Carol" ;
  ex:homePage <http://example.net/alice-carol> ;
  ex:hasAddress _:address .

_:address
  a ex:Address ;
  ex:streetAddress "123 Main St." ;
  ex:postalCode "A1A1A1" ;
  ex:addressLocality "London" .

_:students
  a rdf:Bag ;
  ex:hasMember _:s1 ;
  ex:hasMember _:s2 .

_:activity1
  a ex:Event;
  ex:creator _:entity ;
  ex:atTime "Tuesday 11 February, 06:51:00 CST" .

_:activity2
  a ex:Event, ex:Update ;
  ex:actionOver _:activity1 ;
  ex:creator _:entity2 ;
  ex:atTime "Monday 17 February, 08:12:00 CST" .

Anonimowe zajęcia w OWL

Język ontologii OWL używa pustych węzłów do reprezentowania anonimowych klas, takich jak związki lub przecięcia klas, lub klas zwanych ograniczeniami, zdefiniowanymi przez ograniczenie właściwości.

Na przykład, aby wyrazić, że dana osoba ma co najwyżej jedną datę urodzenia, należy zdefiniować klasę „Osoba” jako podklasę anonimowej klasy typu „owl: Restriction”. Ta anonimowa klasa jest definiowana przez dwa atrybuty określające ograniczoną właściwość i samo ograniczenie ( liczność ≤ 1)

 <owl:Class rdf:about="http://example.org/ontology/Person">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:maxCardinality>1</owl:maxCardinality>
        <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/birthDate"/>
      </owl:Restriction>
    </rdfs:subClassOf>
 </owl:Class>

Puste węzły w opublikowanych danych

Występowanie pustych węzłów

Według badania empirycznego opublikowanego w Internecie w Linked Data , z 783 domen tworzących korpus, 345 (44,1%) nie opublikowało żadnych pustych węzłów. Średni odsetek unikalnych terminów, które były pustymi węzłami dla każdej domeny, wynosił 7,5%, co wskazuje, że chociaż niewielka liczba domen o dużym wolumenie publikuje wiele pustych węzłów, wiele innych domen publikuje puste węzły rzadziej.

Z 286,3 MB unikalnych terminów znalezionych w pozycjach na poziomie danych 165,4 MB (57,8%) to puste węzły, 92,1 MB (32,2%) to URI, a 28,9 MB (10%) to dosłowne. Każdy pusty węzeł miał średnio 5,2 wystąpień na poziomie danych. Wystąpiło to średnio 0,99 razy w pozycji obiektu typu non-rdf: potrójnego i 4,2 razy w pozycji podmiotowej potrójnej.

Struktura pustych węzłów

Zgodnie z tym samym empirycznym przeglądem połączonych danych opublikowanych w Internecie, większość badanych dokumentów zawiera struktury pustych węzłów oparte na drzewach. Niewielki ułamek zawiera złożone struktury pustych węzłów, dla których obliczenia różnych zadań są potencjalnie bardzo kosztowne.

Wrażliwe zadania

Istnienie pustych węzłów wymaga specjalnego traktowania w różnych zadaniach, których złożoność rośnie wykładniczo wraz z liczbą tych węzłów.

Porównanie wykresów RDF

Brak możliwości dopasowania pustych węzłów zwiększa rozmiar delty (liczbę trójek, które należy usunąć i dodać, aby przekształcić jeden wykres RDF w inny) i nie pomaga w wykrywaniu zmian między kolejnymi wersjami Bazy wiedzy. Tworzenie mapowania między pustymi węzłami dwóch porównywanych baz wiedzy, które minimalizują rozmiar delty, jest w ogólnym przypadku NP-trudne.

BNodeLand to framework, który zajmuje się tym problemem i proponuje rozwiązania za pomocą określonych narzędzi.

Sprawdzenie uprawnień

W odniesieniu do problemu wynikającego udowodniono, że (a) decydowanie o prostym lub RDF / S wynikającym z grafów RDF jest NP-Complete, a (b) decydowanie o równoważności prostych grafów RDF jest Isomorphism-Complete.

Zobacz też

Bibliografia