Qual è la differenza tra RDF e OWL? [chiuso]


191

Sto cercando di capire il concetto di Semantic Web. Trovo difficile capire quale sia esattamente la differenza tra RDF e OWL. OWL è un'estensione di RDF o queste due sono tecnologie totalmente diverse?


Personalmente ho trovato questo deck slide abbastanza utile e comprensibile: slideshare.net/rlovinger/rdf-and-owl
dgorissen

Risposte:


272

Il web semantico si presenta a strati. Questo è un breve riassunto di quelli che penso ti interessino.

Aggiornamento : tenere presente che RDFS viene utilizzato per definire la struttura dei dati, non OWL. OWL descrive le relazioni semantiche di cui la normale programmazione, come una struttura in C, non è agitata ed è più vicina alla ricerca e alla teoria degli insiemi.

Tripli e URI

Subject - Predicate - Object

Questi descrivono un singolo fatto. Generalmente gli URI sono usati per soggetto e predicato. L'oggetto è un altro URI o un letterale come un numero o una stringa. I letterali possono avere un tipo (che è anche un URI) e possono anche avere una lingua. Sì, questo significa che le triple possono avere fino a 5 bit di dati!

Ad esempio, una tripla potrebbe descrivere il fatto che Charles è il padre di Harrys.

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

Le triple sono la normalizzazione del database portata ad un estremo logico. Hanno il vantaggio di poter caricare triple da molte fonti in un unico database senza alcuna riconfigurazione.

RDF e RDFS

Il livello successivo è RDF - The Resource Description Framework. RDF definisce una struttura extra per le triple. La cosa più importante che RDF definisce è un predicato chiamato "rdf: type". Questo è usato per dire che le cose sono di certi tipi. Tutti usano rdf: type che lo rende molto utile.

RDFS (RDF Schema) definisce alcune classi che rappresentano il concetto di soggetti, oggetti, predicati ecc. Ciò significa che puoi iniziare a fare dichiarazioni su classi di cose e tipi di relazione. Al livello più semplice puoi affermare cose come http://familyontology.net/1.0#hasFather è una relazione tra una persona e una persona. Consente inoltre di descrivere nel testo leggibile dall'uomo il significato di una relazione o di una classe. Questo è uno schema. Ti dice usi legali di varie classi e relazioni. Viene anche usato per indicare che una classe o proprietà è un sottotipo di un tipo più generale. Ad esempio "HumanParent" è una sottoclasse di "Persona". "Loves" è una sottoclasse di "Knows".

Serializzazioni RDF

RDF può essere esportato in diversi formati di file. Il più comune è RDF + XML ma questo presenta alcuni punti deboli.

N3 è un formato non XML che è più facile da leggere e ci sono alcuni sottoinsiemi (Turtle e N-Triples) che sono più rigorosi.

È importante sapere che RDF è un modo di lavorare con le triple, NON con i formati di file.

XSD

XSD è uno spazio dei nomi utilizzato principalmente per descrivere i tipi di proprietà, come date, numeri interi e così via. È generalmente visto nei dati RDF che identificano il tipo specifico di un letterale. È anche usato negli schemi XML, che è un bollitore leggermente diverso di pesce.

GUFO

OWL aggiunge la semantica allo schema. Ti permette di specificare molto di più sulle proprietà e le classi. È anche espresso in triple. Ad esempio, può indicare che "Se A isMarriedTo B" significa che "B isMarriedTo A". O che se " C isAncestorOf D " e " D isAncestorOf E ", allora " C isAncestorOf E ". Un'altra cosa utile che gufo aggiunge è la capacità di dire che due cose sono uguali, questo è molto utile per unire i dati espressi in schemi diversi. Puoi dire che la relazione" sired "in uno schema è gufo: sameAs" fathered "in qualche altro schema. Puoi anche usarlo per dire che due cose sono uguali, come "Elvis Presley" su Wikipedia è lo stesso sulla BBC. Questo è molto eccitante in quanto significa che puoi iniziare a unire dati da più siti (questo è "Dati collegati").

