Salata schema

Salata este un limbaj de schema pentru descrierea documentelor de date legate structurate JSON sau YAML. Schema de salata descrie regulile pentru preprocesare, validare structurala si verificarea hyperlinkului pentru documentele descrise de o schema de salata. Salad accepta modelarea de date bogate cu mostenire, specializarea sablonului, identificatori de obiecte, referinte de obiecte, generarea de documentatie, generarea de cod si transformarea in RDF. Salad ofera o punte intre modelarea datelor orientate catre documente si inregistrari si Semantic Web.

Biblioteca Schema Salad este doar Python 3.6+.

Utilizare

$ pip instala schema_salad

Pentru a instala din sursa:

git clone https://github.com/common-workflow-language/schema_salad cd schema_salad python3 setup.py install

Comenzi

Salata de schema poate fi utilizata ca instrument de linie de comanda sau importata ca un modul Python:

$ schema-salata-instrument de utilizare: schema-salata-instrument [-h] [–rdf-serializer RDF_SERIALIZER] [–print-jsonld-context | –print-rdfs | –print-avro | –print-rdf | –print-pre | –print-index | –print-metadate | –print-mostenire-punct | –print-fieldrefs-dot | –codegen language | –print-oneline] [–strict | –non-strict] [–verbose | –quiet | –debug] [–version] [schema] [document] $ python >>> import schema_salad

Validati o schema:

$ schema-salata-instrument myschema.yml

Validati un document folosind o schema:

$ schema-salata-instrument myschema.yml mydocument.yml

Generati documentatie HTML:

$ schema-salata-instrument myschema.yml> myschema.html

Obtineti context JSON-LD:

$ schema-salata-instrument –print-jsonld-context myschema.yml mydocument.yml

Convertiti un document in JSON-LD:

$ schema-salad-tool –print-pre myschema.yml mydocument.yml> mydocument.jsonld

Generati clase Python pentru incarcarea / generarea documentelor descrise de schema:

$ schema-salad-tool –codegen = python myschema.yml> myschema.py

Afisati relatia de mostenire intre clase ca fisier „punct” graphviz si redati in format SVG:

$ schema-salad-tool –print-mostenire-punct myschema.yml | punct -Tsvg> myschema.

potro de bilbao videos caseros españa
incesto abuela y nieto incesto retro
suegras españolas follando falsos casting porno
porno libre xxx prostitutas
porno hat cine para adultos gratis
porno online gratis porno peludas españolas
incestos jovencitas analxxx
filme porno romanesti asiatica forzada
coños calientes tata_latina
abuelas folladas por el culo cerdas com gratis
chochitos jovencitos me follo a
pillada follando laura marano nude
maduras gordibuenas peliculas x en castellano
chicas corriendose pillada follando
porni se folla a su cuñada
casadas españolas follando chupame las tetas
peliculas eroticas italianas gay se la chupa a hetero
follando en un crucero fontanero cachondo
lecturas porno porno italiano incesto
porno hoy trios x

svg

Pornire rapida

Sa presupunem ca aveti o inregistrare „cos” care poate contine articole masurate fie in functie de greutate, fie de numarare. Iata un exemplu:

cos: – produs: banane pret: 0,39 per: kilogram greutate: 1 – produs: castraveti pret: 0,79 per: numar de articole: 3

Vrem sa validam faptul ca toate campurile asteptate sunt prezente, masurarea este cunoscuta si ca „numararea” nu poate fi o valoare fractionala. Iata un exemplu de schema pentru a face acest lucru:

– nume: Doc produs: | Tipul de baza pentru un produs. Acesta este un tip abstract, deci nu poate fi utilizat direct, dar poate fi folosit pentru a defini alte tipuri. tip: inregistrare rezumat: campuri adevarate: produs: sir pret: float – nume: ByWeight doc: | Un produs, vandut in greutate. Produsele pot fi vandute pe kilograme sau kilograme. Greutatile pot fi fractionate. tip: inregistrare se extinde: Campuri de produse: per: tip: tip: simboluri enum: – lira – kilogram jsonldPredicat: greutate „#per”: float – nume: ByCount doc: | Un produs, vandut pe numar. Numarul trebuie sa fie o valoare intreaga. tip: inregistrare se extinde: Campuri de produs: per: tip: tip: simboluri enum: – item jsonldPredicate: numar # #per: int – nume: Cos doc: | Un cos cu produse. Campul „documentRoot” indica faptul ca este un punct de plecare valid pentru un document. Cosul’ campul va valida subtipurile de „Produs” (ByWeight si ByCount). tip: inregistrare document Radacina: campuri adevarate: cos: tip: tip: elemente matrice: Produs

Puteti verifica schema si documentul in schema_salad / tests / basket_schema.yml si schema_salad / tests / basket.yml:

$ schema-salad-tool basket_schema.yml basket.yml Documentul `basket.yml` este valid

Documentatie

A se vedea specificatia si metaschema (schema de salata pentru sine). Pentru un exemplu de aplicatie a Schema Salad, consultati Limba de flux de lucru comun.

Justificare

Modelul de date JSON este un mod popular de reprezentare a datelor structurate. Este atractiv datorita relativitatii sale simple si se potriveste natural cu tipurile standard ale multor limbaje de programare. Cu toate acestea, aceasta simplitate costa ca JSON de baza nu are caracteristici expresive utile pentru lucrul cu structuri de date complexe si formate de documente, cum ar fi scheme, referinte de obiecte si spatii de nume.

JSON-LD este un standard W3C care ofera o modalitate de a descrie modul de interpretare a unui document JSON ca date legate prin intermediul unui „context”. JSON-LD ofera o solutie puternica pentru reprezentarea referintelor obiectelor si a spatiilor de nume in JSON bazate pe URI-uri web standard, dar nu este el insusi un limbaj de schema. Fara o schema care sa ofere o structura bine definita, este dificil sa procesati un document JSON-LD arbitrar ca JSON idiomatic, deoarece exista multe modalitati de a exprima aceleasi date care sunt echivalente din punct de vedere logic, dar structural distincte.

Exista mai multe limbaje de schema pentru descrierea si validarea datelor JSON, cum ar fi JSON Schema si sistemul de serializare a datelor Apache Avro, insa niciuna nu intelege datele legate. Ca rezultat, pentru a profita pe deplin de JSON-LD pentru a construi urmatoarea generatie de aplicatii de date legate, trebuie sa mentineti schema JSON separata, contextul JSON-LD, schema RDF si documentatia umana, in ciuda suprapunerii semnificative a continutului si a nevoii evidente de aceste documente sa ramana sincronizate.

Schema Salad este conceput pentru a remedia acest decalaj. Acesta ofera un limbaj de schema si reguli de procesare pentru descrierea continutului JSON structurat care permite rezolutia URI si validarea stricta a documentelor. Limbajul schemei accepta datele legate prin adnotari care descriu interpretarea datelor legate de continut, permite generarea contextului JSON-LD si a schemei RDF si producerea triplelor RDF prin aplicarea contextului JSON-LD. Limbajul schemei ofera, de asemenea, un suport robust pentru documentatia in linie.