diff --git a/website/source/conf.py b/website/source/conf.py index ab700e95..d590b2e8 100644 --- a/website/source/conf.py +++ b/website/source/conf.py @@ -19,7 +19,7 @@ project = 'The SMOL Language' html_short_title = "SMOL" -copyright = '2022, Eduard Kamburjan, Rudolf Schlatte' +copyright = '2022-2024, Eduard Kamburjan, Rudolf Schlatte' author = 'Eduard Kamburjan, Rudolf Schlatte' @@ -51,6 +51,7 @@ "source_url": 'https://github.com/smolang/SemanticObjects/' } + # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". diff --git a/website/source/getting-started.rst b/website/source/getting-started.rst index 34bc3d0e..32e7a461 100644 --- a/website/source/getting-started.rst +++ b/website/source/getting-started.rst @@ -102,22 +102,24 @@ SMOL Command-Line Parameters :: - Options: - -e, -l, --execute, --load - -b, --back PATH path to a file containing OWL class - definitions as background knowledge. - -d, --domain TEXT prefix for domain:. (default - https://github.com/Edkamb/SemanticObjects/ontologies/default#) - -i, --input PATH path to a .smol file which is loaded on startup. - -r, --replay PATH path to a file containing a series of shell - commands. - -o, --outdir PATH path to a directory used to create data - files. - -v, --verbose Verbose output. - -m, --materialize Materialize triples and dump to file. - -p, --prefixes VALUE Extra prefixes, given as a list PREFIX=URI - -h, --help Show this message and exit - + Options: + -e, -l, --execute, --load + -j, --jenaReasoner TEXT Set value of the internally used reasoner to + 'off', 'rdfs', or 'owl' (default -> 'owl') + -s, --sparqlEndpoint TEXT url for SPARQL endpoint + -b, --back PATH path to a file containing OWL class definitions + as background knowledge. + -d, --domain TEXT prefix for domain:. + -i, --input PATH path to a .smol file which is loaded on startup. + -r, --replay PATH path to a file containing a series of REPL + commands. + -o, --outdir PATH path to a directory used to create data files. + -v, --verbose Verbose output. + -m, --materialize Materialize triples and dump to file. + -q, --useQueryType Activates the type checker for access + -p, --prefixes VALUE Extra prefixes, given as a list -p PREFIX1=URI1 + -p PREFIX2=URI2 + -h, --help Show this message and exit .. _repl: diff --git a/website/source/images/SMOL_Circular_Small.png b/website/source/images/SMOL_Circular_Small.png new file mode 100644 index 00000000..ad666091 Binary files /dev/null and b/website/source/images/SMOL_Circular_Small.png differ diff --git a/website/source/images/SMOL_Logo_transparent.png b/website/source/images/SMOL_Logo_transparent.png new file mode 100644 index 00000000..916f8bb2 Binary files /dev/null and b/website/source/images/SMOL_Logo_transparent.png differ diff --git a/website/source/index.rst b/website/source/index.rst index 0d36e7ef..50c2bc94 100644 --- a/website/source/index.rst +++ b/website/source/index.rst @@ -2,9 +2,10 @@ sphinx-quickstart on Wed Mar 2 16:05:25 2022. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. +Semantic Micro Object Language +============================== -The SMOL Language -***************** +.. figure:: /images/SMOL_Logo_transparent.png SMOL is an imperative, object-oriented research language. SMOL integrates semantic web technologies and numerical simulation blocks, and can serve as a diff --git a/website/source/language/datatypes.rst b/website/source/language/datatypes.rst index e668eab2..486ba80e 100644 --- a/website/source/language/datatypes.rst +++ b/website/source/language/datatypes.rst @@ -80,3 +80,5 @@ built incrementally. List l1 = new List(5, null); List l2 = new List(3, l1); +.. NOTE:: + Lists are ``hidden`` by default and not lifted. If you need to lift a list, use ``ExplList``. diff --git a/website/source/language/expressions.rst b/website/source/language/expressions.rst index d17daf96..2378cf24 100644 --- a/website/source/language/expressions.rst +++ b/website/source/language/expressions.rst @@ -9,7 +9,7 @@ the language elements that can occur on the right hand side of an assignment (ev Expressions are divided syntactially into two categories: *Simple Expressions*, which can be nested, and *Top Level Expressions*, which cannot be sub-expressions of other expressions. This slight notational inconvenience -makes it easier to develop static analysis techniques and tools for SMOL. +makes it easier to develop tools for SMOL. :: @@ -54,11 +54,15 @@ Unary and Binary Operator Expressions ------------------------------------- SMOL has a range of unary and binary operators working on pre-defined -datatypes. +datatypes. Additionally, there are conversion operators between strings, integers, and doubles. :: - OperatorExpression ::= UnaryOperatorExpression | BinaryOperatorExpression + OperatorExpression ::= UnaryOperatorExpression | ConversionExpression | BinaryOperatorExpression + + ConversionExpression ::= Conversion '(' Expression ')' + + Conversion ::= 'intToString' | 'doubleToString' | 'intToDouble' | 'doubleToInt' UnaryOperatorExpression ::= UnaryOperator Expression @@ -66,7 +70,7 @@ datatypes. BinaryOperatorExpression ::= Expression BinaryOperator Expression - BinaryOperator ::= '/' | '%' | '*' | '+' | '-' | '==' | '!=' | '>=' | '<=' | '>' | '<' | '&&' | '||' + BinaryOperator ::= '/' | '%' | '*' | '+' | '-' | '==' | '!=' | '>=' | '<=' | '>' | '<' | '&&' | '||' | '++' *Example:* @@ -144,6 +148,10 @@ to high precedence. - division - numeric - numeric + * - ``e1 ++ e2`` + - concatenation + - String + - String Semantics of Comparison Operators ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -212,7 +220,7 @@ The Field Expression -------------------- Field expressions evaluate to the current content of the named field in the -given object. The object can be ``this`` or another object. +given object. The object can be ``this``, another object, or an FMO. Note that fields of the current object cannot be accessed without the ``this.`` prefix. @@ -229,22 +237,6 @@ Note that fields of the current object cannot be accessed without the ``this.`` this.x an_object.a_long_field_name -The FMU Field Expression ------------------------- - -This expression reads the current value of the named out port of the given -:term:`FMU`. - -:: - - FmuFieldExpression ::= SimpleExpression '.' 'port' '(' StringLiteral ')' - -*Example:* - -.. code-block:: java - - my_fmu.port("outport") - The New Expression ------------------ @@ -252,7 +244,7 @@ The New expression creates a new object of the given class. Values for the class's constructor parameters are given as simple expressions inside parentheses. All generic type parameters of a class must be instantiated. -The optional ``models`` clause overrides any ``domain`` modifier or ``models`` +The optional ``models`` clause adds to an eventual ``models`` clause of the new object's class declarations (see :ref:`class_declaration_ref`). @@ -264,7 +256,7 @@ clause of the new object's class declarations (see .. code-block:: java - new Person("Name", 35) models "a :person" + new Person("Name", 35) models "a :person." The New FMU Expression ----------------------- diff --git a/website/source/publications.rst b/website/source/publications.rst index abd5c593..7c33a291 100644 --- a/website/source/publications.rst +++ b/website/source/publications.rst @@ -6,13 +6,13 @@ Core Publications - | Eduard Kamburjan, Vidar Norstein Klungre, Rudolf Schlatte, Einar Broch Johnsen, Martin Giese | *Programming and Debugging with Semantically Lifted States.* - | ESWC 2021: 126-142 + | ESWC 2021 DOI: `10.1007/978-3-030-77385-4_8 `_ - | Eduard Kamburjan, Einar Broch Johnsen. | *Knowledge Structures Over Simulation Units.* - | ANNSIM 2022: 78-89 + | ANNSIM 2022 DOI: `10.23919/ANNSIM55834.2022.9859490 `_ @@ -22,7 +22,7 @@ Extensions - | Eduard Kamburjan, Vidar Norstein Klungre, Martin Giese. | *Never Mind the Semantic Gap: Modular, Lazy and Safe Loading of RDF Data.* - | ESWC 2022: 200-216 + | ESWC 2022 DOI: `10.1007/978-3-031-06981-9_12 `_ @@ -38,12 +38,26 @@ Digital Twins - | Eduard Kamburjan, Crystal Chang Din, Rudolf Schlatte, Silvia Lizeth Tapia Tarifa, Einar Broch Johnsen. | *Twinning-by-Construction: Ensuring Correctness for Self-adaptive Digital Twins.* - | ISoLA (1) 2022: 188-204 + | ISoLA (1) 2022 DOI: `10.1007/978-3-031-19849-6_12 `_ - | Eduard Kamburjan, Vidar Norstein Klungre, Rudolf Schlatte, Silvia Lizeth Tapia Tarifa, David Cameron, Einar Broch Johnsen. | *Digital Twin Reconfiguration Using Asset Models.* - | ISoLA (4) 2022: 71-88 + | ISoLA (4) 2022 DOI: `10.1007/978-3-031-19762-8_6 `_ + + +Published Case Studies +---------------------- + +- | Yuanwei Qu, Eduard Kamburjan, Anita Tarabi, Martin Giese. + | *Semantically triggered qualitative simulation of a geological process.* + | Applied Computing and Geosciences. Vol. 21. 2024 + + DOI: `10.1016/j.acags.2023.100152 `_ + +- | Eduard Kamburjan, Riccardo Sieve, Chinmayi Prabhu Baramashetru, Einar Broch Johnsen, Marco Amato, Gianluca Barmina, Eduard Occhipinti + | *GreenhouseDT: An Exemplar for Digital Twins.* + | SEAMS 2024. To appear