diff --git a/404.html b/404.html new file mode 100644 index 0000000..e166449 --- /dev/null +++ b/404.html @@ -0,0 +1,43 @@ + + +
+ + + + + +The Spacialist provides a big variety of different attribute types that can be used inside your Data Model. Named versions of those Attribute Types are used to populate the Entity Types.
In the next section we'll introduce all available attribute types, what they are used for and how the import data has to be formatted. Note the following special symbols that may be used in the formatting, which will not be typed and have only semantic meaning.
Used for single checkbox to represent the binary values true
and false
.
When importing only truthy values will be considered. When cells are empty those are considered as false
.
The values that are considered true are:
x
t
or true
w
or wahr
Represents a single date attribute, that is rendered with a default calender input field in the application.
YYYY-MM-DD
e.g. 2024-10-30
It only accepts dates in the format
Represents a date range between two dates.
YYYY-MM-DD;YYYY-MM-DD
e.g. 2024-10-25;2024-10-30
The range must have a START
and END
date with the format YYY-MM-DD
separated by a semicolon. The start date must be earlier than the end date: START;END
This attribute represents the extends of a three-dimensional object, with width, height, depth and an arbitraray unit (Note: that this is not powered by the SI-Unit system).
W;H;D;UNIT
e.g 2.5;51.2;210.3;cm
The values W
,H
and D
must be numeric values. And the UNIT
value may be any string. Those values need to be separated by a semicolon ;
.
Represents a floating point number.
N
Must be any valid floating point number representation using a .
as a decimal separator. 234
, -18
, 2.3
, 1.2e3
or 7E-10
.
A dropdown that allows selelcting from a list of concepts from the thesaurus.
CONCEPT_1;CONCEPT_2;CONCEPT_3;[...]
e.g. Red;Green;Blue
A list of concepts that is separated with a semicolon ;
. For more infos see Dropdown Single
A dropdown that is populated by thesaurus concepts and allows the selection of exactly one item.
CONCEPT_NAME
e.g. Red
The concept name must match excactly the concept that you want to import. The concept can be in any language.
A dropdown for selecting a single entity. Can be limited to a specific entity type.
ENTITY_NAME
The entity name must match the entity (case-sensitive).
A dropdown for selecting multiple entites. Can be limited to a specific type.
ENTITY_1;ENTITY_2
The entities to import. Must match the entity name (case-sensitive).
Has two parts. A time span field and a thesaurus dropdown field to specify the epoch.
START;END;EPOCH_CONCEPT
e.g. -100;30;antiquity
A start year and a end year in the gregorian calendar as integer values. Optional can be an epoch thesaurus concept. If the year is a negative number, it refers to the time before christ.
Adds a geographical attribute to the entity. Currently they cannot be linked on the main map. Each entity has a single field for geo referencing internally.
WKT_STRING
e.g. POINT(1 1)
Any valid WKT string, a good overview of these strings can be found on Wikipedia.
Can be used to collect data as Iconclass objects, as specified at https://iconclass.org/.
ICONCLASS_STRING
e.g. 22A311
Any iconclass string as defined at https://iconclass.org/.
Field for integer values
INT_VAL
e.g. 5
Can be any integer number x
that is in the valid range of PHP_INT_MIN < x <PHP_INT_MAX.
Field for a list of text values.
TEXT[;TEXT ⟳]
An arbitrary number of items separated by a semicolon.
Field that allows
X
e.g. 33
X
is an integer value in the form of: 0 <= X
<= 100.
This creates a textarea with formatted text, allowing various text decorations that are specified in the very simple Markdown Syntax.
Spacialist offers a convenient editor to edit these text with tools most know from Softwares like Word.
The unformatted Markdown text looks like this.
X
e.g.
# Heading
Some Text with **bold** or _italic_ or ~struck out~\\
X
is a text string that may contain markdown syntax.
Id to a musical peace inside the RISM catalog.
X
e.g. 600146721
X
needs to be a positive integer value.
The serial attribute counts all entities that have this attribute attached and displays a distinct index number for every one of them. To use the counter you must use the %d
marker during the creation of this attribute. This allows to create meaningful tags e.g. find_#%d
which results in find_#5
. The order of the enumeration is the time the entity was created. To ensure always n
glyphs in the counter (e.g. #003) you may use the syntax %03d
.
Warning
ThiA serial is not a persistent id, as it may change. When some entities are created at the same time or an entity type receives or loses this attribute, the enumeration will change!
Caution
Serial values cannot be imported
A numeric input associated with a si unit. The si type (e.g. mass or temperature) is fixed when creating the attribute. The si 'prefix' (e.g. kg, g, t) can be changed by the user.
VALUE;UNIT
e.g. 80;kg
VALUE
must be a numeric value. UNIT
must be a supported unit.
A span of two years (as integers).
START;END
e.g. -100;30
A start year and a end year in the gregorian calendar as integer values. If the year is a negative number, it refers to the time before christ. The start year must be before the end year.
A textbox for short, unformatted texts.
X
e.g. This is a note
X
is any string.
A textarea for longer, unformatted texts.
X
e.g. This is a note
X
is any string.
A textfield that contains a link. The field can be clicked to visit that website in a new tab.
X
e.g. https://uni-tuebingen.de
X
is any string.
A list of users.
USER_1;USER_2
e.g. john;admin
USER
must be an existing nickname of a user.
Spacialist provides basic utilities for managing literature inside the application. Allowing scientists to have a more meaningful discussion about their datapoints. This data is managed using BibTex, which is the most common standard for reference management.
Users can use their prefered literature management software when collecting the data and then import those items into Spacialist using the BibTex export of said software.
Spacialist supports the standard fields of BibTex as defined in it's Standard.
Additionally we support the following fields:
name | usage |
---|---|
Attribute New Line | Every attribute a separate line (if only one exists it can be on the same line) |
Initial Indent | ✅ |
name | usage |
---|---|
Initial Indent | ✅ |
name | usage |
---|---|
Attribute New Line | Every attribute a separate line (if only one exists it can be on the same line) |
Initial Indent | ✅ |
name | usage |
---|---|
API Style | Composition API without the 'script setup' code block. |
Component Names | Pascal Case |
name | usage |
---|---|
Controllers | Slim Controllers -> Logic should be inside models Control only handles the Requests |
Models | If we need additional functionality, it shoudl reside inside the model, not the controller, as it can be easily reused inside different controllers but still be in it's associated model. |
Component Names | Pascal Case |
<script>
+ import {reactive} from vue
+ import MyComponent from "@/components/MyComponent"
+
+ export default {
+ components: { MyComponent },
+ setup(props){
+
+ const state = reactive({
+ active: false,
+ })
+
+
+ return {
+ state
+ }
+ }
+ }
+</script>
+
This documentation is based on VuePress, a vue-powered static site generator. Here you get a brief overview on how to contribute to the growth and the maintainance of this documentation. The underlying repository is located in GitHub.
There are only a few places of relevance for the average contributor: pages, assets and the config.
All pages are written in plain Markdown. If you want to change a file, just locate it inside the /docs/ directory and add the file accordingly. There are some additional Markdown functionalities available. For a more detailed description see the VuePress Documentation.
If you want to add a page, you also need to register that file inside the sidebar section of the config file. For it to show up in the navigation.
That's basically it. Thank you for contributing.
',10)]))}const c=t(a,[["render",i],["__file","docs.html.vue"]]),d=JSON.parse('{"path":"/developer/docs.html","title":"Documentation","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Structure","slug":"structure","link":"#structure","children":[]},{"level":2,"title":"Contributing","slug":"contributing","link":"#contributing","children":[]},{"level":2,"title":"Final Notes","slug":"final-notes","link":"#final-notes","children":[]}],"git":{"updatedTime":1728571681000,"contributors":[{"name":"Severino","email":"severin.opel@hotmail.com","commits":1}]},"filePathRelative":"developer/docs.md"}');export{c as comp,d as data}; diff --git a/assets/entity-single-dropdown-CTa-nHgU.png b/assets/entity-single-dropdown-CTa-nHgU.png new file mode 100644 index 0000000..e57ca1e Binary files /dev/null and b/assets/entity-single-dropdown-CTa-nHgU.png differ diff --git a/assets/entity-type.html-DZ-CeFJc.js b/assets/entity-type.html-DZ-CeFJc.js new file mode 100644 index 0000000..503431b --- /dev/null +++ b/assets/entity-type.html-DZ-CeFJc.js @@ -0,0 +1 @@ +import{_ as a,c as o,a as e,b as t,o as i}from"./app-CBjAMpej.js";const r={};function l(s,n){return i(),o("div",null,n[0]||(n[0]=[e("h1",{id:"entity-type",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#entity-type"},[e("span",null,"Entity Type")])],-1),e("p",null,[t("An "),e("em",null,"Entity Type"),t(" is like the blueprint of one of your data objects. In the "),e("a",{href:"./data-model"},"Data Model Editor"),t(" you design multiple "),e("em",null,"Entity Types"),t(" to fit your projects needs. You should make sure to include all relevant "),e("a",{href:"./attribute"},"Attributes")],-1)]))}const u=a(r,[["render",l],["__file","entity-type.html.vue"]]),y=JSON.parse('{"path":"/user/entity-type.html","title":"Entity Type","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1727880785000,"contributors":[{"name":"Severino","email":"severin.opel@hotmail.com","commits":1}]},"filePathRelative":"user/entity-type.md"}');export{u as comp,y as data}; diff --git a/assets/entity_type.html-D7Csw2Jr.js b/assets/entity_type.html-D7Csw2Jr.js new file mode 100644 index 0000000..b1e6044 --- /dev/null +++ b/assets/entity_type.html-D7Csw2Jr.js @@ -0,0 +1 @@ +import{_ as t,c as n,d as a,o as i}from"./app-CBjAMpej.js";const s={};function r(o,e){return i(),n("div",null,e[0]||(e[0]=[a('Entity Types are the Blueprints of created Entities. They are a set of Attributes in a specific order.
Entity Types can be created or modified inside the Data Model Editor.
Entity Type Relations describe how entities can be structured inside the entity tree. An Entity of type A can only be a subentity of Entity of type B if there is an Entity Type Relation that defines the Entity Type Relation as [parent: B, child: A]
.
Copies all entity types and their related data from the regular database (DEFAULT_DB
) to a different database (TRANSFER_DB
) based on a single entity of the DEFAULT_DB
that needs to be specified using the --entity
parameter.
The program will collect all data and requires a user confirmation before changing any data inside the transfer database. The data can be evaluated in the transfer.log
that is located at storage/logs/transfer.log
.
This will transfer
php artisan app:export-types --entity=31
+
The TRANSFER_DB
need to be defined inside the .env file:
DB_TRANSFER_CONNECTION=pgsql
+DB_TRANSFER_HOST=localhost
+DB_TRANSFER_PORT=5432
+DB_TRANSFER_DATABASE=transfer-db
+DB_TRANSFER_USERNAME=spacialist_user
+DB_TRANSFER_PASSWORD=spacialist_user
+
-e, --entity
Define the entity that should be the basis for the data model export. That entity and all it's child entities will be scanned to collect all related information that will be transfered to the TRANSFER_DB
.
Caution
This will likely change in the future and is more a workaround for the time being.
When you want to base your imported entities on spatial data, that should be included on the map, then you should follow these steps:
Plugins provide users and developers the ability to have a modular system of extending the functionality of the spacialist software without the need of having all functionality in one gigantic application.
Upload > Install > Activate >< Deactivate < Uninstall < Remove
* required
Plugins can be hooked to a variety of locations of the Spacialist.
Refreshes the database and optionally runs all tests.
php artisan app:test
+
The application must have a .env.testing
file setup.
-r, --refresh
Must be set to run a migration and the DemoSeeder on the database. (Does a config:clear to prevent running the migration on the main db).
-s, --skip
Skips the testing process.
This should provide a quick and easy overview of the testing data to more easily formulate test cases. Listed are always the names of the items with their corresponding id in paranthesis. Be aware that this data may change in the future and may be outdated in the documentation. Check the links to quickly go to the master Database Seeders.
Users are defined in the Admin User Seeder and the Demo User Seeder.
id | name | nickname | password | roles | |
---|---|---|---|---|---|
1 | Admin | admin | admin@localhost | admin | administrator |
2 | John Doe | johndoe | john.doe | password | admin. & guest |
3 | Gary Guest | garyguest | gary.guest@mail.com | password_gary | guest |
Entities as defined inside EntitiesTableSeeder
id | name | type | parent entity |
---|---|---|---|
1 | Site A | Site (3) | |
2 | Befund 1 | Feature (4) | Site A (1) |
3 | Inv. 1234 | Ceramic (5) | Befund 1 (2) |
4 | Inv. 124 | Ceramic (5) | Befund 1 (2) |
5 | Inv. 31 | Stone (6) | Befund 1 (2) |
6 | Aufschluss | Lagerstaette (7) | |
7 | Site B | Site (3) | Aufschluss (7) |
8 | Fund 12 | Ceramic (5) | Aufschluss (7) |
Entity types as defined inside EntityTypesTableSeeder.php and their according relations, that are defined inside EntityTypeRelationsTableSeeder.php.
id | name | allowed children | can be top entity | allowed parents |
---|---|---|---|---|
3 | Site | 3, 4, 5, 6, 7 | x | 5 |
4 | Feature | - | 3, 5, 6, 7 | |
5 | Ceramic | 3, 4, 5, 6, 7 | 3, 6, 7 | |
6 | Stone | 4, 5, 6, 7 | 3, 5, 7 | |
7 | Lagerstaette | 4, 5, 6, 7 | x | 3, 5, 6, 7 |
Entities as defined inside EntitiesTableSeeder and their respective EntityTypes.
Site | Feature | Ceramic | Stone | Lagerstaette |
---|---|---|---|---|
Site A (1) | Befund 1 (2) | Inv. 1234 (3) | Inv. 31 (5) | Aufschluss (6) |
Site B (7) | Inv 124 (4) |