Skip to content

Commit

Permalink
Initial BORM ontology
Browse files Browse the repository at this point in the history
  • Loading branch information
MarekSuchanek committed Aug 8, 2021
0 parents commit 4f527a8
Show file tree
Hide file tree
Showing 10 changed files with 1,039 additions and 0 deletions.
Empty file added .gitignore
Empty file.
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] - 2021-07-27

### Added

- Initial BORM ontology
- README, CHANGELOG, LICENSE, CONTRIBUTING, CODEOWNER files for future development and usage
- An example based on Craft.CASE
- Example SPARQL queries

[Unreleased]: https://github.com/CCMi-FIT/OntoBORM/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @MarekSuchanek
18 changes: 18 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# OntoBORM - Contributing Guidelines

## Issues

Questions, enhancement ideas, and mistakes in the ontology, examples, or other provided content in this repository can be reported using the GitHub issues.

Please be always precise, provide explanation and suggest solutions if possible. Feel free to join discussion in other issues. Always look up for duplicate or similar issues first.

## Pull Requests

We highly appreciate any contributions in the form of pull requests. You can simply fork this repository, make the changes, and create a pull request.

Always include in the description what the pull request is about, what it improves/solves, if it is related to some issues, etc.

## Versioning

We use Semantic Versioning and keeping a Changelog. Take this into consideration while working on a pull request or using a specific version of the ontology.

427 changes: 427 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# OntoBORM

[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/CCMi-FIT/OntoBORM)](https://github.com/CCMi-FIT/OntoBORM/releases)
[![License](https://img.shields.io/github/license/CCMi-FIT/OntoBORM)](LICENSE)
[![GitHub issues](https://img.shields.io/github/issues-raw/CCMi-FIT/OntoBORM)](https://github.com/CCMi-FIT/OntoBORM/issues)

*OWL ontology for representing BORM models in RDF.*

## How to cite

*To be announced - paper being published*

## Contributing

All kinds of useful contributions are highly appreciated. For contributing, please follow [our guidelines](CONTRIBUTING.md).

## License

This work is licensed under Creative Commons BY-SA 4.0 – see [LICENSE](LICENSE) file for details.
108 changes: 108 additions & 0 deletions examples/eshop/craftcase-eshop.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Example of BORM ontology used with one of the examples
# from Craft.CASE tool: E-shop
#
@prefix borm: <https://purl.org/ontoborm#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@base <https://purl.org/ontoborm/examples/eshop#> .

## BA
:myEShop a borm:Business ;
rdfs:label "My E-Shop Example" ;
borm:hasFunction :f1, :f2, :f3, :f4 ;

:f1 a borm:ExternalFunction ;
rdfs:label "Sell Food" ;
rdfs:comment "Core business of FD company. Here is a collection of proceses performed by or performed for clients." .

:f2 a borm:ExternalFunction ;
rdfs:label "Dispatch Orders" ;
rdfs:comment "Here is collection of processes performed by FD management. This is about route planning, orders dispatching etc." .

:f3 a borm:InternalFunction ;
rdfs:label "Maintain Stock" ;
rdfs:comment "FD company internal responsibility. Here is collection of processes with no direct interface to any client." .

:f4 a borm:InternalFunction ;
rdfs:label "FD Website Maintenance" ;
rdfs:comment "User management, database actualization, SW and HW maintenance." .

:sce1 a borm:Scenario ;
borm:usesScenario :sce1 ;
borm:ofFunction :fun1 ;
rdfs:label "customer places an order for food by the website" .

:sce2 a borm:Scenario ;
borm:usesScenario :sce1 ;
borm:followedByScenario :sce3 ;
borm:ofFunction :fun1 ;
borm:hasIntitiation :init21 ;
rdfs:label "schedule delivery" .

## Participants
:parSupplier a borm:Participant, owl:Class ;
rdfs:label "Supplier" ;
rdfs:comment "Small company or individual farmer." .

:parSupermarketSupplier a borm:Participant, owl:Class ;
rdfs:label "Supermarker Supplier" ;
rdfs:subClassOf :parSupplier ;
rdfs:comment "Department of Supermarket responsible for food delivery." .

:parFDDatabase a borm:System, owl:Class ;
rdfs:label "FD Database" ;
rdfs:comment "Database of products, orders, routes, customers and suppliers." .

:parFDWebsite a borm:System, owl:Class ;
rdfs:label "FD Website" ;
rdfs:comment "Communication software enabling orders." .

:parFDWebsite a borm:System, owl:Class ;
rdfs:label "Supplier Ordering System" ;
rdfs:comment "Automatic system for requesting suppliers for food." .

:parVanDriver a borm:Person, owl:Class ;
rdfs:label "Van Driver" ;
rdfs:comment "Person who delivers food." .

:parLogisticsManager a borm:Person, owl:Class ;
rdfs:label "Logistics Manager" ;
rdfs:comment "Person responsible for the distribution of orders. This person uses information and scheduling system." .

:parCustomer a borm:Participant, owl:Class ;
rdfs:label "Customer" ;
rdfs:comment "Person who orders food or a person who wants to be a customer." .

# OR: write delivery
:ro1 a borm:Role ;
borm:startsWith :st1 ;
borm:endsWith :st4 .

:st1 a borm:StartState ;
borm:ofRole :ro1 .

:act1 a borm:Activity ;
borm:ofRole :ro1 ;
rdfs:label "opens website" .

:tr1 a borm:Transition ;
borm:sourceState :st1 ;
borm:targetState :st2 ;
borm:transitsThrough :act1 .

:df1 a borm:DataFlow ;
rdfs:label "Login data" .

:co1 a borm:SynchronousCommunication ;
borm:sourceActivity :act1 ;
borm:targetActivity :act4 ;
borm:hasInputFlow :df1 .
13 changes: 13 additions & 0 deletions examples/sparql/ask-communication.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Example of SPARQL query to check if there is communication
# from *p1* towards *p2* in any process.
#
ASK {
# PREFIXes
:p1 borm:hasRole ?r1 .
?r1 borm:hasElement ?e1 .
:p2 borm:hasRole ?r2 .
?r2 borm:hasElement ?e2 .
?c a borm:Communication .
?c borm:sourceActivity ?e1 .
?c borm:targetActivity ?e2 .
}
11 changes: 11 additions & 0 deletions examples/sparql/count-activities.sparql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Example of SPARQL query to count activities for each participant.
#
SELECT
?p, ?p_label, (count(distinct ?a) as ?cnt)
WHERE {
# PREFIXes
?a rdf:type borm:Activity .
?a borm:ofRole ?r .
?r borm:ofParticipant ?p .
?p rdfs:label ?p_label .
} ORDER BY DESC(?cnt)
Loading

0 comments on commit 4f527a8

Please sign in to comment.