Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/schema_salad-7.1.20210316164414.dist-info/METADATA @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 Metadata-Version: 2.1 | |
2 Name: schema-salad | |
3 Version: 7.1.20210316164414 | |
4 Summary: Schema Annotations for Linked Avro Data (SALAD) | |
5 Home-page: https://github.com/common-workflow-language/schema_salad | |
6 Author: Common workflow language working group | |
7 Author-email: common-workflow-language@googlegroups.com | |
8 License: Apache 2.0 | |
9 Download-URL: https://github.com/common-workflow-language/schema_salad/releases | |
10 Platform: UNKNOWN | |
11 Classifier: Environment :: Console | |
12 Classifier: Intended Audience :: Science/Research | |
13 Classifier: License :: OSI Approved :: Apache Software License | |
14 Classifier: Operating System :: POSIX | |
15 Classifier: Operating System :: MacOS :: MacOS X | |
16 Classifier: Operating System :: Microsoft :: Windows | |
17 Classifier: Development Status :: 5 - Production/Stable | |
18 Classifier: Programming Language :: Python :: 3.6 | |
19 Classifier: Programming Language :: Python :: 3.7 | |
20 Classifier: Programming Language :: Python :: 3.8 | |
21 Classifier: Programming Language :: Python :: 3.9 | |
22 Classifier: Typing :: Typed | |
23 Requires-Python: >=3.6 | |
24 Description-Content-Type: text/x-rst | |
25 Requires-Dist: setuptools | |
26 Requires-Dist: requests (>=1.0) | |
27 Requires-Dist: ruamel.yaml (<=0.16.5,>=0.12.4) | |
28 Requires-Dist: rdflib (<=5.0.0,>=4.2.2) | |
29 Requires-Dist: rdflib-jsonld (<0.6.0,>=0.3.0) | |
30 Requires-Dist: mistune (<0.9,>=0.8.1) | |
31 Requires-Dist: CacheControl (<0.12,>=0.11.7) | |
32 Requires-Dist: lockfile (>=0.9) | |
33 Requires-Dist: typing-extensions | |
34 Provides-Extra: docs | |
35 Requires-Dist: sphinx (>=2.2) ; extra == 'docs' | |
36 Requires-Dist: sphinx-rtd-theme ; extra == 'docs' | |
37 Requires-Dist: pytest (<7) ; extra == 'docs' | |
38 | |
39 |Linux Build Status| |Windows Build status| |Code coverage| |CII Best Practices| | |
40 | |
41 .. |Linux Build Status| image:: https://github.com/common-workflow-language/schema-salad/actions/workflows/ci-tests.yml/badge.svg?branch=main | |
42 :target: https://github.com/common-workflow-language/schema-salad/actions/workflows/ci-tests.yml | |
43 .. |Windows Build status| image:: https://img.shields.io/appveyor/ci/mr-c/schema-salad/main.svg?label=windows%20build | |
44 :target: https://ci.appveyor.com/project/mr-c/schema-salad/branch/main | |
45 .. |Code coverage| image:: https://codecov.io/gh/common-workflow-language/schema_salad/branch/main/graph/badge.svg | |
46 :target: https://codecov.io/gh/common-workflow-language/schema_salad | |
47 .. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/1867/badge | |
48 :target: https://bestpractices.coreinfrastructure.org/projects/1867 | |
49 | |
50 Schema Salad | |
51 ------------ | |
52 | |
53 Salad is a schema language for describing JSON or YAML structured | |
54 linked data documents. Salad schema describes rules for | |
55 preprocessing, structural validation, and hyperlink checking for | |
56 documents described by a Salad schema. Salad supports rich data | |
57 modeling with inheritance, template specialization, object | |
58 identifiers, object references, documentation generation, code | |
59 generation, and transformation to RDF_. Salad provides a bridge | |
60 between document and record oriented data modeling and the Semantic | |
61 Web. | |
62 | |
63 The Schema Salad library is Python 3.6+ only. | |
64 | |
65 Usage | |
66 ----- | |
67 | |
68 :: | |
69 | |
70 $ pip install schema_salad | |
71 | |
72 To install from source:: | |
73 | |
74 git clone https://github.com/common-workflow-language/schema_salad | |
75 cd schema_salad | |
76 python3 setup.py install | |
77 | |
78 Commands | |
79 -------- | |
80 | |
81 Schema salad can be used as a command line tool or imported as a Python module:: | |
82 | |
83 $ schema-salad-tool | |
84 usage: schema-salad-tool [-h] [--rdf-serializer RDF_SERIALIZER] | |
85 [--print-jsonld-context | --print-rdfs | --print-avro | |
86 | --print-rdf | --print-pre | --print-index | |
87 | --print-metadata | --print-inheritance-dot | |
88 | --print-fieldrefs-dot | --codegen language | |
89 | --print-oneline] | |
90 [--strict | --non-strict] [--verbose | --quiet | |
91 | --debug] | |
92 [--version] | |
93 [schema] [document] | |
94 | |
95 $ python | |
96 >>> import schema_salad | |
97 | |
98 Validate a schema:: | |
99 | |
100 $ schema-salad-tool myschema.yml | |
101 | |
102 Validate a document using a schema:: | |
103 | |
104 $ schema-salad-tool myschema.yml mydocument.yml | |
105 | |
106 Generate HTML documentation:: | |
107 | |
108 $ schema-salad-tool myschema.yml > myschema.html | |
109 | |
110 Get JSON-LD context:: | |
111 | |
112 $ schema-salad-tool --print-jsonld-context myschema.yml mydocument.yml | |
113 | |
114 Convert a document to JSON-LD:: | |
115 | |
116 $ schema-salad-tool --print-pre myschema.yml mydocument.yml > mydocument.jsonld | |
117 | |
118 Generate Python classes for loading/generating documents described by the schema:: | |
119 | |
120 $ schema-salad-tool --codegen=python myschema.yml > myschema.py | |
121 | |
122 Display inheritance relationship between classes as a graphviz 'dot' file and | |
123 render as SVG:: | |
124 | |
125 $ schema-salad-tool --print-inheritance-dot myschema.yml | dot -Tsvg > myschema.svg | |
126 | |
127 | |
128 Quick Start | |
129 ----------- | |
130 | |
131 Let's say you have a 'basket' record that can contain items measured either by | |
132 weight or by count. Here's an example:: | |
133 | |
134 basket: | |
135 - product: bananas | |
136 price: 0.39 | |
137 per: pound | |
138 weight: 1 | |
139 - product: cucumbers | |
140 price: 0.79 | |
141 per: item | |
142 count: 3 | |
143 | |
144 We want to validate that all the expected fields are present, the | |
145 measurement is known, and that "count" cannot be a fractional value. | |
146 Here is an example schema to do that:: | |
147 | |
148 - name: Product | |
149 doc: | | |
150 The base type for a product. This is an abstract type, so it | |
151 can't be used directly, but can be used to define other types. | |
152 type: record | |
153 abstract: true | |
154 fields: | |
155 product: string | |
156 price: float | |
157 | |
158 - name: ByWeight | |
159 doc: | | |
160 A product, sold by weight. Products may be sold by pound or by | |
161 kilogram. Weights may be fractional. | |
162 type: record | |
163 extends: Product | |
164 fields: | |
165 per: | |
166 type: | |
167 type: enum | |
168 symbols: | |
169 - pound | |
170 - kilogram | |
171 jsonldPredicate: '#per' | |
172 weight: float | |
173 | |
174 - name: ByCount | |
175 doc: | | |
176 A product, sold by count. The count must be a integer value. | |
177 type: record | |
178 extends: Product | |
179 fields: | |
180 per: | |
181 type: | |
182 type: enum | |
183 symbols: | |
184 - item | |
185 jsonldPredicate: '#per' | |
186 count: int | |
187 | |
188 - name: Basket | |
189 doc: | | |
190 A basket of products. The 'documentRoot' field indicates it is a | |
191 valid starting point for a document. The 'basket' field will | |
192 validate subtypes of 'Product' (ByWeight and ByCount). | |
193 type: record | |
194 documentRoot: true | |
195 fields: | |
196 basket: | |
197 type: | |
198 type: array | |
199 items: Product | |
200 | |
201 You can check the schema and document in schema_salad/tests/basket_schema.yml | |
202 and schema_salad/tests/basket.yml:: | |
203 | |
204 $ schema-salad-tool basket_schema.yml basket.yml | |
205 Document `basket.yml` is valid | |
206 | |
207 | |
208 Documentation | |
209 ------------- | |
210 | |
211 See the specification_ and the metaschema_ (salad schema for itself). For an | |
212 example application of Schema Salad see the Common Workflow Language_. | |
213 | |
214 | |
215 Rationale | |
216 --------- | |
217 | |
218 The JSON data model is an popular way to represent structured data. It is | |
219 attractive because of it's relative simplicity and is a natural fit with the | |
220 standard types of many programming languages. However, this simplicity comes | |
221 at the cost that basic JSON lacks expressive features useful for working with | |
222 complex data structures and document formats, such as schemas, object | |
223 references, and namespaces. | |
224 | |
225 JSON-LD is a W3C standard providing a way to describe how to interpret a JSON | |
226 document as Linked Data by means of a "context". JSON-LD provides a powerful | |
227 solution for representing object references and namespaces in JSON based on | |
228 standard web URIs, but is not itself a schema language. Without a schema | |
229 providing a well defined structure, it is difficult to process an arbitrary | |
230 JSON-LD document as idiomatic JSON because there are many ways to express the | |
231 same data that are logically equivalent but structurally distinct. | |
232 | |
233 Several schema languages exist for describing and validating JSON data, such as | |
234 JSON Schema and Apache Avro data serialization system, however none | |
235 understand linked data. As a result, to fully take advantage of JSON-LD to | |
236 build the next generation of linked data applications, one must maintain | |
237 separate JSON schema, JSON-LD context, RDF schema, and human documentation, | |
238 despite significant overlap of content and obvious need for these documents to | |
239 stay synchronized. | |
240 | |
241 Schema Salad is designed to address this gap. It provides a schema language | |
242 and processing rules for describing structured JSON content permitting URI | |
243 resolution and strict document validation. The schema language supports linked | |
244 data through annotations that describe the linked data interpretation of the | |
245 content, enables generation of JSON-LD context and RDF schema, and production | |
246 of RDF triples by applying the JSON-LD context. The schema language also | |
247 provides for robust support of inline documentation. | |
248 | |
249 .. _JSON-LD: http://json-ld.org | |
250 .. _Avro: http://avro.apache.org | |
251 .. _metaschema: https://github.com/common-workflow-language/schema_salad/blob/main/schema_salad/metaschema/metaschema.yml | |
252 .. _specification: http://www.commonwl.org/v1.0/SchemaSalad.html | |
253 .. _Language: https://github.com/common-workflow-language/common-workflow-language/blob/main/v1.0/CommandLineTool.yml | |
254 .. _RDF: https://www.w3.org/RDF/ | |
255 | |
256 |