Chapter 1: What is STxT?
This project is the result of years of unconscious reflection,
although it only took a moment of inspiration.
This chapter may seem a bit scattered, but these are my reflections while creating STxT. Sorry if I repeat myself a bit, if you don’t understand what I’m saying, or if it seems like an incoherent speech. But that’s how it is. It was written as best as it could be, on different days, but it was always used as the basis for creation.
It’s The Inspiration
The rest of the chapters are The Perspiration.
Skim through this chapter a bit, and read it more deeply once you know more about STxT. That’s good advice ;-)
What is STxT?
It is a purely semantic language, with very basic rules, that allows the creation of documents with structured content that is easy to interpret, both by humans and machines. You could be reading a document in STxT without even realizing that it is.
STxT: A language for the web. It doesn’t mean just another one among many. It means A language for the web. Just one. And at the same time, many. All those you want. This is my proposal.
STxT is a language for writing structured documents. It allows creating documents unambiguously, adhering to very precise rules, but producing documents that can be read by people without technical knowledge.
In fact, the documents have meaning in themselves, without any additional translation being necessary. They have a hierarchical structure very similar to XML documents, and their translation can be direct.
In the future, STxT could be a replacement for other technologies like XML or LaTeX.
Declaration of Intent :-)
There are a series of principles or characteristics that we want this new language to have.
- Independent of programming language, operating system, and platform
- Easy for humans to read without technical knowledge
- Easy for humans to learn without technical knowledge
- A beautiful and intuitive appearance
- Promotes the free flow and sharing of information
- Easy for humans with technical knowledge to learn
- Easy for computers to interpret
- Allows easy integration of texts from other programming languages, especially "lightweight languages," which are of particular interest. This results in a very interesting integration.
- Native internationalization (I18N) capabilities
- Native self-description capabilities
- Allows the creation of content trees with the ability to distinguish between different languages very easily
- Generic enough to include documents from other languages
- Simplified to the point where escape characters are unnecessary. In fact, there are no escape characters!!! Is that possible? Yes. I believe this is the first language that can say that :-D It achieves this through structure and content. There are only a few prohibited characters, but no escape characters. You’ll see, I just went on too long about this point...
What Does STxT Mean?
Originally, STxT means "Semantic Text." But it could also have other meanings that I particularly like: SuperText and SexyText.
- SuperContent: it’s text, but super :-D
- SexyContent: it’s particularly beautiful text ;-)
How did I choose the extension: STxT? I was clear that the documents had to be semantic, so there had to be something with "semantic." Also, languages with few letters are very trendy: XML, TeX, HTML, XSD,... so STxT seemed like a good choice to me. I just needed to check that it wasn’t already used, so after searching on the Internet, I only found another remotely similar meaning: sexy-text. Well, even that was fine since semantic text has to be sexy ;-)
Why a New Language?
I have always believed that we lacked a simple language to write texts, but at the same time, one that is powerful in terms of structuring. And I hadn’t found it... until now.
I think the problem has always been that we try to solve the general case, which complicates everything a lot. But it has also been approached incorrectly, always considering the syntactic point of view, seeking a technical approach, never a semantic one.
With STxT We Resolve Semantics and Syntax Simultaneously,
In an Elegant and Beautiful Way.
Don’t get me wrong. I am a computer scientist. But sometimes you have to see it from the other side, with a "clean" vision. In fact, it’s a balance between learning from what you know and trying to think as if you knew nothing about it.
Another goal is to make information open. This was also addressed in the design phase. By design, the content is open.
A Language for Everyone
We aim to make it easy for everyone. There shouldn’t be any problems for "non-technical" people in creating a semantic document. It should be intuitive and simple with the right tools.
One of the goals is to go from having 1 relatively complex language for doing things (e.g., XML, LaTeX,...) to having n very simple ones, with content tied to a structure. This language should be learnable in a very short time. Almost one example should be enough. STxT is designed to be that way. Moreover, STxT will allow transitioning from STxT to other languages, LaTeX, for example, so that more technical people can do the final work. But the origin and the foundation will always be STxT.
It’s much better this way since we write in pure semantics, without considering any structure.
When I started creating this language, I was looking for something very generic, yet descriptive. I wanted the information to be very clear, but I wanted to forget the complex grammars of other systems. I wanted something accessible, yet powerful and useful. That’s why I had to look for simplicity and distance myself from most of the work already done. My aim was to create a language not just for the elite but for everyone. I also knew this would be beneficial, as the number of people willing to create documents would increase significantly. There are many people with great knowledge, but sometimes they are limited by the way they have to translate this information. I also intend to solve this problem.
Chaotic Declaration of Intentions :-D (**)
Well, this is what we were looking for, or what we’ve achieved, or the goal, or a mix of all these things. I don’t know, these are scattered ideas that were there during its creation, and I wanted you to see them, nothing more. You can’t understand anything from this list. You have to wait until the end of the book and see what has been achieved, what hasn’t, and if we’ve gained anything... in the end.
- Valid for a very long time
- Content type for web: text/plain (UTF-8)
- No character issues: UTF-8 ALWAYS
- Expandable
- Anyone can create data types, and THERE HAS TO BE a page, unlike XML namespaces.
- Obviously, it can be cached, so it’s not always asking, but it’s something REAL.
- Easy cross-platform data transfer
- Easy content migrations
- Definition files can be created so that anyone can create types before making them public
- Define data types with URLs: just 1 namespace, and from there, everything by default
- It was made to be beautiful
- Easy to read and create by humans and machines
- Deducible content, not everything needs to be written, allowing for brevity or more detailed descriptions
- Made to be learned in a very short time, with few rules
- Type definitions (grammars) included from the design phase, for full integration
- XML refactoring
- Thanks to type definition, a super-compact format can be created, much more than XML, JSON,...
- Much easier to create by hand since you hardly ever have to worry about namespaces, as they are almost automatic by location. Namespaces like you’ve never seen before ;-)
- Very few data types (numbers without limitation, this is semantic, not a programming language)
- Easy to transform into other formats
- Ambition: to allow progress towards the semantic web, with the creation of beautiful HTML views and a strong STxT foundation.
- One of the goals is to make information open. This is also done in the design phase. By design, the content is open.
Applications, Results, and Hopes
I believe we’ve created a great language. Simple, practical, and really very useful.
I’ve written this book in this language. And I’ve never felt so comfortable. For me, it’s been a great discovery. When I use it, I think: people need to know about it. The language deserves it. It can’t be hidden. It needs to be tried. And it has to be liked. I don’t want to be the only one who has it. It wouldn’t be fair.
I would like STxT to have an honored place alongside other languages in the future, and for it to be because of the acceptance and usefulness it offered.