SPARQL API
Introduction
This technical document presents the meta model of the Digital Enteprise Graph and how to use the API to query the graph. To access the Digital Enterprise Graph, the following requirement must be met:
-
A licensed Digital Modeling Suite with the optional Digital Enterprise Graph subscription.
-
A Client App (defined in the Digital Enterprise Suite Administration application) with the Graph read claim (graph_r) and the Repository Read claim (repo_r).
-
Knowledge of the OAuth 2.0 token exchange protocol or having obtained a bearer token from your administrator for a Client App based on your identity.
The API endpoint for the digital enterprise graph is: <instance url>/ds/query
and use the SPARQL query language: https://www.w3.org/TR/rdf-sparql-query/. This endpoint is read only.
There is a one-to-one relationship between modeling places and graphs. One graph exists for each modeling place and the URI of the graphs follow the pattern: http://trisotech.com/graph/1.0/graph#<place id>
.
To obtain the places identifiers, a call to the places public api can be made with an HTTP GET REST call on the <instance url>/publicapi/repository
endpoint.
curl -X GET "https://<instance url>/publicapi/repository" -H "Accept: application/json" -H "Authorization: Bearer <bearer token>"
An example output will yield:
{
"data": [{
"id": "051669c9-f251-4cb8-8bf5-b17445b17cab",
"name": "My Favorite Place",
...
}
]
}
In that case, the associated graph URI for My Favorite Place would be: http://trisotech.com/graph/1.0/graph#051669c9-f251-4cb8-8bf5-b17445b17cab
.
Baisc SPARQL Queries
A typical SPARQL query starts by defining prefixes that will be used in the query, we recommend defining these:
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
Throughout this document, we will reuse these namespaces to save space. |
After that, we have a select statement:
SELECT ?subject ?predicate ?object
FROM NAMED <http://trisotech.com/graph/1.0/graph#051669c9-f251-4cb8-8bf5-b17445b17cab>
WHERE { GRAPH <http://trisotech.com/graph/1.0/graph#051669c9-f251-4cb8-8bf5-b17445b17cab>
{?subject ?predicate ?object }
}
This statement returns the complete content of My Favorite Place graph which could potentially be huge. It is not advised to run this query directly. |
A more reasonable query would be to fetch all models in the graph and get their URI and Model Name:
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
SELECT ?model ?modelName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?model rdf:type graph:Model .
?model rdfs:label ?modelName .
}
}
This query can be sent to the API by posting the query plainly in the body of the SPARQL Query Endpoint. A Content-Type header need to be set to application/sparql-query
and the query needs to be authenticated with your bearer token:
curl -X POST "<instance url>/ds/query/" -H "Authorization: Bearer <token>" -H "Content-Type: application/sparql-query" -d "@query.txt"
The query would be in a text file called query.txt in this invocation.
This command can be used to run all the example queries in this document by updating the query.txt content with new queries.
This will give you the models in the graph in a JSON format:
{
"head": {
"vars": [ "uri" , "name" ]
} ,
"results": {
"bindings": [
{
"uri": { "type": "uri" , "value": "http://www.trisotech.com/definitions/_efb6158b-ed24-4918-83a4-7ef0d1b7c000" } ,
"name": { "type": "literal" , "value": "A model stored in my favorite place" }
} ,
{
"uri": { "type": "uri" , "value": "http://www.trisotech.com/definitions/_d60e7795-73d2-4c83-8a72-adb46ae62f34" } ,
"name": { "type": "literal" , "value": "A second model stored in my favorite place" }
}
]
}
}
Digital Enterprise Graph Meta-Model
The Digital Enterprise Graph contains elements at the abstract level and at the domain specific level.
The Abstract Model contains global concepts such as Activities, Actors, Entities, Events, Goals, Systems, Capabilities, Terms, Annotations.
Each of our modeler has a Domain Specific Model that extends theses abstract concepts into domain-specific elements. As an example, the Decision Modeler generates specialized Acitvities such as Decisions, Business Knowledge Models and Decision Services.
The graph can be queried using either the Abstract Model to generally access concepts or the Domain Specific Model to obtain detailed concepts.
Abstract Model
Node
Nodes are elements that define concepts in the graph.
Attribute | Value |
---|---|
rdfs:label |
Name of the node |
skos:definition |
Description of the node. This most likely contains HTML content. |
graphrel:notes |
Free text representing notes about this node. This most likely contains HTML content. |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:semantic |
n |
This node has a semantic relationship with the target node. |
graphrel:copyOf |
1 |
This node is a copy of the target node. |
graphrel:customAttribute |
n |
This node has the target custom attributes of type CustomAttribute. |
graphrel:attachment |
n |
This node has the target attachments of type Attachment. |
graphrel:tag |
n |
This node is tagged with the target tags of type Tag. |
graphrel:childOf |
n |
This node is the child of that Node. |
graphrel:owner |
1 |
This node is defined in that Model. |
graphrel:use |
n |
This node uses the target Term. |
Link
Links are elements that connect two concepts together.
Attribute | Value |
---|---|
rdfs:label |
Name of the link. |
skos:definition |
Definition of the link.. This most likely contains HTML content. |
graphtel:notes |
Free text representing notes about this link. This most likely contains HTML content. |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:source |
1 |
This link source Node. |
graphrel:target |
1 |
This link taget Node. |
graphrel:semantic |
n |
This link has a semantic relationship with the target node. |
graphrel:copyOf |
1 |
This link is a copy of the target node. |
graphrel:customAttribute |
n |
This link has the target custom attributes of type CustomAttribute. |
graphrel:attachment |
n |
This link has the target attachments of type Attachment. |
graphrel:tag |
n |
This link is tagged with the target tags of type Tag. |
Tag
URI: graph:Tag
A Tag is a word or phrase that freely describes an element using a user-defined taxonomy.
Attribute | Value |
---|---|
rdfs:label |
Name of the Tag. |
Usage Example: Query all tags used in a graph
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
SELECT DISTINCT ?name
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?tag rdf:type graph:Tag .
?tag rdfs:label ?name .
}
}
Custom Attribute
URI: graph:CustomAttribute
A Custom Attribute is an attribute defined in a user-defined taxonomy with its value.
Attribute | Value |
---|---|
graphrel:key |
Name of the Custom Attribute. |
graphrel:value |
Value of the Custom Attribute. |
Usage Example: Query all elements that match a defined custom attribute key and value (Match Key / Match Value)
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?node ?name
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?customAttr rdf:type graph:CustomAttribute .
?customAttr graphrel:key "Match Key" .
?customAttr graphrel:value "Match Value" .
?node graphrel:customAttribute ?customAttr .
?node rdfs:label ?name .
}
}
Attachment
URI: graph:Attachment
An attachment defines an external document attached to a node.
Attribute | Value |
---|---|
rdfs:label |
Name of document. |
graphrel:url |
URL of the document. |
Usage Example: Query all attachments pointing to our SharePoint site
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?name ?url
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?attachment rdf:type graph:Attachment .
?attachment graphrel:url ?url .
FILTER regex(?url, "sharepoint.com", "i") .
?attachment rdfs:label ?name .
}
}
Model
URI: graph:Model
Inherit from: Node
An model is a Node that represents a model containing nodes and links grouped in a logical fashion.
Attribute | Value |
---|---|
graphrel:path |
The path into which this model is saved in the place. |
graphrel:version |
If the latest version of the model is versioned, the value of this attribute will reflect the version number. |
graphrel:state |
If the latest version of the model is versioned, the value of this attribute will reflect the current state: Draft, Pending Approval or Published. |
graphrel:updater |
The email address of the person who last modified this model. |
graphrel:updated |
The ISO-8601 date and time representation on when the model was last modified. |
Usage Example: List all models in a place updated by a specific user (someone@cie.com)
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?model ?name
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?model rdf:type graph:Model .
?model graphrel:updater "someone@cie.com" .
?model rdfs:label ?name .
}
}
Activity
URI: graph:Activity
Inherit from: Node
An Activity is a Node that represents how things are getting done.
Attribute | Value |
---|---|
graphrel:processingTime |
The typical time required to perform the activity. The value is expressed as and ISO-8601 Duration. |
graphrel:lagTime |
The typical time required after the previous activity completed before this activity starts. The value is expressed as and ISO-8601 Duration. |
graphrel:fixedCost |
Fixed cost to complete the activity. |
graphrel:variableCost |
Variable cost to complete the activity. |
graphrel:yield |
Percentage (expressed in percentile) that this activity does not require rework. |
graphrel:value |
One of : graph:unspecified, graph:valueAdding, graph:valueEnabling, graph:defect, graph:overProduction, graph:waiting, graph:nonProductive, graph:transportation, graph:interruption, graph:motion, graph:extraProcessing, |
graphrel:discretionary |
If this activity should be completed at the discretion of the performer. Defaults to false. |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:parameter |
n |
The activity input parameters if any are defined of type Parameter. |
graphrel:outcome |
n |
The activity output parameters if any are defined of type Outcome. |
graphrel:who |
n |
This activity involves that Actor. |
graphrel:responsible |
n |
This activity has that Actor as responsible. |
graphrel:accountable |
n |
This activity has that Actor as accountable. |
graphrel:consulted |
n |
This activity has that Actor as consulted. |
graphrel:informed |
n |
This activity has that Actor as informed. |
graphrel:what |
n |
This activity uses that Entity. |
graphrel:input |
n |
This activity has that Entity as an input. |
graphrel:output |
n |
This activity has that Entity as an output. |
graphrel:where |
n |
This activity is performed on that System. |
graphrel:when |
n |
This activity involves that Event. |
graphrel:trigger |
n |
This activity is triggered by that Event. |
graphrel:result |
n |
This activity emmit that Event. |
graphrel:why |
n |
This activity involves that Goal. |
graphrel:achieve |
n |
This activity achieves that Goal. |
graphrel:maintain |
n |
This activity maintains that Goal. |
graphrel:invoke |
1 |
This activity invokes this Activity. An activity can either have an implementation or an invoke relationship. |
graphrel:implementation |
1 |
This activity is implemented in this Implementation way. An activity can either have an implementation or an invoke relationship. |
Entity
URI: graph:Entity
Inherit from: Node
An Entity is a Node that represents what is used to get something done.
Attribute | Value |
---|---|
graphrel:typeRef |
If defined, the data type of this entity defined as an ItemDefinition. |
graphrel:isCollection |
If a data type is defined, this attribute could be true if this entity represents a collection of this type. Defaults to false. |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:who |
n |
This entity involves that Actor. |
graphrel:responsible |
n |
This entity has that Actor as responsible. |
graphrel:accountable |
n |
This entity has that Actor as accountable. |
graphrel:consulted |
n |
This entity has that Actor as consulted. |
graphrel:informed |
n |
This activity has that Actor as informed. |
Usage Example: Find all entities defined with a string data type
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?entity ?type ?collection
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?entity rdf:type graph:Entity .
?entity graphrel:typeRef "http://www.trisotech.com/graph/1.0/feel#string" .
OPTIONAL {?entity graphrel:isCollection ?collection} .
}
}
Item Component
URI: graph:ItemComponent
Inherit from: Node
An Item Component represents a reusable subcomponent of an Item Definition.
Attribute | Value |
---|---|
graphrel:typeRef |
If defined, the base data type of this component defined as an ItemDefinition. |
graphrel:isCollection |
If a base type is defined, this attribute could be true if this entity represents a collection of this type. Defaults to false. |
graphrel:constraint |
If defined, a constraint further restring the possible values of this Item Component. Target is a Constraint. |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:components |
n |
Ordered list of subcomponents defined as Item Component. |
System Data Types
Data Type | URI |
---|---|
Text |
|
Number |
|
Boolean |
|
Time |
|
Date |
|
Date and time |
|
File |
|
Days and time duration |
|
Years and months duration |
|
Collection of Text |
|
Collection of Number |
|
Collection of Boolean |
|
Collection of Time |
|
Collection of Date |
|
Collection of Date and time |
http://www.trisotech.com/graph/1.0/feel#collectionOfDateTime |
Collection of Days and time duration |
http://www.trisotech.com/graph/1.0/feel#collectionOfDayTimeDuration |
Collection of Years and months duration |
http://www.trisotech.com/graph/1.0/feel#collectionOfYearMonthDuration |
Collection of File |
|
Any |
Item Definition
URI: graph:ItemDefinition
Inherit from: Item Component
An Item Definition reprensents a data type.
Usage Example: List all the item definitions in a graph
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?itemDef ?name ?baseType ?collection ( group_concat(?enumerationVal;separator=", ") as ?enumeration) ?min ?max ?minIncluded ?maxIncluded ?expression ( group_concat(?component;separator=", ") as ?components)
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?itemDef rdf:type graph:ItemDefinition .
?itemDef rdfs:label ?name .
OPTIONAL {?itemDef graphrel:typeRef ?baseType .}
OPTIONAL {?itemDef graphrel:isCollection ?collection} .
OPTIONAL {
?itemDef graphrel:constraint ?constraint .
OPTIONAL {
?constraint rdf:type graph:Enumeration .
?constraint graphrel:items ?enumerationVal .
} .
OPTIONAL {
?constraint rdf:type graph:Expression .
?constraint rdfs:label ?expression
} .
OPTIONAL {
?constraint rdf:type graph:Simple .
OPTIONAL { ?constraint graphrel:min ?min } .
OPTIONAL { ?constraint graphrel:max ?max } .
OPTIONAL { ?constraint graphrel:minIncluded ?minIncluded } .
OPTIONAL { ?constraint graphrel:maxIncluded ?maxIncluded } .
} .
} .
OPTIONAL {
?itemDef graphrel:components/rdf:rest*/rdf:first ?component .
} .
}
}
GROUP BY ?itemDef ?name ?baseType ?collection ?min ?max ?minIncluded ?maxIncluded ?expression
Actor
URI: graph:Actor
Inherit from: Node
An Actor is a Node that represents who gets things done.
Usage Example: Find all activities where a given actor is involved in (regardless of its role)
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?activityName ?modelName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?activity graphrel:who <[Actor URI]> .
?activity rdf:type graph:Activity .
?activity rdfs:label ?activityName .
?activity graphrel:owner ?model .
?model rdfs:label ?modelName .
}
}
Goal
URI: graph:Goal
Inherit from: Node
A Goal is a Node that represents why things are getting done.
Relationship | Multiplicity | Value |
---|---|---|
graphrel:who |
n |
This Goal involves that Actor. |
graphrel:responsible |
n |
This Goal has that Actor as responsible. |
graphrel:accountable |
n |
This Goal has that Actor as accountable. |
graphrel:consulted |
n |
This Goal has that Actor as consulted. |
graphrel:informed |
n |
This Goal has that Actor as informed. |
System
URI: graph:System
Inherit from: Node
A system is a Node that represents where things are getting done.
Relationship | Multiplicity | Value |
---|---|---|
graphrel:what |
n |
This System uses that Entity. |
graphrel:input |
n |
This System has that Entity as an input. |
graphrel:output |
n |
This System has that Entity as an output. |
Usage Example: Find all systems defined in a graph
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT DISTINCT ?systemName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?system rdf:type graph:System .
?system rdfs:label ?systemName .
}
}
Event
URI: graph:Event
Inherit from: Node
An Event is a Node that represents when things are getting done.
Usage Example: Find all models containing an event with a specified name (My Event)
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT DISTINCT ?modelName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?event rdf:type graph:Event .
?event rdfs:label "My Event" .
?event graphrel:owner ?model .
?model rdfs:label ?modelName .
}
}
Capability
URI: graph:Capbility
Inherit from: Node
A Capability is a Node that represents what an organization is capable of acomplishing.
Relationship | Multiplicity | Value |
---|---|---|
graphrel:enable |
n |
This Capability is enabled by that Activity, Actor, Entity or System. |
Usage Example: Find all capabilities that are enabled by a given Actor role (Marketing)
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT DISTINCT ?capabilityName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?capability rdf:type graph:Capability .
?capability graphrel:enable ?role .
?role rdfs:label "Marketing" .
?capability rdfs:label ?capabilityName
}
}
Annotation
URI: graph:Annotation
Inherit from: Node
An Annotation is a Node that represents documentation.
Usage Example: Get the description and notes associated to an Annotation ([Annotation URI])
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
SELECT ?definition ?note
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
OPTIONAL {<[Annotation URI]> skos:definition ?definition} .
OPTIONAL {<[Annotation URI]> skos:graphrel ?note} .
}
}
Knowledge Entity Modeler Domain Specific
Knowledge Entity Modeler is defined in the namespace: http://www.trisotech.com/graph/1.0/businessentity/element#
in this document references with the prefix be.
Term
URI: graph:Term
Inherit from: Node
A Term is a Node that represents a word or word group with a defined meaning.
Attribute | Value |
---|---|
be:example |
Usage examples of this term. This most likely contains HTML content. |
skos:altLabel |
Alternative names for a term (this attribute can be present multiple times) |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:typeRef |
1 |
If defined, the data type of this term defined as an ItemDefinition. |
be:source |
n |
This Term comes from this Source. |
Usage Example: Get all nodes that use a term
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graph:<http://www.trisotech.com/graph/1.0/element#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?nodeName ?termName
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?node graphrel:use ?term .
?term rdf:type graph:Term .
?node rdfs:label ?nodeName .
?term rdfs:label ?termName .
}
}
Source
URI: be:Source
Inherit from: Node
A Source is a Node that represents the source of a Term.
Attribute | Value |
---|---|
graphrel:url |
Source URL. |
Usage Example: Get all sources of a term (TERM URI)
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
PREFIX be:<http://www.trisotech.com/graph/1.0/businessentity/element#>
SELECT ?label ?url
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
<TERM URI> be:source ?source .
?source rdfs:label ?label .
?source graphrel:url ?url .
}
}
Business Rule
URI: be:BusinessRule Inherit from: Annotation
A Busines Rule is an annotation that assembles terms in rules. Business rules parent is either a Business Rule Category or a Business Rule.
Attribute | Value |
---|---|
graphrel:labelPrefix |
The prefix of the label corresponding to its order in the category/business rule. Ex: 7, 2.3.4, 6.5 |
Usage Example: Find all business nodes reusing terms
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
PREFIX be:<http://www.trisotech.com/graph/1.0/businessentity/element#>
SELECT ?prefix ?label
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?businessRule graphrel:owner <MODEL URI> .
?businessRule rdf:type be:BusinessRule .
?businessRule rdfs:label ?label .
?businessRule graphrel:labelPrefix ?prefix .
}
}
Business Rule Category
URI: be:BusinessRuleCategory
Inherit from: Annotation
A Busines Rule Category is the parent of business rules.
Usage Example: Find all first level Business Rules in a category (CATEGORY URI)
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
SELECT ?prefix ?label
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?businessRule graphrel:childOf <CATEGORY URI>.
?businessRule rdfs:label ?label .
?businessRule graphrel:labelPrefix ?prefix .
}
}
Decision Modeler Domain Specific Model
Decision Entity Modeler is defined in the namespace: http://www.trisotech.com/graph/1.0/decision/element#
in this document references with the prefix decision.
DMNModel
URI: dmn:DMNModel
Inherit from: Model
Relationship | Multiplicity | Value |
---|---|---|
dmn:include |
n |
DMNModel included by this model. |
Usage Example: List all model inclusions in a graph
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX dmn:<http://www.trisotech.com/graph/1.0/decision/element#>
SELECT ?modelName ?includedName
FROM NAMED < GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?model dmn:include $included .
?model rdfs:label ?modelName .
?included rdfs:label ?includedName .
}
}
Decision
URI: decision:Decision
Inherit from: Activity
A Decision is mapped in DMN to a decision element.
Attribute | Value |
---|---|
decision:question |
The question to which this decision answers. This most likely contains HTML content. |
decision:question |
The possible answers to that decision. This most likely contains HTML content. |
Relationship | Multiplicity | Value |
---|---|---|
decision:decisionMaker |
n |
This Decision is made by that Actor. |
decision:owner |
n |
This Decision is owned by that Actor. |
Usage Example: Lookup all decision makers and the decision that they make in the graph
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX decision:<http://www.trisotech.com/graph/1.0/decision/element#>
SELECT ?decisionName ?decisionMakerLabel
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?decision rdf:type decision:Decision .
?decision rdfs:label ?decisionName .
?decision decision:decisionMaker ?decisionMaker .
?decisionMaker rdfs:label ?decisionMakerLabel .
}
}
Business Knowledge Model
URI: decision:BusinessKnowledgeModel
Inherit from: Activity
A Business Knowledge Model is mapped in DMN to a business knowledge model (BKM).
Decision Service
URI: decision:DecisionService
Inherit from: Activity
A Decision Service is mapped in DMN to a decision service.
Input Data
URI: decision:InputData
Inherit from: Entity
An Input Data is mapped in DMN to an input data.
Knowledge Source
URI: decision:KnowledgeSource
Inherit from: Annotation
A Knowledge Source is mapped in DMN to a knowledge source.
Attribute | Value |
---|---|
decision:type |
The type of knowledge source. |
decision:locationURI |
The location URI of this Knowledge Source. |
Relationship | Multiplicity | Value |
---|---|---|
decision:owner |
1 |
This Knowledge Source is owned by that Actor. |
Information Requirement
URI: decision:InformationRequirement
Inherit from: Link
An Information Requirement is mapped in DMN to an information requirement link between two DMN nodes.
Usage Example:
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX graphrel:<http://www.trisotech.com/graph/1.0/elementRel#>
PREFIX decision:<http://www.trisotech.com/graph/1.0/decision/element#>
SELECT ?requirement
FROM NAMED <GRAPH URI>
WHERE {
GRAPH <GRAPH URI>
{
?link graphrel:target <http://www.trisotech.com/definitions/_f37fc431-9602-49bc-98f6-c53015a09248#_cd471ea3-1942-4b45-81f6-4c74cce80e53> .
?link rdf:type decision:InformationRequirement .
?link graphrel:source ?source .
?source rdfs:label ?requirement .
}
}
OpenAPI Implementation
OpenAPI is defined in the namespace: http://www.trisotech.com/openapi#
in this document references with the prefix openapi.
This implementation is modeled after the OpenAPI 3.1 specification (https://swagger.io/specification/
).
Interface
URI: openapi:Interface
Inherit from: Node
Attribute | Value |
---|---|
openapi:server |
A URL to the target host |
openapi:allowUrlOverride |
A boolean for this interface parameter |
openapi:allowProvidedIdentity |
A boolean for this interface parameter |
graphrel:icon |
An string describing an svg of the icon |
Relationship | Multiplicity | Value |
---|---|---|
openapi:info |
1 |
This OpenAPI contains that Info |
openapi:security |
1 |
This OpenAPI is secured by that Security |
openapi:operation |
n |
This OpenAPI can make that Operation |
Info
URI: openapi:Info
Inherit from: Implementation
Attribute | Value |
---|---|
openapi:version |
The version of the OpenAPI document |
openapi:summary |
A short summary of the API |
openapi:termsOfService |
A URL to the Terms of Service for the API |
openapi:license |
The license name used for the API |
Operation
URI: openapi:Operation
Inherit from: Implementation
Attribute | Value |
---|---|
openapi:path |
A relative path to an individual endpoint |
openapi:operationMethod |
The HTTP method of this Operation (GET, POST, …) |
Relationship | Multiplicity | Value |
---|---|---|
openapi:interface |
1 |
This Operation is part of that Interface |
openapi:parameter |
n |
This Operation contains that OperationParameter |
openapi:body |
n |
This Operation has that Body in its body |
openapi:response |
n |
This Operation can receive that Response |
OperationParameter
URI: openapi:OperationParameter
Inherit from: Node
Attribute | Value |
---|---|
openapi:in |
Location of the parameter in the operation ("query", "header", "path" or "cookie") |
openapi:required |
Determines whether this parameter is mandatory |
openapi:style |
Describes how the parameter value will be serialized depending on the type of the parameter value |
openapi:explode |
When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map |
openapi:allowReserved |
Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding |
openapi:defaultValue |
The default value of this parameter |
openapi:useRichTextEditor |
If the parameter is of type text, whether to use the rich text editor |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:typeRef |
1 |
The data type of this OperationParameter defined as an ItemDefinition. |
Body
URI: openapi:Body
Inherit from: Node
Attribute | Value |
---|---|
openapi:required |
Determines whether this parameter is mandatory |
openapi:encoding |
Describes how the parameter value will be serialized |
openapi:defaultValue |
The default value of this parameter |
openapi:useRichTextEditor |
If the parameter is of type text, whether to use the rich text editor |
Relationship | Multiplicity | Value |
---|---|---|
graphrel:typeRef |
1 |
The data type of this Body defined as an ItemDefinition. |
Response
URI: openapi:Response
Inherit from: Node
Attribute | Value |
---|---|
openapi:statusCode |
HTTP status code of this Response |
Relationship | Multiplicity | Value |
---|---|---|
openapi:header |
n |
This Response contains that OperationParameter |
openapi:body |
n |
This Response has that Body in its body |
Security
URI: openapi:Security
Inherit from: Node
HttpSecurity
URI: openapi:HttpSecurity
Inherit from: Security
Attribute | Value |
---|---|
openapi:bearerFormat |
A hint to the client to identify how the bearer token is formatted |
openapi:scheme |
The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235 |
ApiKeySecurity
URI: openapi:ApiKeySecurity
Inherit from: Security
Attribute | Value |
---|---|
openapi:name |
The name of the header, query or cookie parameter to be used |
openapi:in |
The location of the API key ("query", "header" or "cookie") |
OpenIdConnectSecurity
URI: openapi:OpenIdConnectSecurity
Inherit from: Security
Attribute | Value |
---|---|
openapi:openIdConnectUrl |
OpenId Connect URL to discover OAuth2 configuration values |
OAuth2Security
URI: openapi:OAuth2Security
Inherit from: Security
Relationship | Multiplicity | Value |
---|---|---|
openapi:implicitFlow |
1 |
The configuration for the OAuth Implicit flow is defined by that Flow |
openapi:passwordFlow |
1 |
The configuration for the OAuth Resource Owner Password flow is defined by that Flow |
openapi:clientCredentialsFlow |
1 |
The configuration for the OAuth Client Credentials flow is defined by that Flow |
openapi:authorizationCodeFlow |
1 |
The configuration for the OAuth Authorization Code flow is defined by that Flow |
Flow
URI: openapi:Flow
Inherit from: Node
Attribute | Value |
---|---|
openapi:authorizationUrl |
The authorization URL to be used for this flow |
openapi:tokenUrl |
The token URL to be used for this flow |
openapi:refreshUrl |
The URL to be used for obtaining refresh tokens |
Relationship | Multiplicity | Value |
---|---|---|
openapi:scope |
n |
That Scope is available in this FLow |