Documente Academic
Documente Profesional
Documente Cultură
2021
CUPRINS
Resurse. URI
Microdate
Standardul JSON
Takeaway”.
2021
CUPRINS
Standardul JSON-LD
Standardul RDF
Documente RDF
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:Person rdf:ID="p1">
<foaf:name> Puchianu Crenguta </foaf:name>
<foaf:homepage rdf:resource="http://fmi.univ-ovidius.ro"/>
<foaf:mbox rdf:resource="mailto:crenguta.puchianu@univ-ovidius.ro"/>
<foaf:publications rdf:resource="http://math.univ-ovidius.ro/doc/CVpdf/
cv_C_Bogdanro.pdf"/>
</foaf:Person>
</rdf:RDF>
2021
CUPRINS
Limbajul SPARQL
<rdf:Description rdf:ID="p1">
<foaf:based_near>
https://dbpedia.org/page/Constan%C8%9Ba
</foaf:based_near>
<foaf:lastName>Puchianu</foaf:lastName>
<foaf:firstName>Crenguta</foaf:firstName>
<rdf:type> <foaf:Person/> </rdf:type>
</rdf:Description>
</rdf:RDF>
public class ModelRDF {
private static ModelRDF instanta;
private Model model;
private int id;
private Resource r;
private ModelRDF(){
model= ModelFactory.createDefaultModel();
model.setNsPrefix("foaf","http://xmlns.com/foaf/0.1/");
model.setNsPrefix("db", "https://dbpedia.org/page/");
}
public Resource adaugaPersoana(Persoana p){
id++;
r=model.createResource("#p"+id,model.createResource(FOAF.Person))
.addProperty(FOAF.firstName, p.getPrenume())
.addProperty(FOAF.lastName, p.getNume())
.addProperty(FOAF.mbox, p.getEmail())
.addProperty(FOAF.homepage, p.getAdresaPagina())
.addProperty(FOAF.publications, p.getAdresaCV());
return r; }
public void adaugaLocalitate(String loc){
r.addProperty(FOAF.based_near,model.getNsPrefixURI("db")+loc);
}
public void scrieSpecificatieRDF(){model.write( System.out, "RDF/XML-ABBREV" ); }
public static ModelRDF getInstanta() { if(instanta==null) instanta=new ModelRDF();
return instanta; }}
Exemplu
Descrierea revistei Taifasuri folosind RDF:
http://www.taifasuri.ro/
prin urmatoarele elemente: titlu, tip, fondator, editori,
producator (publisher)
Definirea proprietatilor/relatiilor in
RDF
Afirmatia: Eu detin calculatorul Lenovo
(https://www.lenovo.com/ro/ro/laptops/c/Laptops)
de la adresa:
https://4.grgs.ro/images/products/1/1703884/1718464/normal/15-
v130-ikb-fhd-procesor-intel-core-i5-7200u-3m-cache-up-to-310-ghz-
4gb-ddr4-1tb-radeon-530-2gb-freedos-iron-grey-
7b02bbeffe4af55031ca0c059df70c00.jpg
2021
CUPRINS
Interogari SPARQL
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:base="http://math.univ-ovidius.ro/">
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/MasinaDeMarcat">
<rdfs:subClassOf>SistemDeCalcul</rdfs:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/Abac">
<rdfs:subClassOf>SistemDeCalcul</rdfs:subClassOf>
</rdfs:Class>
</rdf:RDF>
Definirea unei taxonomii in RDFS
(cont.)
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/
SistemDeCalcul"/>
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/Desktop">
<rdfs:subClassOf>MasinaDeCalculElectronica</rdfs:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/Laptop">
<rdfs:subClassOf>MasinaDeCalculElectronica</rdfs:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:about="http://math.univ-ovidius.ro/
MasinaDeCalculElectronica">
<rdfs:subClassOf>SistemDeCalcul</rdfs:subClassOf>
</rdfs:Class>
Concepte RDFS (cont.)
Concept Definitie Sintaxa
Daca o proprietate p1 este o rdfs:subPropertyOf
subproprietate a unei proprietati p2 si
daca o resursa A are proprietatea p2
Subproprietate
avand asignata valoarea B, atunci
resursa A are de asemenea
proprietatea p1 cu valoarea B.
Restrictia de domeniu este o rdfs:domain
Domeniu proprietate ce specifica faptul ca orice
(Restrictie de resursa care are o proprietate data este
domeniu) o instanta a uneia sau mai multor
clase.
Restrictia de codomeniu este o rdfs:range
Codomeniu proprietate ce specifica faptul ca
(Restrictie de valorile unei proprietati sunt instante
codomeniu) ale uneia sau mai multor clase.
4. Ce animale au blana?
2021
CUPRINS
Specificatia RDFa
Ontologii
<owl:Class rdf:about="http://www.univ-ovidius.ro/ApartamentDeLux">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="http://www.univ-ovidius.ro/ApartamentLocatieBuna"/>
<owl:Class rdf:about="http://www.univ-ovidius.ro/ApartamentSuprafataMare"/>
<owl:Class
rdf:about="http://www.univ-ovidius.ro/ApartamentCuVedereFrumoasa"/>
</owl:intersectionOf>
4. owl:complementOf
<owl:Class rdf:about="http://www.univ-ovidius.ro/AlimentNecomestibil"/>
<owl:Class rdf:about="http://www.univ-ovidius.ro/AlimentComestibil">
<owl:complementOf
rdf:resource="http://www.univ-ovidius.ro/AlimentNecomestibil"/>
</owl:Class>
Conf. univ. dr. Crenguta Puchianu
Universitatea Ovidius Constanta
Facultatea de Matematica si Informatica
2021
CUPRINS
Ontologia DOLCE
<owl:Class rdf:about="http://www.univ-ovidius.ro/Calculator">
<rdfs:subClassOf>Obiect</rdfs:subClassOf>
</owl:Class>
In Java:
<owl:ObjectProperty rdf:about="http://www.univ-ovidius.ro/sosesteIn">
<rdfs:label>sosesteIn</rdfs:label>
<rdfs:range>http://www.univ-ovidius.ro/Statie</rdfs:range>
<rdfs:domain>http://www.univ-ovidius.ro/Tren</rdfs:domain>
</owl:ObjectProperty>
<owl:SymmetricProperty
rdf:about="http://www.univ-ovidius.ro/esteCasatoritaCu">
<rdfs:label>esteCasatoritaCu</rdfs:label>
<rdfs:range>http://www.univ-ovidius.ro/Persoana</rdfs:range>
<rdfs:domain>http://www.univ-ovidius.ro/Persoana</rdfs:domain>
</owl:SymmetricProperty>
sau owl:ObjectProperty si
rdf:type
rdf:resource=“http://www.w3.org/2002/01/owl#SymmetricProperty”
<owl:TransitiveProperty
rdf:about="http://www.univ-
ovidius.ro/esteStramosAlLui">
<rdfs:label>esteStramosAlLui</rdfs:label>
<rdfs:range>http://www.univ-ovidius.ro/Persoana</rdfs:range>
<rdfs:domain>http://www.univ-
ovidius.ro/Persoana</rdfs:domain>
</owl:TransitiveProperty>
<owl:Restriction rdf:about="http://www.univ-ovidius.ro/Persoana">
<owl:someValuesFrom
rdf:resource="http://www.univ-ovidius.ro/AlimentComestibil"/>
<owl:onProperty rdf:resource="http://www.univ-ovidius.ro/mananca"/>
<rdfs:subClassOf>Animal</rdfs:subClassOf>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</owl:Restriction>
2021
CUPRINS
Ontologia DOLCE
• P(x,x)
Principiul sumei:
Creion Inel
Mina Clips
Bilă Arc
Rezervor Piesa plastic
Varf Capac
Carcasa Conf. univ. dr. Crenguta Puchianu
Descrierea mereologica (cont.)
Parti proprii Parti directe
x, Pix(?x) x, Pix(?x)
x, DispozitivMecanic(?x)
DP (?x,?y), Arc(?y)
DP (?x,?y), PiesaPlastic(?y)
DP (?x,?y), Capac(?y)
Fierbere Apa
Conf. univ. dr. Crenguta Puchianu
Relatii ontologice formale ale lui DOLCE
• AreCalitate (dolce: hasQuality) („x are calitatea y”) are loc
între o calitate şi particularul de care aparţine: o altǎ
calitate, un endurant sau un perdurant.
Endurant Calitate fizica
Camasa Culoare
Caiet Forma
2021
CUPRINS
Ontologia D&S
requisite-for
Description
modality-target requisite-for
Role Course Parameter
participant location-of
Situation Object Perdurant Region
location-of
E v a lu a tD e ( x , y , t ) P a r a m e tr u ( x ) C la s if ic a ( x , y , t )
df
Exemple: mare (temperatura), lung (gat), bun (om), mica
(inaltime), mediu (inteligenta, salariu, temperatura),
stralucitor (metal), inteligent (om), harnic (om), cinstit
(om), nota de trecere, admis (candidat), respins (candidat),
veche (haina), clasic (stil), vintage (moda)
esteEchivalentaExtensional
1
Colectie apartenenta +membru Endurant
2..n
0..1 2..n
acopera
unifica clasifica
1..n 1
Descriere defineste Rol
1..n 1
Conf. univ. dr. Crenguta Puchianu
Colectii organizate in D&S
Exemple: Echipa de
dezvoltare a unui
sistem software; baza
de date; stoc
magazin
Colectiile organizate
depind specific de o
descriere (e.g. model
de proces, schema
bazei de date,
inventar).
2022
CUPRINS
Definirea relatiilor
Definirea constrangerilor
Limbajul SWRL
Motoare de rationament
Sistemul Ontop
traieste(x,y,t) ->
ED(x)^Tara(y)^T(t)^place(x,y,t)
Limbajul SWRL
Semantic Web Rule Language este un limbaj de specificare a
regulilor folosind o combinaţie a limbajelor OWL DL şi OWL Lite cu
Unary/Binary Datalog RuleML, sublimbaje ale lui Rule Markup
Language.
Regulile sunt construite sub forma unor implicaţii între un
antecedent şi o consecinţă. O astfel de regulă este interpretată
astfel: când condiţiile din antecedent sunt adevărate, consecinţa
trebuie de asemenea să fie adevărată.
Atât antecedentul cât şi consecinţa pot fi formaţi din unul sau
mai mulţi atomi.
Atomii multiplii sunt formaţi din conjuncţii de atomi care pot fi
predicate unare C(x) sau binare P(x,y) sau tipuri de date, unde C
este un concept, P este o proprietate, iar x şi y pot fi fie variabile
(prefixate de ?) ce semnifică instante ale conceptelor ontologiei, fie
valori de date OWL.
Reguli SWRL (cont)
ontologiatomis:Aryballos(?a) ^ ontologiatomis:Inaltime(?i) ^ dolce-lite:has-
quality(?a, ?i) ^ ontologiatomis:Valoare(?v) ^ dolce-lite:has-quale(?i, ?v) -
> swrlb:greaterThan(?v, "15"^^xsd:int) ^ swrlb:lessThan(?v,
"20"^^xsd:int)
ontologiatomis:Skyphos(?s) ^ dolce-lite:time-interval(?t) ^
ontologiatomis:Persoana(?p) ^ extendeddns:makes(?p, ?s) ->
temporalrelations:present-at(?p, ?t) ^ dolce-lite:spatio-temporally-present-
at(?p, ontologiatomis:Grecia)
ontologiatomis:Apa(?a) ^ ontologiatomis:Vin(?v) ^
ontologiatomis:Crater(?c) ^ ontologiatomis:Amestecare(?m) ^
ontologiatomis:pastreaza(?c, ?a) ^ ontologiatomis:pastreaza(?c, ?v) ->
dolce-lite:participant-in(?a, ?m) ^ dolce-lite:participant-in(?v, ?m)
Motoare de rationament
Module ce valideaza modelele ontologice prin realizarea urmatoarelor
functionalitati:
- Verificarea consistentei: clasele, proprietatile si definitiile lor
formale nu descriu fapte contradictorii. Exemple:
- o clasa are doua supraclase care sunt disjuncte.
- fie o proprietate p:A->B. Definim o constrangere prin care
specificam ca toate instantele lui C trebuie sa aiba proprietatea p,
unde C si A sunt clase disjuncte.
relationale printr-o
reprezentare Ontop SPARQL Query Answering Engine (Quest)
ontologica a datelor Ontop Core
API OWL (OWL API JDBC API Sesame (Parser
(furnizata de o Parser) R2RML SPARQL)
ontologie).
A fost dezvoltat de Interogari
Ontologii Mapari Baze de date
Free University din OWL 2 R2RML relationale
SPARQL
Bozen-Bolzano.
https://ontop-vkg.org//
Conf. univ. dr. Crenguta Puchianu
Verificarea consistentei unei ontologii
Verificarea consistentei presupune verificarea urmatoarelor
elemente:
• Taxonomia claselor
• Taxonomia proprietatilor
• Asertiunile claselor
• Asertiunile proprietatilor obiectuale si datatype
• Aceleasi instante sa nu apara in clase diferite
Verificarea consistentei unei ontologii cu Ontop:
1. Instalare Ontop (File>Check for plugins…)
2. Setarea driver-ului jdbc (File>Preferences>tab JDBC Drives>Add
) vezi slide 9
3. Alegere Ontop 4.2 (Reasoner)
4. Conectarea la baza de date (Ontop mappings>connection
parameter) vezi slide 11
5. Pornire Ontop (Reasoner- start reasoner)
6. Verificare (submeniul Ontop > Check for inconsistencies…)
Conf. univ. dr. Crenguta Puchianu
Vizualizare tab Ontop Mappings
Conectarea Ontop la baza de date
Pornirea Ontop
Verificarea consistentei ontologiei Tomis
Relatiile (proprietati sau predicate) leaga subiecte de obiecte (cf tripletelor RDF).
Definirea proprietatilor:
- Pentru definirea unei proprietati obiectuale, se identifica mai intai proprietatea pe care
o subclasifica (din ontologia curenta sau cele importate) si se restrictionează domeniu,
respectiv range-ul proprietatii.
- Pentru proprietate datatype: submeniul Data properties -> se selecteaza
topDataProperty -> se creeaza subproprietarea estePlasata si se restrictioneaza
domeniul (la Toarta) si range-ul (la xsd:string)
1
hasValue (exactly): xsd:nonNegativeInteger rdfs:Class
someValuesFrom: rdfs:Class
cardinality: xsd:nonNegativeInteger
minCardinality: xsd:nonNegativeInteger
maxCardinality: xsd:nonNegativeInteger
Restrictiile sunt folosite pentru definirea unei proprietati locale, adica, putem descrie faptul ca
o proprietate mostenita de la o supraclasa are codomeniul o submultime a codomeniului
proprietatii mostenite. Acest lucru inseamna ca subclasa trebuie sa restrictioneze codomeniul
unei proprietati mostenite.
O restrictie are doua parti. Prima parte indica proprietatea asupra careia se aplica restrictia si
este specificata prin owl:onProperty. A doua parte descrie constrangerea. In OWL sunt permise
doua restrictii: de valoare si de cardinalitate. Pentru cele din prima categorie folosim una din
formele allValuesFrom, someValuesFrom sau hasValue.
1.1.1.1 allValuesFrom
Restrictia owl:allValuesFrom inseamna ca pentru orice instanta a clase ce are instante
ale proprietatii specificate, valorile proprietatii fac parte din clasa indicata de clauza
owl:allValuesFrom.
<owl:Class rdf:ID=”Aliment”>
<owl:Class rdf:about=”#AlimentComestibil”>
<rdfs:subClassOf rdf:resource=”Aliment”>
<owl:Class>
<owl:ObjectProperty rdf:ID=”mananca”>
<rdfs:domain rdf:resource=”Animal”>
<rdfs:range rdf:resource=”Aliment”>
</owl:ObjectProperty>
<owl:Class rdf:about="#Persoana">
<rdfs:subClassOf rdf:resource=”Animal”>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#mananca"/>
<owl:allValuesFrom rdf:resource="#AlimentComestibil"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
In acest exemplu, Persoana este o subclasa a clasei Animal si subclasa a unei clase anonime
care are proprietatea mananca si toate valorile acestei proprietati trebuie sa fie instante ale clasei
AlimentComestibil. Orice ar manca o persoana trebuie sa fie un aliment comestibil. Aceasta
restrictie se aplica numai clasei Persoana, nici unei alte subclase a clasei Animal.
1.1.1.2 owl:someValuesFrom
Restrictia owl:someValuesFrom este similara. Daca inlocuim owl:allValuesFrom
din exemplul anterior cu owl:someValuesFrom, ar insemna ca cel putin una din instantele
proprietatii mananca a clasei Persoana trebuie sa puncteze un individ care este o instanta a clase
AlimentComestibil. Altfel spus, orice persoana mananca cel putin un aliment comestibil.
2
Asadar, diferenta dintre cele doua tipuri de restrictii este acceasi cu diferenta dintre
cuantificatorii universal si existential.
Restrictie Semnificatie
Pentru toate persoanele, daca ele mananca ceva, acel ceva trebuie sa fie
allValuesFrom
un aliment comestibil.
1.1.1.3 hasValue
Proprietatea hasValue ne permite sa descriem clase pe baza anumitor valori ale unei
proprietati. Un individ poate fi instanta a unei clase daca cel putin una din valorile proprietatii
este egala cu resursa hasValue.
Definim clasele Facultate si FacultateDeMatematicaSiInformatica, ca subclasa a primeia.
<owl:Class rdf:ID="Facultate"/>
<owl:Class rdf:ID="FacultateDeMatematicaSiInformatica">
<rdfs:subClassOf rdf:resource="#Facultate"/>
</owl:Class>
Definim clasa Departament:
<owl:Class rdf:ID="Departament"/>
Si proprietatea functionala apartineDe intre Departament si Facultate:
<owl:FunctionalProperty rdf:ID="apartineDe">
<rdf:type
rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
<rdfs:domain rdf:resource="#Departament"/>
<rdfs:range rdf:resource="#Facultate"/>
</owl:FunctionalProperty>
Definim clasa DepartamentInformaticaSiMatematicaAplicata ca o subclasa a lui Departament
si a unei clase anonime in care se defineste restrictia ca apartine de
FacultateDeMatematicaSiInformatica.
<owl:Class
rdf:ID="DepartamentInformaticaSiMatematicaAplicata">
<rdfs:subClassOf rdf:resource="#Departament"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#apartineDe"/>
<owl:hasValue
rdf:resource="#FacultateDeMatematicaSiInformatica"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Notam ca – similar cu allValuesFrom si someValuesFrom – aceasta restrictie este
locala. Este adevarata numai pentru proprietatea apartineDe din clasa
DepartamentInformaticaSiMatematicaAplicata.
3
1.1.1.4 Cardinalitate
Cardinalitatea se refera la numarul de aparitii.
Constrangerile de cardinalitate se impun folosind owl:cardinality si permit specificarea
numarului exact de indivizi dintr-o relatie.
<owl:Class rdf:ID="Persoana">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#esteCasatoritCu”/>
<owl:cardinality
rdf:datatype=”http://www.w3.org/2001/XMLSchema#nonNegativ
eInteger”>1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Proprietatea esteCasatoritCu este functionala, adica orice persoana este are cel mult o sotie sau
sot. Cardinalitatea de 1 spune ca orice persoana este casatorita cu exact o alta persoana.
In OWL DL putem specifica si intervale de cardinalitati folosind owl:minCardinality
(pentru marginea inferioara) si owl:maxCardinality (pentru marginea superioara).
Exemplu: O persoana majora este o persoana cu varsta mai mare de 18 ani.
<owl:DatatypeProperty rdf:about="#varsta">
<rdfs:domain rdf:resource="#Persoana"/>
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
</owl:DatatypeProperty>
<owl:Class rdf:ID="PersoanaMajora">
<rdfs:subClassOf rdf:resource="#Persoana"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#int"> 18
</owl:minCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:ID="varsta"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Exemplu: varsta unui adolescent variaza intre 14 si 18.
<owl:Class rdf:ID="Adolescent">
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>18</owl:maxCardinality>
<owl:onProperty>
4
<owl:DatatypeProperty rdf:about="#varsta"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>14</owl:minCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#varsta"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf rdf:resource="#Persoana"/>
</owl:Class>