Puoi anche usare il GUFO per dedurre fatti impliciti, come " C isAncestorOf E ".


21
Ecco un'immagine dei livelli del Web semantico: w3.org/2001/12/semweb-fin/swlevels.png Solo per riferimento.
Timo Westkämper,

8
Una parte di ciò che non è ancora chiaro per me è che sembra esserci una sovrapposizione tra ciò che RDFS e OWL possono esprimere. Ad esempio, un gufo: la classe può apparire molto simile a un rdfs: classe. (Ad esempio, un'entità di tipo gufo: la classe è spesso oggetto di numerosi predicati RDFS come rdfs: comment e rdfs: subclassOf.) Faccio fatica a capire come OWL sia uno strato sopra RDFS, perché quando si tratta di definendo le classi, sembra più un modo per arricchire ciò che potresti fare con RDFS.
Ian Griffiths,

A seconda del profilo OWL / OWL-2 che si utilizza, si dispone della capacità "aggiuntiva" di arricchire la propria base di conoscenza con assiomi DL (ad esempio restrizioni di proprietà, disgiunzione e molto altro).
Zhubarb,

4
@IanGriffiths: in realtà sotto la semantica OWL2, gufo: classe e rdf: la classe (così come molte altre coppie sorprendenti) sono eqivalenti: risposte.semanticweb.com/questions/30954/…
Vladimir Alexiev

... OWL, RDFS, XSD ... sono linguaggi complementari ... ognuno ha un ruolo nella descrizione del tuo dominio e tutti si uniscono per arricchirlo ...
Sergio,

82

In breve:

  • RDF definisce come scrivere cose
  • OWL definisce cosa scrivere

Come ha scritto il poster precedente, RDF è una specifica che spiega come definire le triple.

Il problema è che RDF ti consente di definire tutto, in modo da poter comporre una dichiarazione come questa:

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

Queste triple formano documenti RDF validi.

Ma, semanticamente, capisci che queste affermazioni sono errate e RDF non può aiutarti a convalidare ciò che hai scritto.

Questa non è un'ontologia valida.

Le specifiche OWL definiscono esattamente cosa è possibile scrivere con RDF per avere un'ontologia valida.

Le ontologie possono avere diverse proprietà.

Ecco perché OWL (ver 1) definisce diverse versioni come OWL DL, OWL Lite, OWL Full.


28
Ma nota che OWL non vincolerà ciò che puoi mettere nel tuo archivio RDF: le informazioni sullo schema OWL sono usate principalmente per deduzione, non per imporre vincoli.
DNA,

32

RDF, RDFS e OWL sono mezzi per esprimere informazioni o conoscenze sempre più complesse. Tutti possono essere serializzati nella sintassi RDF / XML (o qualsiasi altra sintassi di serializzazione RDF come Turtle o N3 per esempio).

Queste tecnologie sono correlate e dovrebbero essere interoperabili, eppure hanno origini diverse, forse per questo la relazione tra loro è complicata da comprendere. La scelta dell'uno o dell'altro dipende da quanta complessità richiede la situazione che stai modellando.

Riepilogo dell'espressività

RDF : rappresentazione semplice, focalizzata sulle istanze e sulla mappatura dei loro tipi ( rdf:type). È possibile definire proprietà personalizzate per collegare i dati e creare triple. I dati RDF vengono interrogati con SPARQL. Esempio di RDF serializzato in Turtle:

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

RDFS: alcune situazioni non sono facilmente modellabili dal solo RDF, a volte è interessante rappresentare relazioni più complesse come sottoclassi ( il tipo di un tipo ), ad esempio. RDFS fornisce mezzi speciali per rappresentare tali casi, con costrutti come rdfs:subClassOf, rdfs:rangeo rdfs:domain. Idealmente, un ragionatore può comprendere la semantica RDFS ed espandere il numero di triple in base alle relazioni: ad esempio se si hanno le triple John a Mane Man rdfs:subClassOf Humanquindi si dovrebbe generare anche la tripla John a Human. Si noti che ciò non è possibile solo con RDF. I dati RDFS vengono interrogati utilizzando SPARQL. Esempio di RDFS serializzato in 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 .

GUFO: il massimo livello di espressività. La relazione tra le classi può essere formalmente modellata sulla base di logiche descrittive (teoria matematica). OWL si basa fortemente sul ragionamento, è possibile esprimere costrutti complessi come proprietà concatenate per esempio o restrizioni tra le classi. OWL serve per creare ontologie o schemi nella parte superiore dei set di dati RDF. Poiché OWL può essere serializzato come RDF / XML, è teoricamente possibile interrogarlo tramite SPARQL, tuttavia è molto più intuitivo interrogare un'ontologia OWL con una query DL (che di solito è un'espressione di classe OWL standard). Esempio di costrutti OWL serializzati in 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
La sottoclasse non è "il tipo di un tipo": questa è una metaclasse. "X a Y. Y a Z." è diverso da "X a Y. Y subClassOf Z"
Vladimir Alexiev

