# "*": "https://raw.githubusercontent.com/wefindx/schema/master/method/oo-item.yaml" # "base:title": "0oo - Metaformat" "og:title": "Metaformat" "og:description": "The basic idea is that we can create a header ("metaheader") to bind format and schema specifications to data, and a single **polycontext metasymbol** (a map that specifies in which context what metasymbol is to be used) to bind it to data, and link them with global namespaces of ontologies, schemas, and user identities. For example, the polycontext metasymbol may be defined by providing a map: <center>![](https://wiki.mindey.com/shared/shots/d455a078fd8190bd14d6cba0c.png)</center> Where, <i>C<sub>1</sub>...C<sub>N</sub></i> are format or language contexts, and <i>S<sub>1</sub>...S<sub>N</sub></i> are [metasymbols](https://proofwiki.org/wiki/Definition:Metalanguage/Metasymbol), and <i>N ∈ ℕ</i>. For example if we want to introduce a metasymbol in multiple languages and formats, which may be in …" "og:image": "https://avatars0.githubusercontent.com/u/28134655" "og:url": "/method/863/" "base:css": "/static/css/bootstrap.min.9c25540d6272.css" "base:extra-css": "/static/css/base.57997aeac1df.css" "base:favicon": "/static/favicon.acaa334f0136.ico" "base:body_class": "" "layout:logo": "/static/0oo.8d2a8bbef612.svg" "layout:index": "/" "layout:menu": "/menu/" "layout:categories": "/intents/" "layout:ideas": "/methods/" "layout:projects": "/projects/" "layout:users": "/users/" "layout:about": "/about/" "layout:help": "/help/" "layout:bug_report": "https://github.com/wefindx/0oo" "layout:login": "/accounts/login/" "layout:light-off": "/darken/?darken=true" "layout:set-monolingual": "/mulang/?mulang=false" "layout:lang": "Language" "layout:set-language-post-action": "/i18n/setlang/" "layout:csrf-token": "PJSxbPDqLcvnRYf5ZOilheUohwlqJ6Bj9K3waCFUMyqYCr4UjPVoKv4tz75wcMcb" "layout:input-next": "/method/863/" "layout:languages": [{"code": "ja", "is-active": "false", "name": "日本語"}, {"code": "lt", "is-active": "false", "name": "Lietuviškai"}, {"code": "zh-hans", "is-active": "false", "name": "简体中文"}, {"code": "en", "is-active": "true", "name": "English"}, {"code": "ru", "is-active": "false", "name": "Русский"}, {"code": "oo", "is-active": "false", "name": "O;o,"}] # "item:parent:intents": [{"url": "/intent/90001/", "title": "Smart ontologies"}, {"url": "/intent/924/", "title": "Technology"}, {"url": "/intent/1311/", "title": "Data Liquidity and Systems Interoperability"}, {"url": "/intent/862/", "title": "Meta standard for data reusability"}, {"url": "/intent/105001/", "title": "Programmatic Access and Control"}, {"url": "/intent/1366/", "title": "Cyberspace"}] "item:title": ".:en:Metaformat" "item:summary": ".:en:Create a polycontext metasymbol, and overcome the fact that standardization does not generalize." "item:voting": +2 "item:voting:add": "/admin/hlog/voting/add/?method=863" "item:voting:csrf_token": "PJSxbPDqLcvnRYf5ZOilheUohwlqJ6Bj9K3waCFUMyqYCr4UjPVoKv4tz75wcMcb" "item:voting:submit-value-option": {"selected": "[-]", "value": "-"} "item:voting:submit-value-option": {"selected": "[+]", "value": "+"} "item:base-administration": false "item:body": | .:en The basic idea is that we can create a header ("metaheader") to bind format and schema specifications to data, and a single **polycontext metasymbol** (a map that specifies in which context what metasymbol is to be used) to bind it to data, and link them with global namespaces of ontologies, schemas, and user identities. For example, the polycontext metasymbol may be defined by providing a map:
![](https://wiki.mindey.com/shared/shots/d455a078fd8190bd14d6cba0c.png)
Where, C1...CN are format or language contexts, and S1...SN are [metasymbols](https://proofwiki.org/wiki/Definition:Metalanguage/Metasymbol), and N ∈ ℕ. For example if we want to introduce a metasymbol in multiple languages and formats, which may be in conflict with the already-defined symbols and reserved words within the languages and formats, we can introduce a polycontext metasymbol with domain in those languages and formats, for example, `XML`, `RDF`, `JSON`, `YAML`, `Python`, `JavaScript`, `Scheme` , and codomain with our chosen values for S, for example `__`, `_`, `*`, `*`, `#*`, `{/*S*/}`, `#|*|#`, etc., and then use it for arbitrary semantic or syntactic purposes.

Universal Finger ☝️

Think of **polycontext metasymbol** as a **universal pointer**, that can point to anything, and acquires context-neutral form to go to point and ask questions about the things that monocontext metasymbols cannot. You may also think of polycontext metasymbol as an operator with domain spanning across the data specified in different languages, and thus enables us to talk about or operate on them all at once.

Metaformat

A [metaformat](https://book.mindey.com/metaformat/0001-metaform-philosophy/0001-metaform-philosophy.html#principle), is a set of rules that specify, how the parsing (interpretation) rules are to be embedded within different contexts (data chunks). This is done via the polycontext metasymbol and a few standards, like URLs for referencing, and the serialization languages for schema specification within that URL. Many specific metaformats can be defined, by choosing different polycontext metasymbols, URL formats, and schema specification styles. The below example relies on what I call [MFT-1](https://book.mindey.com/metaformat/0002-data-object-format/0002-data-object-format.html) specification.

Usage Example

Suppose that we use polycontext metasymbol `*` in all contexts, except those where it is a reserved word, and use key-value pairs to provide formats via URLs as their values, with the format (schema) data in machine-human readable key-value specifications. Then here is how it may look as follows. **In JSON** As `*` key, with value pointing to URL of specifications. ``` {"*": "https://github.com/infamily/_/wiki/example#test1", "field1": "Haiz", "field2": { "properties": { "field3": 12}}} ``` **In XML** As `` attribute at any level, with value pointing to URL of specification. ``` Haiz 12 ``` Specifying the value for the symbol, allows to link schema and data formats directly to the data instances, and have data self-normalizable, and ontologically automatically combine-able, and understand the above record as:

Simpler than JSON-LD

The LinkedData format, such as `JSON-LD`, we may have: ``` { "@context": "https://json-ld.org/contexts/person.jsonld", "@id": "http://dbpedia.org/resource/John_Lennon", "name": "John Lennon", "born": "1940-10-09", "spouse": "http://dbpedia.org/resource/Cynthia_Lennon" } ``` We can write the same thing using the above metaformat, as: ``` { '*': 'https://github.com/mindey/terms/wiki/person#foaf', 'url': 'http://dbpedia.org/resource/John_Lennon', 'fullname': 'John Lennon', 'birthdate': '1940-10-09', 'spouse': 'http://dbpedia.org/resource/Cynthia_Lennon' } ``` This way, we do not require the standardization of `@id` field, because the mapping of the field specifying it can be described in the format specification itself, provided via the polycontext metasymbol. **This adds additional degree of freedom for data authors, and less burden for data analysts.** Hypothesis -- the reason of small adoption of semantic web technologies is because of the overcomplexification of metastandards. This simplifies it, deconstrains, and reduces burden to stick with any particular vocabulary. "item:source-date": "" "item:permalink": "/method/863/?l=en" "item:owner": "Mindey" "item:created": "2019-09-11T15:01:44.134000" "item:ownerlink": "/user/147/Mindey" # "item:link:items": "item:link:add": "/admin/hlog/link/add/?parent=863" "item:project:items": - "id": "p-879" "title": "Metaform" "url": "/project/879/" "mission": "" "owner": "Mindey" "ownerlink": "/user/147/Mindey" "created": "2019-09-14T22:48:26.683000" "permalink": "/method/863/?l=en#p-879" - "id": "p-854" "title": "MetaDrive" "url": "/project/854/" "mission": "MetaDrive is an attempt to design a single interface to all world's resources via a metastandard." "owner": "Mindey" "ownerlink": "/user/147/Mindey" "created": "2019-09-07T17:36:07.406000" "permalink": "/method/863/?l=en#p-854" "item:project:add": "/admin/hlog/project/add/?parent=863" "item:comment:add": "/methods/addnote?parent=863" "item:comment:add:csrf_token": "PJSxbPDqLcvnRYf5ZOilheUohwlqJ6Bj9K3waCFUMyqYCr4UjPVoKv4tz75wcMcb" "item:comment:form": |
  • Mark if the comment raises new questions.
  • Mark if the comment contributes potential solutions.
  • Mark if the comment contributes facts for reasoning.
  • Please, log in. # "item:comment:items": - "id": "a-754" "text": | So, semantic web technologies -- overconstrained system? "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-754" "created": "" - "id": "a-796" "text": | Related protocols: - [DID](https://w3c-ccg.github.io/did-spec/)s - [DCAT](https://www.w3.org/TR/vocab-dcat/)s "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-796" "created": "" - "id": "a-800" "text": | Umm, there is a package now, that can be tested with: Try `pip install metaform`, and then
            import metaform
            
            metaform.load({
            '*': 'https://github.com/mindey/terms/wiki/person#foaf',
             'url': 'http://dbpedia.org/resource/John_Lennon',
             'fullname': 'John Lennon',
             'birthdate': '1940-10-09',
             'spouse': 'http://dbpedia.org/resource/Cynthia_Lennon'
            }).format()
            
    "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-800" "created": "" - "id": "a-827" "text": | I am working on a system I call living documents. There's a link to a screencast here: https://github.com/samsquire/ideas#4-living-documents "owner": "chronological" "ownerlink": "/user/198/chronological" "permalink": "/method/863/?l=en#a-827" "created": "" - "id": "a-830" "text": | [chronological], first of all, big welcome to Homebase! Hope you find the place fun and entertaining. It's amazing to have you here! Let me check this out. "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-830" "created": "" - "id": "a-832" "text": | // Living documents are the idea of intra document CMS that features the insertability of arbitrary data formats and provides integrations between inserted content blocks. It's a general purpose data structure editor. // Very good concept. However, imagine now that there do exist other systems, outside your internal system, and you want to control them via your internal system. How can you do? The metaform approach results in creating something I call a metadrive (it's among projects under this idea, not in "published" state though). The concept is that if we have drivers for other systems, we could simply mount them to our system. Mount anything, -- e.g., linkedin, or youtube, or something more advanced, and let it become your internal data structure. In practise, I think what's needed for this to happen, is something like Darklang, but better be open source. Check [Darklang](https://www.youtube.com/watch?v=NDg6Ko9gbGk). P.S. I'll fix the markdown, very soon. :) "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-832" "created": "" - "id": "a-841" "text": | Finally, the markdown is fixed, and you can take a look better, hopefully, more understandable. The concept of metaformat is actually very deep. I had written a gitbook on it [here](https://book.mindey.com/metaformat/0001-metaform-philosophy/0001-metaform-philosophy.html). More generall, what needs to be done, is theoretically extract the equivalence classes for polycontext metasymbols. Practically, many drivers need to be written and supported for the systems that we want to make interoperative. **In short term,** work that needs to be done includes: _recognition of field names and the formats of data types and measure units, from larger set of data annotations created for datasets using metaformat. Call it **'autoformat'**: -see a dataset -> automatically generate metaformat description- :)_ "owner": "Mindey" "ownerlink": "/user/147/Mindey" "permalink": "/method/863/?l=en#a-841" "created": "" "base:js": "/static/js/base.c7357c06cc89.js"