OPAL, Graph, and File Access Authorization, Groups and Restrictions Definitions
This document describes the rules, groups and restrictions required for the OPAL and graph access offers.
Offers for sessions instantiated via the /chat/api endpoints.
OPAL Users identified using a NetID based Identifier who have purchased the Data Twingler Assistant offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DataTwinglerSpecificModuleEntryLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DataTwinglerSpecificModulePlusOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DataTwinglerSpecificModuleProOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DataTwinglerSpecificModuleMaxOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:SupportAssistantSpecificModuleEntryLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:SupportAssistantSpecificModulePlusOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:SupportAssistantSpecificModuleProOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
OPAL Users identified using a NetID based Identifier who have purchased access to the Support Assistant chat offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:SupportAssistantSpecificModuleMaxOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
OPAL Users identified using a NetID based Identifier who have purchased the Entry level offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:BringYourOwnKeyEntryLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } }
OPAL Users identified using a NetID based Identifier who have purchased the Plus level offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:BringYourOwnKeyPlusOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
OPAL Users identified using a NetID based Identifier who have purchased the Pro level offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:BringYourOwnKeyProOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
OPAL Users identified using a NetID based Identifier who have purchased the Max level offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:MaxOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
Users are limited to a maximum of 20 prompts within a single session
The total token usage for an entire session is capped at 4000 tokens
Users are limited to a maximum of 200 prompts within a single session
The total token usage for an entire session is capped at 40000 tokens
Users are limited to a maximum of 400 prompts within a single session
The total token usage for an entire session is capped at 200k tokens
Users are limited to a maximum of 1k prompts within a single session
The total token usage for an entire session is capped at 1M tokens
OPAL Sessions that use the Data Twingler module
OPAL Sessions that use the Support Assistant
Entry Level assistant access to the tools
Rule to allow access to /chat when an offer is purchased
Users with API Access Entry Level License
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:ApiAccessEntryLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } }
Users with API Access Medium Level License
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:ApiAccessMediumLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
Users with API Access Advanced Level License
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:ApiAccessAdvancedLevelOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:ApiAccessMaxOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
API Medium: Max total tokens per session
API Advanced: Max input tokens per prompt
API Advanced: Max total tokens per session
Rule to allow access to oauth apps when an API offer is purchased
Users identified using a NetID based Identifier who have purchased the demo graph access offer and whose license is in date
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DemoGraphAccessOffer ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
prefix oplprchs: <http://www.openlinksw.com/ontology/purchases#> prefix opllic: <http://www.openlinksw.com/ontology/licenses#> prefix oplofr: <http://www.openlinksw.com/ontology/offers#> prefix schema: <http://schema.org/> prefix oplshop: <http://www.openlinksw.com/ontology/shop#> prefix owl: <http://www.w3.org/2002/07/owl#> ask where { { select ?license where { { graph <urn:openlinksw.com.shop:registry> { ?shop oplshop:hasPurchaseCache ?cg } } union { bind(<urn:openlinksw.com:shop:purchases:cache> as ?cg) } graph ?cg { { ^{uri}^ oplprchs:madePurchase ?purchase . } union { ?o owl:sameAs ^{uri}^ ; oplprchs:madePurchase ?purchase . } ?purchase oplprchs:contains ?offer ; oplprchs:purchaseDate ?purchaseDate . ?offer a oplofr:DemoGraphAccessOfferWorldCupMeshup ; schema:itemOffered ?license . ?license opllic:hasDuration ?duration . ?duration opllic:durationYears ?years . filter (bif:dateadd ('day', xsd:integer(?years) * 365, ?purchaseDate) > bif:now()) . } } limit 1 } filter (sql:stripe_customer_has_active_product_subscription (str(^{uri}^), ?license) > 0) . }
Rule to allow access to the <https://linkeddata.uriburner.com/DAV/demos/daas_paid/world-cup-2026-country-player-guide-meshup-gpt5-chat-1.ttl> graph
Rule to allow access to /sparql for user who purchase file access