14

In primo luogo, come già sottolineato in precedenza, il gufo può essere serializzato in RDF.

In secondo luogo, OWL aggiunge capacità ontologiche a RDF (che da solo fornisce una capacità estremamente limitata per la rappresentazione formale della conoscenza), fornendo l'apparato per definire i componenti del triplo usando una logica di descrizione del primo ordine calcolabile formale. Questo è ciò che qui intendono i poster quando parlano di "ricchezza semantica".

In terzo luogo, è importante rendersi conto che in OWL-Full (per OWL 1) rdfs: class e owl: class sono equivalenti e in OWL-DL, owl: class è una sottoclasse di rdfs: class. In effetti, ciò significa che è possibile utilizzare un'ontologia OWL come schema per RDF (che non richiede formalmente schemi).

Spero che ciò aiuti a chiarire ulteriormente.


Ottimo post ... Voglio salvare le triple RDF in Oracle 11g, posso usare OWL come schema per il mio RDF?
Saad,

10

Quando stai usando il termine RDF devi distinguere due cose:

  1. Puoi fare riferimento a RDF come concetto :

    Un modo di descrivere cose / logica / qualsiasi cosa usando raccolte di triple.

    Esempio:

    "Anna ha le mele." "Le mele sono salutari."

    Sopra hai due triple che descrivono due risorse "Anna" e "mele". Il concetto di RDF (Resource Description Framework) è che puoi descrivere le risorse (qualsiasi cosa) con insiemi di sole 3 parole (termini). A questo livello non ti importa di come stai memorizzando le informazioni, se hai una stringa di 3 parole, o un dipinto su un muro, o un tavolo con 3 colonne ecc.

    A questo livello concettuale l'unica cosa importante è che puoi rappresentare tutto ciò che desideri usando le dichiarazioni triple.

  2. Puoi fare riferimento a RDF come vocabolario

    Un vocabolario è solo una raccolta di definizioni di termini archiviate in un file o da qualche parte. Questi termini definiti hanno lo scopo di essere generalmente riutilizzati in altre descrizioni in modo che le persone possano descrivere i dati (risorse) più facilmente e in modo standard.

    Sul Web puoi trovare alcuni vocabolari standard come:

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

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

    GUFO ( https://www.w3.org/2002/07/owl )

    Il vocabolario RDF definisce termini che aiutano a descrivere (al livello più elementare possibile) individui / istanze di classi. Esempio: rdf: type, rdf: Property.

    Con rdf: type puoi descrivere che una risorsa è un'istanza di una classe:

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

    Quindi il vocabolario RDF ha termini che prendono di mira le descrizioni di base delle istanze di classe e alcune altre descrizioni (come la definizione di tripla istruzione o la definizione di predicato ... in generale cose che sono confinate al concetto di RDF).

    Il vocabolario RDFS ha definizioni di termini che aiutano a descrivere le classi e le relazioni tra di loro. Il vocabolario RDFS non si preoccupa delle istanze di classi (individui) come il vocabolario RDF. Esempio: la proprietà rdfs: subClassOf che è possibile utilizzare per descrivere che una classe A è una sottoclasse della classe B.

    I vocabolari RDF e RDFS dipendono l'uno dall'altro. RDF definisce i suoi termini usando RDFS e RDFS usa RDF per definire i propri termini.

    I vocabolari RDF / RDFS forniscono termini che possono essere utilizzati per creare descrizioni molto semplici delle risorse. Se si desidera avere descrizioni più complesse e accurate, è necessario utilizzare il vocabolario OWL.

Il vocabolario di OWL include una serie di nuovi termini che descrivono descrizioni più dettagliate. Questi termini sono definiti usando i termini dei vocabolari 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 .

Come puoi vedere sopra, il vocabolario di GUFO estende il concetto di rdf: Proprietà creando nuovi tipi di Proprietà meno astratti e in grado di fornire descrizioni più accurate delle risorse.

conclusioni:

  1. RDF è un concetto o un modo per descrivere le risorse usando insiemi di triple.
  2. Le triple RDF possono essere memorizzate in diversi formati (XML / RDF, Turtle ecc.)
  3. Il concetto di RDF è il modello base di tutte le tecnologie e strutture web semantiche (come i vocabolari).
  4. RDF è anche un vocabolario che insieme al vocabolario RDFS fornisce una serie di termini che possono essere utilizzati per creare descrizioni generali / astratte delle risorse.
  5. OWL è un vocabolario costruito con i vocabolari RDF e RDFS che forniscono nuovi termini per la creazione di descrizioni più dettagliate delle risorse.
  6. Tutti i vocabolari web semantici (RDF, RDFS, OWL ecc.) Sono costruiti rispettando il concetto RDF.
  7. E ovviamente il vocabolario di OWL ha dietro le quinte tutti i tipi di logiche e concetti complessi che definiscono il linguaggio Web Ontology. Il vocabolario OWL è solo un modo di usare tutta quella logica in pratica.

9

RDF è un modo per definire un triplo 'soggetto', 'predicato', 'valore' . Ad esempio, se voglio dire,

"mi chiamo Pierre"

vorrei scrivere

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

Vedi il <foaf:name>? fa parte dell'ontologia FOAF . Un'ontologia è un modo formale per descrivere le proprietà, le classi di un dato soggetto e OWL è un modo (RDF) per definire un'ontologia.

Si utilizza C ++, Java, ecc ... per definire una classe, una sottoclasse, un campo, ecc ...

class Person
{
    String email_as_id;
    String name;
}

RDF utilizza OWL per definire questo tipo di dichiarazioni.

Un altro posto dove porre questo tipo di domanda: http://www.semanticoverflow.com/


14
In disaccordo con: "RDF utilizza OWL per definire questo tipo di istruzioni". RDF non utilizza GUFO in alcun modo. Questo è il contrario: OWL utilizza lo schema RDF che utilizza RDF.
alexkr,

@Stefano Dove trovano le persone che scappano, questa è la vera domanda.
Pascal Thivent,

7

Sto cercando di capire il concetto di Semantic Web. Trovo difficile capire quale sia esattamente la differenza tra RDF e OWL. OWL è un'estensione di RDF o queste due sono tecnologie totalmente diverse?

In breve, sì, si potrebbe dire che OWL è un'estensione di RDF.

Più in dettaglio, con RDF è possibile descrivere un grafico diretto definendo triple di soggetto-predicato-oggetto. Il soggetto e l'oggetto sono i nodi, il predicato è il bordo o, in altre parole, il predicato descrive la relazione tra il soggetto e l'oggetto. Ad esempio :Tolkien :wrote :LordOfTheRingso:LordOfTheRings :author :Tolkien, ecc ... I sistemi di dati collegati usano queste triple per descrivere i grafici della conoscenza e forniscono modi per memorizzarli, interrogarli. Ora questi sono sistemi enormi, ma puoi usare RDF per progetti più piccoli. Ogni applicazione ha un linguaggio specifico del dominio (o in termini DDD linguaggio onnipresente). Puoi descrivere quella lingua nel tuo ontologia / vocabolario, in modo da poter descrivere il modello di dominio della tua applicazione con un grafico, che puoi visualizzare mostrandolo al business ppl, parlare delle decisioni aziendali in base al modello e costruire l'applicazione in cima di quella. Puoi associare il vocabolario della tua applicazione ai dati che restituisce e ad un vocabolario conosciuto dai motori di ricerca, come i microdati(ad esempio puoi usare HTML con RDFA per farlo), e così i motori di ricerca possono trovare facilmente le tue applicazioni, perché la conoscenza di ciò che fa sarà processabile in macchina. Ecco come funziona il web semantico. (Almeno è così che lo immagino.)

Ora per descrivere le applicazioni orientate agli oggetti hai bisogno di tipi, classi, proprietà, istanze, ecc ... Con RDF puoi descrivere solo oggetti. RDFS (schema RDF) ti aiuta a descrivere le classi, l'ereditarietà (basata su oggetti ofc.), Ma è troppo ampia. Per definire i vincoli (ad esempio un bambino per famiglia cinese) è necessario un altro vocabolario. OWL (linguaggio ontologico web) fa questo lavoro. OWL è un'ontologia che è possibile utilizzare per descrivere le applicazioni Web. Integra XSD simpleTypes.
Lo stesso RDF -> RDFS -> OWL -> MyWebAppvale per descrivere la tua applicazione web in un modo sempre più specifico.


Grazie - sembra molto utile. Penso che tu stia dicendo (per favore fammi sapere se ho capito bene) che (1). RDF consente di specificare relazioni dirette tra oggetti ( personA friendsWith personB), che (2) RDFS estende ciò fornendo la possibilità di specificare relazioni tra object classes- ie class Person <has 'friendsWith' relationship> Person. Che permette di allora frase RDF via classe: A:typeof:person friendsWith B:<typeof:person>. E (3), OWL ti consente quindi di specificare i vincoli delle relazioni?
Zach Smith,

cioè una persona può avere un massimo di 4 "amiciCon" connessioni`?
Zach Smith,

@ZachSmith Sì.
inf3rno,

Una buona risposta, grazie. Rende più facile leggere tutto il resto in questa pagina.
Zach Smith,

@ZachSmith yw.
inf3rno,

7

RDFS consente di esprimere le relazioni tra le cose standardizzando un formato flessibile e triplo basato e quindi fornendo un vocabolario ("parole chiave" come rdf:typeo rdfs:subClassOf) che può essere usato per dire le cose.

Il gufo è simile, ma più grande, migliore e più cattivo. OWL ti consente di dire molto di più sul tuo modello di dati, ti mostra come lavorare in modo efficiente con query di database e ragionamenti automatici e fornisce utili annotazioni per portare i tuoi modelli di dati nel mondo reale.

1a differenza: vocabolario

Delle differenze tra RDFS e OWL, la più importante è solo che OWL fornisce un vocabolario molto, molto più ampio, che puoi usare per dire le cose .

Ad esempio, OWL comprende tutti i tuoi vecchi amici di RDFS, come rdfs:type, rdfs:domaine rdfs:subPropertyOf. Tuttavia, OWL ti dà anche nuovi e migliori amici! Ad esempio, OWL ti consente di descrivere i tuoi dati in termini di operazioni impostate:

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

Ti permette di definire equivalenze tra database:

AcmeCompany:JohnSmith  owl:sameAs    PersonalDatabase:JohnQSmith

Ti consente di limitare i valori delle proprietà:

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

infatti, OWL fornisce un vocabolario così nuovo e sofisticato da utilizzare nella modellazione e nel ragionamento dei dati che prende la sua lezione!

2a differenza: rigidità

Un'altra grande differenza è che, diversamente da RDFS, OWL non solo ti dice come puoi usare un certo vocabolario, ma ti dice anche come non puoi usarlo. Al contrario, RDFS ti offre un mondo in cui puoi aggiungere praticamente qualsiasi tripla desideri.

Ad esempio, in RDFS, tutto ciò che ritieni possa essere un'istanza di rdfs:Class. Potresti decidere di dire che Beagle è un rdfs:Classe quindi dire che Fido è un'istanza di Beagle :

Example: Beagle    rdf:Type    rdfs:Class

Example:Fido    rdf:Type    Example: Beagle

Successivamente, potresti decidere che vorresti dire cose sui beagle, forse vuoi dire che Beagle è un esempio di cani allevati in Inghilterra :

Example:Beagle    rdf:Type    Example:BreedsBredInEngland

Example: BreedsBredInEngland    rdf:Type    rdfs:Class

La cosa interessante in questo esempio è che Example:Beagleviene usato sia come classe che come istanza . Beagle è una classe di cui Fido è membro, ma Beagle è essa stessa un membro di un'altra classe: Things Bred in England.

In RDFS, tutto ciò è perfettamente legale perché RDFS non limita realmente le istruzioni che è possibile inserire e non è possibile. In OWL, al contrario, o almeno in alcune versioni di OWL, le affermazioni di cui sopra non sono in realtà legali: semplicemente non ti è permesso dire che qualcosa può essere sia una classe che un'istanza.

Questa è quindi una seconda grande differenza tra RDFS e OWL. RDFS consente un free-for-all , tutto va come un mondo pieno di Wild West, Speak-Easies e Salvador Dali. Il mondo di OWL impone una struttura molto più rigida.

3a differenza: annotazioni, i meta-meta-dati

Supponiamo che tu abbia trascorso l'ultima ora a costruire un'ontologia che descriva la tua attività di produzione radiofonica. Durante il pranzo, il tuo compito è costruire un'ontologia per la tua attività di produzione di orologi. Oggi pomeriggio, dopo un buon caffè, il tuo capo ti dice ora che dovrai costruire un'ontologia per la tua attività di radio sveglia altamente redditizia. C'è un modo per riutilizzare facilmente il lavoro mattutino?

OWL rende le cose come queste molto, molto facili. Owl:Importè quello che si usa nella situazione radiosveglia, ma GUFO ti dà anche una ricca varietà di annotazioni, come owl:versionInfo, owl:backwardsCompatibleWithe owl:deprecatedProperty, che può essere facilmente modelli di dati link utilizzato insieme in un insieme tra loro coerenti.

A differenza di RDFS, OWL è in grado di soddisfare tutte le esigenze di modellazione dei meta-metadati.

Conclusione

OWL ti offre un vocabolario molto più ampio con cui giocare, il che rende facile dire tutto ciò che potresti voler dire sul tuo modello di dati. Ti consente persino di personalizzare ciò che dici in base alle realtà computazionali dei computer di oggi e di ottimizzare per applicazioni particolari (ad esempio per query di ricerca). Inoltre, OWL ti consente di esprimere facilmente le relazioni tra diverse ontologie utilizzando un framework di annotazione standard .

Tutti questi sono vantaggi rispetto a RDFS e in genere valgono lo sforzo supplementare necessario per familiarizzare con loro.

Fonte: RDFS vs. OWL


4

Nel modello a oggetti del documento WC3, un documento è una cosa astratta: un elemento con testo, commenti, attributi e altri elementi nidificati al suo interno.

Nel web semantico, abbiamo a che fare con una serie di "triple". Ogni tripla è:

  • un soggetto, la cosa la tripla è su , l'id, la chiave primaria del database - un URI; e
  • il predicato, il "verbo", la "proprietà", la "colonna del database" - un altro URI; e
  • l' oggetto , un valore atomico o un URI.

Il gufo è per il web semantico come gli schemi sono per il modello a oggetti del documento W3C. Documenta il significato dei vari URI e specifica il modo in cui vengono utilizzati in modo formale che può essere verificato da una macchina. Una rete semantica può essere o non essere valida rispetto alla GUFO che si applica ad essa, così come un documento può o non può essere valido rispetto a uno schema.

RDF sta nel web semantico come XML è nel DOM: è una serializzazione di un insieme di triple.

Naturalmente, RDF è di solito serializzato come documento XML ... ma è importante capire che RDF non è la stessa cosa della "serializzazione XML di RDF".

Allo stesso modo, OWL può essere serializzato usando OWL / XML o (scusatemi per questo) può essere espresso come RDF, che di solito è serializzato come XML.


3

Lo stack web semantico di base è già stato spiegato molto in questa discussione. Vorrei concentrarmi sulla domanda iniziale e confrontare RDF con OWL.

  • OWL è un super-set di RDF e RDF-S (in alto)
  • OWL consente di lavorare efficacemente con RDF e RDF-S
  • OWL ha un vocabolario esteso
    • classi e singoli ("istanze")
    • proprietà e tipi di dati ("predicati")
  • OWL è richiesto per il ragionamento e l'inferenza adeguati
  • OWL è disponibile in tre dialetti lite, con descrizione logica e completo

L'uso di OWL è essenziale per ottenere più significato (ragionamento e inferenza) semplicemente conoscendo alcuni fatti. Queste informazioni "create dinamicamente" possono essere ulteriormente utilizzate per query concorde come in SPARQL.

Alcuni esempi dimostreranno che ciò funziona effettivamente con OWL - questi sono stati presi dal mio discorso sulle basi del web semantico al TYPO3camp Mallorca, Spagna nel 2015.

equivalenti per regole

Spaniard: Person and (inhabitantOf some SpanishCity)

Ciò significa che a Spaniarddeve essere un Person(e quindi eredita tutte le proprietà nella parte inferenziale) e deve vivere in almeno una (o più) SpanishCity.

significato delle proprietà

<Palma isPartOf Mallorca>
<Mallorca contains Palma>

L'esempio mostra il risultato dell'applicazione inverseOfalle proprietà isPartOfe contains.

  • inverso
  • simmetrico
  • transitivo
  • disarticolare
  • ...

cardinalità delle proprietà

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

Questo definisce che ciascuno Thing(in questo scenario molto probabilmente a Human) ha esattamente due genitori: la cardinalità è assegnata alla hasParentproprietà.

  • minimo
  • massimo
  • esatto


2

Il Resource Description Framework (RDF) è un potente linguaggio di rappresentazione della conoscenza formale e uno standard fondamentale del Web semantico. Ha un proprio vocabolario che definisce concetti e relazioni fondamentali (ad esempio, rdf: type corrisponde alla relazione isA) e un modello di dati che consente istruzioni interpretabili meccanicamente sotto forma di oggetto-predicato-oggetto (valore-proprietà-risorsa) triple, chiamate triple RDF, come il libro illustrato. L'estensione del vocabolario RDF con i concetti necessari per creare vocabolari controllati e ontologie di base si chiama RDF Schema o RDF Vocabulary Description Language (RDFS). RDFS consente di scrivere dichiarazioni su classi e risorse ed esprimere strutture tassonomiche, ad esempio tramite relazioni superclasse-sottoclasse.

I domini di conoscenza complessi richiedono più capacità rispetto a quanto disponibile in RDFS, il che ha portato all'introduzione di GUFO . OWL supporta relazioni tra classi (unione, intersezione, disgiunzione, equivalenza), vincoli di cardinalità delle proprietà (minimo, massimo, numero esatto, ad es. Ogni persona ha esattamente un padre), una ricca tipizzazione di proprietà, caratteristiche di proprietà e proprietà speciali (transitivo, simmetrica, funzionale, inversa funzionale, ad es. A ex: hasAncestor B e B ex: hasAncestor C implica che A ex: hasAncestor C), specificando che una determinata proprietà è una chiave univoca per istanze di una particolare classe e restrizioni di dominio e intervallo per proprietà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.