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

deg 1

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.

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.

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 .
    }
}

Knowledge Requirement

URI: decision:KnowledgeRequirement

Inherit from: Link

A Knowledge Requirement is mapped in DMN to a knowledge requirement link between two DMN nodes.Usage

Authority Requirement

URI: decision:AuthorityRequirement

Inherit from: Link

An Authority Requirement is mapped in DMN to an authority requirement link between two DMN nodes.

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

Scope

URI: openapi:Scope

Inherit from: Node