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.