{"id":17168217,"url":"https://github.com/mateimicu/semantic-faas","last_synced_at":"2026-01-18T11:42:49.766Z","repository":{"id":42637030,"uuid":"356929739","full_name":"mateimicu/semantic-faas","owner":"mateimicu","description":"Ontology and tooling for modeling Function as a Service Providers \u0026 Function's","archived":false,"fork":false,"pushed_at":"2024-04-25T06:05:23.000Z","size":7928,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-06T04:29:09.588Z","etag":null,"topics":["faas","faas-platform","ontology","owl","python","rdf","semantic-web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mateimicu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-11T17:10:42.000Z","updated_at":"2024-04-25T06:05:27.000Z","dependencies_parsed_at":"2024-12-19T12:35:27.110Z","dependency_job_id":null,"html_url":"https://github.com/mateimicu/semantic-faas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mateimicu/semantic-faas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateimicu%2Fsemantic-faas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateimicu%2Fsemantic-faas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateimicu%2Fsemantic-faas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateimicu%2Fsemantic-faas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mateimicu","download_url":"https://codeload.github.com/mateimicu/semantic-faas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateimicu%2Fsemantic-faas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["faas","faas-platform","ontology","owl","python","rdf","semantic-web"],"created_at":"2024-10-14T23:11:26.863Z","updated_at":"2026-01-18T11:42:49.739Z","avatar_url":"https://github.com/mateimicu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Function as a service Ontology\nOntology to describing Function as a Service providers and application requirements.\n\n- [Function as a service Ontology](#function-as-a-service-ontology)\n  * [Roadmap](./ROADMAP.md)\n  * [Examples](#examples)\n    + [Model AWS Lambda](#model-aws-lambda)\n    + [Model an OpenFaaS environment](#model-an-openfaas-environment)\n    + [CovidTracker Application](#covidtracker-application)\n    + [EchoServer](#echoserver)\n  * [SPARQL Examples](#sparql-examples)\n    + [Get all execution environments](#get-all-execution-environments)\n    + [Full list of SPARQL examples](./sparql)\n\n\nHere is the [Roadmap](./ROADMAP.md) for the development\n\nResources we leveraged in our ontology:\n\n* [time][time] is used to model execution times and other temporal attributes\n* [locn][locn] is used to model location attributes (for example data center location or geographical restrictions)\n* [dave][dave] is used to model relationships between metrics (the ones required by the application or provided by the Execution Environment)\n* [wd][wd]  used to fetch existing concepts (locations, programming languages, cpu architecture)\n* [wdt][wdt] used to integrate with existing properties (`part of` for example)\n* [DCMI Metadata Terms][terms], [FOAF][foaf], [DCMI Metadata elements][dc], [OWL][owl], [RDF][rdf], [RDFS][rdfs], [XSD][xsd] as the base for most relationships/meta-data and restrictions\n\n## Examples\n\n### Model AWS Lambda\n\nFor the full ontology see [this](./faas.owl).\n\nFor now the Tbox and Abox are mixed in one file, we need to split them up for clarity.\n\n```rdf\n###  http://www.semantic-faas.com/ontology#AWSLambda\n:AWSLambda rdf:type owl:NamedIndividual ,\n                    :ServerlessExecutionEnvironment ;\n           :cpuArch wd:Q272629 ;\n           :datacenter :af-south-1a ,\n                       :af-south-1b ,\n                       :af-south-1c ,\n                       :ap-east-1a ,\n                       :ap-east-1b ,\n                       :ap-east-1c ,\n                       :ap-northeast-1a ,\n                       :ap-northeast-1b ,\n                       :ap-northeast-1c ,\n                       :ap-northeast-1d ,\n                       :ap-northeast-2a ,\n                       :ap-northeast-2b ,\n                       :ap-northeast-2c ,\n                       :ap-northeast-3a ,\n                       :ap-south-1a ,\n                       :ap-south-1b ,\n                       :ap-south-1c ,\n                       :ap-southeast-1a ,\n                       :ap-southeast-1b ,\n                       :ap-southeast-1c ,\n                       :ap-southeast-2a ,\n                       :ap-southeast-2b ,\n                       :ap-southeast-2c ,\n                       :ca-central-1a ,\n                       :ca-central-1b ,\n                       :ca-central-1c ,\n                       :cn-north-1a ,\n                       :cn-north-1b ,\n                       :cn-northwest-1a ,\n                       :cn-northwest-1b ,\n                       :eu-central-1a ,\n                       :eu-central-1b ,\n                       :eu-central-1c ,\n                       :eu-north-1a ,\n                       :eu-north-1b ,\n                       :eu-north-1c ,\n                       :eu-south-1a ,\n                       :eu-south-1b ,\n                       :eu-south-1c ,\n                       :eu-west-1a ,\n                       :eu-west-1b ,\n                       :eu-west-1c ,\n                       :eu-west-2a ,\n                       :eu-west-2b ,\n                       :eu-west-2c ,\n                       :eu-west-3a ,\n                       :eu-west-3b ,\n                       :eu-west-3c ,\n                       :me-south-1a ,\n                       :me-south-1b ,\n                       :me-south-1c ,\n                       :sa-east-1a ,\n                       :sa-east-1b ,\n                       :sa-east-1c ,\n                       :us-east-1a ,\n                       :us-east-1b ,\n                       :us-east-1c ,\n                       :us-east-1d ,\n                       :us-east-1e ,\n                       :us-east-1f ,\n                       :us-east-2a ,\n                       :us-east-2b ,\n                       :us-east-2c ,\n                       :us-gov-east-1a ,\n                       :us-gov-east-1b ,\n                       :us-gov-east-1c ,\n                       :us-gov-west-1a ,\n                       :us-gov-west-1b ,\n                       :us-gov-west-1c ,\n                       :us-west-1a ,\n                       :us-west-1b ,\n                       :us-west-1c ,\n                       :us-west-2a ,\n                       :us-west-2b ,\n                       :us-west-2c ,\n                       :us-west-2d ;\n           :pricingModel :AWSLambdaPricing ;\n           :supportedPackages wd:Q15206305 ,\n                              wd:Q161053 ,\n                              wd:Q21622213 ,\n                              wd:Q251 ,\n                              wd:Q28865 ,\n                              wd:Q37227 ,\n                              wd:Q756100 ;\n           :maxAllowedRAM \"10240\"^^xsd:positiveInteger ;\n           :maxAllowedStorage \"75\"^^xsd:positiveInteger ;\n           :maxConccurency \"1000\"^^xsd:positiveInteger ;\n           :maxTimeAllowed \"900\"^^xsd:positiveInteger ;\n           :minRequiredRAM \"128\"^^xsd:positiveInteger ;\n           rdfs:comment \"https://aws.amazon.com/lambda/\"^^xsd:anyURI ;\n           rdfs:label \"AWS Lambda\"^^xsd:string .\n```\n\n### Model an OpenFaaS environment\n\n```ttl\n###  http://www.semantic-faas.com/ontology#OpenFaaS\n:OpenFaaS rdf:type owl:NamedIndividual ,\n                   :ServerlessExecutionEnvironment ;\n          :cpuArch wd:Q272629 ;\n          :datacenter :FIIDatacenter ;\n          :supportedPackages wd:Q15206305 ,\n                             wd:Q28865 ;\n          :maxAllowedRAM \"2048\"^^xsd:positiveInteger ;\n          :maxAllowedStorage \"10\"^^xsd:positiveInteger ;\n          :maxConccurency \"5\"^^xsd:positiveInteger ;\n          :maxTimeAllowed \"360\"^^xsd:positiveInteger ;\n          :minRequiredRAM \"128\"^^xsd:positiveInteger ;\n          rdfs:comment \"A custom instalation of OpenFaas datacenter on commodity hardware.\"^^xsd:string ,\n                       \"https://www.openfaas.com/\"^^xsd:anyURI ;\n          rdfs:label \"OpenFaaS\"^^xsd:string .\n```\n\n### CovidTracker Application\n\nThis application has geographical requirements but because of it's sensitivity we don't care about the cost.\nWe only impose a timeout per request of 30s as a best practice (also this is an app produced by Romania Gourmand, we don't expect it to be efficient)\n\n```rdf\n:CovidTracker rdf:type owl:NamedIndividual ,\n                       :Application ;\n              :code :CovidTrackerCode ;\n              :requirements :Max30sRuntime ,\n                            :OnlyRomaniaGeoRestriction ;\n              :maxPricePerMillionExecution \"0.0\"^^xsd:double .\n\n\n###  http://www.semantic-faas.com/ontology#CovidTrackerCode\n:CovidTrackerCode rdf:type owl:NamedIndividual ,\n                           :Code ;\n                  :programmingLanguage wd:Q28865 ;\n                  :sourceCode \"cHJpbnQoJ0NvdmlkIFRyYWNrZXInKQo=\"^^xsd:base64Binary .\n\n:OnlyRomaniaGeoRestriction rdf:type owl:NamedIndividual ,\n                                    :GeographicalRequirement ;\n                           wdt:P361 wd:Q218 .\n\n:Max30sRuntime rdf:type owl:NamedIndividual ,\n                        :ExecutionTimeRequirement ;\n               :maxTimeAllowed \"360\"^^xsd:positiveInteger .\n```\n\n### EchoServer\n\nThis application has more complex requirements:\n\n* max 10s of execution time\n* Only x86 architecture\n* Max 512MB ram\n* Also a cost requirement\n\n\n```rdf\n:EchoServer rdf:type owl:NamedIndividual ,\n                     :Application ;\n            :code :EchoServerCode ;\n            :requirements :AtLeast100Replicas ,\n                          :Cpu_x86 ,\n                          :Max10seconds ,\n                          :Max512MB ;\n            :maxPricePerMillionExecution \"75.0\"^^xsd:double .\n\n\n###  http://www.semantic-faas.com/ontology#EchoServerCode\n:EchoServerCode rdf:type owl:NamedIndividual ,\n                         :Code ;\n                :programmingLanguage wdt:Q15206305 ,\n                                     wdt:Q28865 ;\n                rdfs:comment \"Docker File with a echo server\" ;\n                foaf:homepage \"https://hub.docker.com/r/ealen/echo-server\"^^xsd:anyURI .\n\n:AtLeast100Replicas rdf:type owl:NamedIndividual ,\n                             :ConcurrencyRequirement ;\n                    :minConcurrency \"100\"^^xsd:positiveInteger .\n\n:Cpu_x86 rdf:type owl:NamedIndividual ,\n                  :CPURequirement ;\n         :cpuArch wd:Q272629 .\n\n:Max10seconds rdf:type owl:NamedIndividual ,\n                       :ExecutionTimeRequirement ;\n              :maxTimeAllowed \"10\"^^xsd:positiveInteger .\n\n:Max512MB rdf:type owl:NamedIndividual ,\n                   :MemoryRequirement ;\n          :maxAllowedRAM \"512\"^^xsd:positiveInteger .\n```\n\n\n## SPARQL Examples\n\nFor more example see [this list](./sparql)\n\n### Get all execution environments\n\n```sparql\nPREFIX rdf: \u003chttp://www.w3.org/1999/02/22-rdf-syntax-ns#\u003e\nPREFIX faas: \u003chttp://www.semantic-faas.com/ontology#\u003e\nSELECT  DISTINCT ?subject\nWHERE {\n  ?subject rdf:type owl:NamedIndividual .\n  ?subject rdf:type faas:ServerlessExecutionEnvironment .\n}\n```\n\n[terms]: http://purl.org/dc/terms/\n[foaf]: http://xmlns.com/foaf/0.1/\n[dc]: http://purl.org/dc/elements/1.1/\n[owl]: http://www.w3.org/2002/07/owl#\n[rdf]: http://www.w3.org/1999/02/22-rdf-syntax-ns#\n[time]: http://www.w3.org/2006/time#\n[locn]: http://www.w3.org/ns/locn#\n[dave]: http://theme-e.adaptcentre.ie/dave#\n[wd]: http://www.wikidata.org/entity/\n[wdt]: http://www.wikidata.org/prop/direct/\n[xsd]: http://www.w3.org/2001/XMLSchema#\n[rdfs]: http://www.w3.org/2000/01/rdf-schema#\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateimicu%2Fsemantic-faas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmateimicu%2Fsemantic-faas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateimicu%2Fsemantic-faas/lists"}