@prefix : <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#> .
@prefix bkp: <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602#> .
@prefix dbr: <http://dbpedia.org/resource/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema1: <http://schema.org/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

:SPARQLRecipe a rdfs:Class ;
    rdfs:label "SPARQLRecipe"@en ;
    schema1:description "A reusable SPARQL query against this collection, rendered as a closed-by-default recipe card."@en ;
    schema1:name "SPARQLRecipe"@en ;
    rdfs:comment "A reusable SPARQL query against this collection, rendered as a closed-by-default recipe card."@en ;
    rdfs:isDefinedBy :buyerGuideOntology ;
    rdfs:subClassOf schema1:CreativeWork .

:TenantInstance a rdfs:Class ;
    rdfs:label "TenantInstance"@en ;
    schema1:description "One Virtuoso server instance provisioned by the buyer portal for an active subscription, with tenant-specific endpoints and credentials."@en ;
    schema1:name "TenantInstance"@en ;
    rdfs:comment "One Virtuoso server instance provisioned by the buyer portal for an active subscription, with tenant-specific endpoints and credentials."@en ;
    rdfs:isDefinedBy :buyerGuideOntology ;
    rdfs:subClassOf schema1:Service .

:TroubleshootingCase a rdfs:Class ;
    rdfs:label "TroubleshootingCase"@en ;
    schema1:description "A named failure case from the guide, with its prescribed remedy."@en ;
    schema1:name "TroubleshootingCase"@en ;
    rdfs:comment "A named failure case from the guide, with its prescribed remedy."@en ;
    rdfs:isDefinedBy :buyerGuideOntology ;
    rdfs:subClassOf schema1:CreativeWork .

:hasRemedy a owl:ObjectProperty ;
    rdfs:label "has remedy"@en ;
    schema1:description "Links a troubleshooting case to its remedy text entity (carried as the case description in this collection)."@en ;
    schema1:name "has remedy"@en ;
    rdfs:comment "Links a troubleshooting case to its remedy text entity (carried as the case description in this collection)."@en ;
    rdfs:isDefinedBy :buyerGuideOntology .

:intendedFor a owl:ObjectProperty ;
    rdfs:label "intended for"@en ;
    schema1:description "Links the offer to one of its intended buyer audiences."@en ;
    schema1:name "intended for"@en ;
    rdfs:comment "Links the offer to one of its intended buyer audiences."@en ;
    rdfs:isDefinedBy :buyerGuideOntology .

dbr:Virtuoso_Universal_Server a schema1:SoftwareApplication ;
    schema1:description "The multi-model database server — relational tables and RDF data in one engine — that the SaaS managed service provisions as a tenant instance."@en ;
    schema1:name "Virtuoso"@en .

:isqlCommand a schema1:SoftwareSourceCode ;
    schema1:codeSampleType "full"@en ;
    schema1:isPartOf :article ;
    schema1:name "isql connection command"@en ;
    schema1:programmingLanguage "Shell"@en ;
    schema1:target :tlsSqlAccess ;
    schema1:text "isql <tenant-hostname>:1112 -E dba" .

:kgExplorerSection a schema1:CreativeWork ;
    schema1:isPartOf :article ;
    schema1:name "KG Explorer"@en .

:marketplaceSubscriptions a schema1:WebPage ;
    schema1:description "Where the buyer reviews the agreement and its auto-renewal setting."@en ;
    schema1:isPartOf :article ;
    schema1:name "AWS Marketplace — Manage subscriptions"@en ;
    schema1:url <https://console.aws.amazon.com/marketplace/home/subscriptions> .

:openLinkLogoDarkMode a schema1:ImageObject ;
    schema1:about dbr:OpenLink_Software ;
    schema1:contentUrl <https://virtuoso.openlinksw.com/skin/matrix/images/opllogo-minimal.svg> ;
    schema1:description "The dark-mode variant of the OpenLink logo, from the same skin directory of virtuoso.openlinksw.com as the blue masthead emblem, checked 2026-10-21: a pure-vector white emblem (all paths filled white), viewBox 809 by 938, designed for dark surfaces. This collection's page shows it in place of the blue emblem whenever the page is in dark mode."@en ;
    schema1:encodingFormat "image/svg+xml"@en ;
    schema1:height 938 ;
    schema1:name "OpenLink logo (swoosh emblem, dark-mode variant)"@en ;
    schema1:url <https://virtuoso.openlinksw.com/skin/matrix/images/opllogo-minimal.svg> ;
    schema1:width 809 .

:recipeAudiences a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "The connector context: the three buyer situations the offer is framed for."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "The three intended audiences"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
SELECT ?audienceIri ?audience WHERE {
  ?audienceIri a schema:BusinessAudience ;
               schema:name ?audience .
} ORDER BY ?audience""" .

:recipeBackupHowto a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "Every step of the backup-and-restore HowTo from the companion guide: the online backup, the generated script, the restore request, OpenLink’s restore, and validation."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "Backup and restore, step by step"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
PREFIX bkp: <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602#>
SELECT ?stepIri ?pos ?title WHERE {
  bkp:backupRestoreHowto schema:step ?stepIri .
  ?stepIri schema:name ?title ; schema:position ?pos .
} ORDER BY ?pos""" .

:recipeCensus a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "The canonical entity census: every rdf:type in the collection with a sample entity and a count."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "Entity census by type"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?type
    (SAMPLE(?s) AS ?sampleEntity)
    (COUNT(?s) AS ?entityCount)
WHERE { ?s rdf:type ?type . }
GROUP BY ?type
ORDER BY DESC(?entityCount)""" .

:recipeChecklist a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "The seven successful-onboarding items, in order."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "The onboarding checklist"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
SELECT ?itemIri ?pos ?item WHERE {
  ?itemIri a schema:ListItem ;
           schema:position ?pos ; schema:name ?item .
} ORDER BY ?pos""" .

:recipeEndpoints a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "The web applications and APIs the buyer connects through."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "Endpoints and access surfaces"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
SELECT ?surfaceIri ?surface WHERE {
  { ?surfaceIri a schema:WebAPI ; schema:name ?surface . }
  UNION
  { ?surfaceIri a schema:WebApplication ; schema:name ?surface . }
} ORDER BY ?surface""" .

:recipeFaq a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "Every FAQ question in the collection, with its IRI."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "FAQ questions"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
SELECT ?questionIri ?question WHERE {
  ?questionIri a schema:Question ; schema:name ?question .
} ORDER BY ?question""" .

:recipeGlossary a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "Every defined term in the collection, with its IRI."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "Glossary terms"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
SELECT ?termIri ?term WHERE {
  ?termIri a schema:DefinedTerm ; schema:name ?term .
} ORDER BY ?term""" .

:recipeHowto a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "Every HowTo step of the purchase-to-rollout journey, ordered by position."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "The buyer journey, in order"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
PREFIX : <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#>
SELECT ?stepIri ?pos ?title WHERE {
  :howtoSection schema:step ?stepIri .
  ?stepIri schema:name ?title ; schema:position ?pos .
} ORDER BY ?pos""" .

:recipeTroubleshooting a :SPARQLRecipe ;
    schema1:codeSampleType "full"@en ;
    schema1:description "The eight cases the two guides troubleshoot, with their remedies."@en ;
    schema1:isPartOf :sparqlWorkbenchSection ;
    schema1:name "Troubleshooting cases"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:text """PREFIX schema: <http://schema.org/>
PREFIX : <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#>
SELECT ?caseIri ?caseName WHERE {
  ?caseIri a :TroubleshootingCase ; schema:name ?caseName .
} ORDER BY ?caseName""" .

:statusOutput a schema1:CreativeWork ;
    schema1:description "The guide’s sample status(); output, verbatim — the proof a TLS SQL connection reached the provisioned server."@en ;
    schema1:isPartOf :article ;
    schema1:name "status(); sample output"@en ;
    schema1:text """OpenLink Virtuoso VDB Server
Version 08.03.3335-pthreads for Linux
Registered to Virtuoso-AWS-ECS-FARGATE-SaaS""" .

bkp:backupAns1 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "No. A restore replaces the active database state, it requires a service outage, and it is performed only by OpenLink seller administrators, after explicit buyer authorization. What you can do yourself is everything around it: run the online backup, keep the backup date, time, and durable S3 prefix, and put in a proper restore request. The dividing line is deliberate — the one operation that can discard your present is the one operation you cannot trigger by accident."@en .

bkp:backupAns2 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "A full backup chain. The first successful run of the generated script takes the complete set; from then on, the service runs its per-instance daily backup workflow, creating incremental backups and copying them to the same durable S3 location. One good run, honestly recorded, is what every later restore stands on."@en .

bkp:backupAns3 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Six things, and the request is incomplete without any of them: your buyer AWS account ID and buyer portal email; the instance ID and project name; the backup date and time, or the backup-set prefix, to restore; explicit authorization to replace the current database state; confirmation that the expected service outage is acceptable; and a technical contact to confirm post-restore validation. Write them all down before you send it."@en .

bkp:backupAns4 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Four things: the instance ID and project name; the completion date and UTC time; the backup prefix or backup-set timestamp; and the script output confirming the S3 sync completed successfully. A successful script finishes without error and reports the durable S3 backup prefix. Keep the record with the instance’s papers — it is what a future restore request, or an independent verification from OpenLink support, will ask for first."@en .

bkp:backupFaq1 a schema1:Question ;
    schema1:acceptedAnswer bkp:backupAns1 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Can a buyer run a restore directly?"@en .

bkp:backupFaq2 a schema1:Question ;
    schema1:acceptedAnswer bkp:backupAns2 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What does the first successful backup establish?"@en .

bkp:backupFaq3 a schema1:Question ;
    schema1:acceptedAnswer bkp:backupAns3 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What must a restore request include?"@en .

bkp:backupFaq4 a schema1:Question ;
    schema1:acceptedAnswer bkp:backupAns4 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What should I record after a backup completes?"@en .

bkp:bkpStep1 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Sign in to the buyer portal"@en ;
    schema1:position 1 ;
    schema1:text "Sign in to the Virtuoso SaaS Buyer Portal — the same portal, and the same account, you use for everything else about this instance."@en .

bkp:bkpStep10 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "It starts a scoped Fargate sync task to durable S3"@en ;
    schema1:position 10 ;
    schema1:text "The script starts a scoped Fargate sync task to copy the backup set to durable S3 — the managed storage where the set survives the instance itself."@en .

bkp:bkpStep11 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "It reports success only when the sync task’s exit code is 0"@en ;
    schema1:position 11 ;
    schema1:text "The script waits for the sync task and reports success only when its exit code is 0. Anything else is not a completed backup, whatever the terminal seemed to say."@en .

bkp:bkpStep12 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Give your buyer AWS account ID and portal email"@en ;
    schema1:position 12 ;
    schema1:text "The support request opens with identity: your buyer AWS account ID and your buyer portal email address."@en .

bkp:bkpStep13 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Name the instance ID and project name"@en ;
    schema1:position 13 ;
    schema1:text "Name the instance ID and the project name — the same pair you recorded when the backup completed."@en .

bkp:bkpStep14 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Name the backup date and time, or the backup-set prefix"@en ;
    schema1:position 14 ;
    schema1:text "Say which backup you want back: the backup date and time, or the backup-set prefix the script reported."@en .

bkp:bkpStep15 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Authorize replacing the current database state, explicitly"@en ;
    schema1:position 15 ;
    schema1:text "Give explicit authorization to replace the current database state. A restore is not an online operation; it discards changes made after the selected backup, and OpenLink will not do it on an implication."@en .

bkp:bkpStep16 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Confirm the expected service outage is acceptable"@en ;
    schema1:position 16 ;
    schema1:text "Confirm that the expected service outage is acceptable. The tenant service stops for a restore; say, in writing, that you know and accept it."@en .

bkp:bkpStep17 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Name a technical contact for post-restore validation"@en ;
    schema1:position 17 ;
    schema1:text "Name a technical contact who will confirm post-restore validation — a person, reachable, who knows what the restored database should contain."@en .

bkp:bkpStep18 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "OpenLink verifies buyer, ownership, and backup set"@en ;
    schema1:position 18 ;
    schema1:text "OpenLink first verifies the buyer, the instance ownership, and the requested backup set. No verification, no restore."@en .

bkp:bkpStep19 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "OpenLink creates a rollback copy of the current database"@en ;
    schema1:position 19 ;
    schema1:text "Before anything is replaced, OpenLink creates a rollback copy of the current database files — a way back from the way back."@en .

bkp:bkpStep2 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Open Instances and select the running instance"@en ;
    schema1:position 2 ;
    schema1:text "Open Instances and select the running instance. The backup belongs to an instance that is up; a stopped tenant has nothing new to protect."@en .

bkp:bkpStep20 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "OpenLink stops the tenant and restores the backup set"@en ;
    schema1:position 20 ;
    schema1:text "OpenLink stops the tenant service and restores the selected backup set in place of the active database."@en .

bkp:bkpStep21 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "OpenLink restarts Virtuoso and verifies it becomes healthy"@en ;
    schema1:position 21 ;
    schema1:text "OpenLink restarts Virtuoso and verifies the service becomes healthy before anyone calls the restore done."@en .

bkp:bkpStep22 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "OpenLink confirms the result, and keeps the rollback copy"@en ;
    schema1:position 22 ;
    schema1:text "OpenLink confirms the result with the buyer and retains the most recent rollback copy for the configured retention period."@en .

bkp:bkpStep23 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Open the instance in the buyer portal"@en ;
    schema1:position 23 ;
    schema1:text "After OpenLink confirms completion, open the instance in the buyer portal. Validation starts where administration lives."@en .

bkp:bkpStep24 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Confirm status running and health healthy"@en ;
    schema1:position 24 ;
    schema1:text "Confirm the status is running and the health is healthy — the same two words that have meant ‘ready’ at every stage of this service."@en .

bkp:bkpStep25 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Open HTTPS Conductor and verify the expected content"@en ;
    schema1:position 25 ;
    schema1:text "Open HTTPS Conductor and verify the expected database content is actually there — not assumed, seen."@en .

bkp:bkpStep26 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Run an application-level or SQL validation"@en ;
    schema1:position 26 ;
    schema1:text "Run an application-level or SQL validation appropriate for the restored workload. Your workload, your test."@en .

bkp:bkpStep27 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Run a new online backup, if the restored state must be protected at once"@en ;
    schema1:position 27 ;
    schema1:text "Run a new online backup after validation if the restored state must be protected immediately. The restored present deserves the same discipline as the original."@en .

bkp:bkpStep3 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Open Backup & Recovery"@en ;
    schema1:position 3 ;
    schema1:text "Open Backup & Recovery on the instance. This is where the portal keeps the generated backup script."@en .

bkp:bkpStep4 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Copy or download the ‘Run online backup’ script"@en ;
    schema1:position 4 ;
    schema1:text "Select Copy Script or Download Script for ‘Run online backup’. Take the script fresh from the portal, for this instance: portal scripts are tenant-specific, and a script from another buyer, instance, or environment must never be reused."@en .

bkp:bkpStep5 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Run the script as your buyer IAM user or role"@en ;
    schema1:position 5 ;
    schema1:text "Run the generated script in a terminal configured with the buyer IAM user or role — the workstation needs AWS CLI v2 and the Session Manager plugin, and the credentials need the one-time shell-access policy."@en .

bkp:bkpStep6 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "Wait for the script to finish; do not close the terminal"@en ;
    schema1:position 6 ;
    schema1:text "Wait for the script to complete. Do not close the terminal while the backup-sync task is running — the script is not finished until it says so."@en .

bkp:bkpStep7 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "The script assumes your scoped ECS Exec role"@en ;
    schema1:position 7 ;
    schema1:text "First, the script assumes the buyer’s scoped ECS Exec role for that instance — scoped, like everything else in this service, to the one tenant it serves."@en .

bkp:bkpStep8 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "It configures the Virtuoso backup directory"@en ;
    schema1:position 8 ;
    schema1:text "The script configures the Virtuoso backup directory, so the backup set lands where the sync task expects it."@en .

bkp:bkpStep9 a schema1:HowToStep ;
    schema1:isPartOf bkp:backupRestoreHowto,
        :article ;
    schema1:name "It runs backup_online('virtuoso_#', ...) while Virtuoso stays online"@en ;
    schema1:position 9 ;
    schema1:text "The script runs backup_online('virtuoso_#', ...) while Virtuoso remains online. That is the ‘online’ in online backup: no outage, no stopped server, while the set is written."@en .

:ans01 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "How to buy one Virtuoso SaaS Single Server instance, set it up, and run it — through AWS Marketplace and the buyer portal, from the checks you make before you pay to the seven-item checklist that tells you onboarding is done. Notice the shape of it. One instance. One buyer AWS account. One portal account. Everything in the guide is singular, on purpose."@en .

:ans02 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Three readers, and every one of them arrives with proof, not curiosity. First, the existing customer, who wants Virtuoso as a managed server edition with OpenLink’s experienced services behind it. Second, the customer who has already tested the commercial edition with the free evaluation offers, and is ready to start a proof of concept — or stands at the point of rollout. Third, the builder who has built a modern agentic solution, or brought a struggling app or service back to life, and now has to put it in front of customers, on the steady resilience of a cloud platform."@en .

:ans03 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Start from the AWS Marketplace product page. Do not bookmark or open a fulfilment URL directly: AWS Marketplace supplies a one-time setup context after a successful purchase, and that context is what binds your buyer account to the portal."@en .

:ans04 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Four things. Sign in to the AWS account that will own and pay for the agreement. Review the live Marketplace offer — term, selected plan, applicable taxes, metered overages, EULA, support, and renewal terms. Use an email address that will remain available to administer the buyer portal account. And keep the Marketplace tab open until the purchase confirmation page offers ‘Set up your account’."@en .

:ans05 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "No. The prices and terms in the screenshots are there to illustrate, nothing more. The live Marketplace offer is the only authority. That is why this page states no contract prices at all. Its sidebar quotes only the live page’s two metered overage rates, with the date they were checked printed beside them."@en .

:ans06 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Terms of 12, 24, and 36 months. You select exactly one plan dimension, for the service tier you need. And remember: usage-based charges come on top of the contract price when you use more than your entitlement includes."@en .

:ans07 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "AWS Marketplace creates the agreement; you then select ‘Set up your account’. That opens the Virtuoso SaaS identity flow and binds the buyer context to your portal account — sign in with the portal account for this buyer AWS account, or create one."@en .

:ans08 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "One. One portal account for each buyer AWS account. Use that same account every time you come back, and for every later setup link on the same account. A second account is exactly how the ‘wrong user for this setup link’ error happens."@en .

:ans09 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "When the portal shows your instance with status running and health healthy — not a moment before. Provisioning creates one tenant instance for your subscription, and it can take several minutes. Wait. Refresh the Instances page. Do not run the Marketplace setup a second time."@en .

:ans10 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Three doors, all on the instance detail page: HTTPS Conductor, the browser administration interface; HTTPS SPARQL, which opens the SPARQL Query Editor; and Secure SQL/ODBC/JDBC (TLS) — hostname and port 1112 for TLS SQL clients. Sign in with the dba username and the password shown in the detail page."@en .

:ans11 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Simply, and strictly. The door is closed by default. On the instance detail page you type in only the trusted public IPv4 CIDR ranges that may connect to port 1112, and select Update Secure SQL Access. One address on its own is written /32 — for example 203.0.113.45/32. Several ranges are separated by commas. Leave the field empty and public TLS SQL access is removed altogether. And 0.0.0.0/0 — everybody, everywhere — is not permitted."@en .

:ans12 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Connect with isql <tenant-hostname>:1112 -E dba, enter the password only when prompted, and run status();. A successful status(); call confirms the TLS SQL connection reached the provisioned Virtuoso server — the guide’s sample output reads ‘OpenLink Virtuoso VDB Server, Version 08.03.3335-pthreads for Linux, Registered to Virtuoso-AWS-ECS-FARGATE-SaaS’. A self-signed certificate warning is expected unless the client trusts the tenant certificate."@en .

:ans13 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Three verbs. Keep them apart. Stop Instance halts the tenant and keeps its data. Start Instance brings a stopped tenant back — give it several minutes for the health checks to recover. Delete Instance ends the tenant’s infrastructure. It is not a way to cancel or change a Marketplace agreement, and the guide says so in plain words."@en .

:ans14 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "AWS Marketplace. Your portal’s Usage & Billing page will show you the plan, the billing cycle, this month’s instance hours, an estimated contract amount, and any estimated overage on storage or data transfer. Read those numbers as what they are — estimates, made to help you run the service. The bill itself comes from AWS Marketplace, the billing authority, and from no one else."@en .

:ans15 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "No. It stops the next renewal. Nothing more. It does not end the term you are in, it does not end a contract that is still active, and it does not remove your tenant. If you want to cancel, ask for a refund, or end early, follow the terms of your agreement and contact OpenLink support or AWS Marketplace Support."@en .

:ans16 a schema1:Answer ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:text "Do not improvise. Work the case in the guide’s order. First, make sure the Marketplace agreement is active in the very AWS account you used for setup. Second, open ‘Set up your account’ from that agreement — never from an old bookmarked registration URL. Third, sign in with the portal account bound to that AWS account. Then refresh Instances, and wait for provisioning to finish."@en .

:artAwsPage a schema1:CreativeWork ;
    schema1:description "Source for this collection. AWS Marketplace (checked 2026-10-20)."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Virtuoso SaaS Single Server — AWS Marketplace product page"@en ;
    schema1:url <https://aws.amazon.com/marketplace/pp/prodview-6sqaln2drhie4> .

:artBackupGuide a schema1:CreativeWork ;
    schema1:description "Source for this collection. OpenLink Community."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Virtuoso SaaS Managed Service Buyer Backup and Restore Guide"@en ;
    schema1:url <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> .

:artGuide a schema1:CreativeWork ;
    schema1:description "Source for this collection. OpenLink Community."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Virtuoso SaaS Managed Service Buyer Guide"@en ;
    schema1:url <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600> .

:buyerPortal a schema1:WebApplication ;
    schema1:description "Where the buyer administers the subscription: Instances and instance detail pages, Usage & Billing, and Settings (Security, Notifications, API Keys). One portal account per buyer AWS account."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Virtuoso SaaS buyer portal"@en ;
    schema1:url <https://d6rcngx43773s.cloudfront.net> .

:checklistItem1 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Marketplace subscription completed for the intended buyer AWS account."@en ;
    schema1:position 1 .

:checklistItem2 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Buyer portal account created or signed in."@en ;
    schema1:position 2 .

:checklistItem3 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Instance status is running and health is healthy."@en ;
    schema1:position 3 .

:checklistItem4 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Conductor and SPARQL endpoint links respond."@en ;
    schema1:position 4 .

:checklistItem5 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "TLS SQL works from an explicitly allowed CIDR and is rejected outside it."@en ;
    schema1:position 5 .

:checklistItem6 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Database credentials have been stored securely."@en ;
    schema1:position 6 .

:checklistItem7 a schema1:ListItem ;
    schema1:isPartOf :article,
        :onboardingChecklist ;
    schema1:item :onboardingChecklist ;
    schema1:name "Renewal preference has been reviewed in AWS Marketplace."@en ;
    schema1:position 7 .

:checklistSection a schema1:CreativeWork ;
    schema1:hasPart :onboardingChecklist ;
    schema1:isPartOf :article ;
    schema1:name "Successful Onboarding Checklist"@en .

:conductor a schema1:WebApplication ;
    schema1:description "The browser administration interface for the instance, reached from the instance detail page and signed into with the dba credentials."@en ;
    schema1:isPartOf :article,
        :tenantInstance ;
    schema1:name "HTTPS Conductor"@en .

:faq01 a schema1:Question ;
    schema1:acceptedAnswer :ans01 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What does this buyer guide cover?"@en .

:faq02 a schema1:Question ;
    schema1:acceptedAnswer :ans02 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Who is this offer for?"@en .

:faq03 a schema1:Question ;
    schema1:acceptedAnswer :ans03 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Where do I start — and what must I never do?"@en .

:faq04 a schema1:Question ;
    schema1:acceptedAnswer :ans04 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What should I check before I purchase?"@en .

:faq05 a schema1:Question ;
    schema1:acceptedAnswer :ans05 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Are the prices in the guide’s screenshots the prices I will pay?"@en .

:faq06 a schema1:Question ;
    schema1:acceptedAnswer :ans06 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What contract terms does the public offer present?"@en .

:faq07 a schema1:Question ;
    schema1:acceptedAnswer :ans07 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What happens after I select Subscribe?"@en .

:faq08 a schema1:Question ;
    schema1:acceptedAnswer :ans08 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "How many portal accounts do I need?"@en .

:faq09 a schema1:Question ;
    schema1:acceptedAnswer :ans09 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "When can I start using my instance?"@en .

:faq10 a schema1:Question ;
    schema1:acceptedAnswer :ans10 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "How do I connect to the provisioned server?"@en .

:faq11 a schema1:Question ;
    schema1:acceptedAnswer :ans11 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "How does TLS SQL access control work?"@en .

:faq12 a schema1:Question ;
    schema1:acceptedAnswer :ans12 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "How do I know the isql connection really landed?"@en .

:faq13 a schema1:Question ;
    schema1:acceptedAnswer :ans13 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "What is the difference between Stop, Start, and Delete?"@en .

:faq14 a schema1:Question ;
    schema1:acceptedAnswer :ans14 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Who actually bills me?"@en .

:faq15 a schema1:Question ;
    schema1:acceptedAnswer :ans15 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "Does turning off auto-renewal cancel my contract?"@en .

:faq16 a schema1:Question ;
    schema1:acceptedAnswer :ans16 ;
    schema1:isPartOf :article,
        :faqSection ;
    schema1:mainEntityOfPage :faqSection ;
    schema1:name "The portal shows no instance. What now?"@en .

:marketplaceOffer a schema1:Offer ;
    schema1:description "The public offer presents 12-, 24-, and 36-month contract terms; the buyer selects exactly one plan dimension. Usage-based charges apply in addition to the contract price when usage exceeds the included entitlement. No contract price is asserted in this collection: the guide gives none and states the live Marketplace offer is authoritative."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:itemOffered :virtuosoSaasSingleServer ;
    schema1:name "Virtuoso SaaS Single Server — AWS Marketplace offer"@en ;
    schema1:seller dbr:OpenLink_Software ;
    :intendedFor :audienceBuilder,
        :audienceEvaluator,
        :audienceExistingCustomer .

:museSparkAgent a schema1:SoftwareApplication,
        prov:SoftwareAgent ;
    schema1:description "The Muse model-family agent that executed the build on the principal's behalf."@en ;
    schema1:isPartOf :aboutSection,
        :article ;
    schema1:name "Muse Spark"@en ;
    schema1:url <https://muse.ai> ;
    prov:actedOnBehalfOf <https://www.linkedin.com/in/kidehen#this> .

:runbookBackupRestore a schema1:TechArticle ;
    schema1:description "A runbook linked from the guide. At this collection’s first build, its linked page returned 403 and it was modelled existence-only. That is no longer the position: the full guide behind the link — the Virtuoso SaaS Managed Service Buyer Backup and Restore Guide (topic 6602) — has been fetched and meshed into this collection in full, as the backup chapter, a 27-step backup-and-restore HowTo, and their companion entities under the bkp: namespace."@en ;
    schema1:isBasedOn <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Virtuoso Online Backup and Recovery Runbook"@en ;
    rdfs:seeAlso <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> .

:runbookShellAccess a schema1:TechArticle ;
    schema1:description "A runbook linked from the guide. Its contents were not retrieved (the linked page returned 403 on fetch), so only its existence as a linked runbook is modelled — nothing in this collection paraphrases it."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Buyer Container Shell Access Runbook"@en .

:starterQuery a schema1:SoftwareSourceCode ;
    schema1:codeSampleType "full"@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Starter SPARQL query"@en ;
    schema1:programmingLanguage "SPARQL"@en ;
    schema1:target :sparqlEndpoint ;
    schema1:text "SELECT * WHERE { ?s ?p ?o } LIMIT 10" .

:step1 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Sign in to the AWS account that will own and pay"@en ;
    schema1:position 1 ;
    schema1:text "Before you buy anything, sign in to the AWS account that will own the agreement and pay for it. Everything else hangs off this account — the agreement, the portal, the tenant itself."@en .

:step10 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Wait for the instance to become running and healthy"@en ;
    schema1:position 10 ;
    schema1:text "In the buyer portal, open Instances and wait for the instance status to become running and its health to become healthy. Provisioning can take several minutes; refresh the Instances page rather than repeating Marketplace setup while an instance is already provisioning."@en .

:step11 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Open the instance detail page"@en ;
    schema1:position 11 ;
    schema1:text "Open the instance detail page. It shows the service tier, region, endpoints, and a masked database password. Use the displayed endpoint links only after the health state is healthy, and treat every endpoint and credential as specific to the tenant shown."@en .

:step12 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Open Conductor or the SPARQL Query Editor"@en ;
    schema1:position 12 ;
    schema1:text "Select Open Conductor, or open the HTTPS Conductor link, and sign in with the database credentials — the dba username and the password shown in the detail page. The HTTPS SPARQL link opens the SPARQL Query Editor on the same credentials."@en .

:step13 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Run the starter SPARQL query"@en ;
    schema1:position 13 ;
    schema1:text "In the SPARQL Query Editor, run the guide’s first query: SELECT * WHERE { ?s ?p ?o } LIMIT 10. It is the smallest proof there is that the endpoint answers — and that you are in."@en .

:step14 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Allow TLS SQL access for trusted CIDRs only"@en ;
    schema1:position 14 ;
    schema1:text "TLS SQL access is closed by default. In the instance detail page, enter only the trusted public IPv4 CIDR range or ranges permitted to connect to port 1112 — a single address as /32, for example 203.0.113.45/32; multiple ranges comma-separated; an empty field removes public access; 0.0.0.0/0 is not permitted — then select Update Secure SQL Access."@en .

:step15 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Connect with isql over TLS on port 1112"@en ;
    schema1:position 15 ;
    schema1:text "Use the hostname shown for Secure SQL/ODBC/JDBC (TLS), and port 1112: isql <tenant-hostname>:1112 -E dba. Type the password only when you are asked for it. Treat it as you would your house keys — never in tickets, never in screenshots, never in source control, never in shell history."@en .

:step16 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Verify the connection with status();"@en ;
    schema1:position 16 ;
    schema1:text "A successful status(); call confirms the TLS SQL connection reached the provisioned Virtuoso server: ‘OpenLink Virtuoso VDB Server — Version 08.03.3335-pthreads for Linux — Registered to Virtuoso-AWS-ECS-FARGATE-SaaS’. A self-signed certificate warning is expected unless the client trusts the tenant certificate."@en .

:step17 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Run the instance day to day: stop and start"@en ;
    schema1:position 17 ;
    schema1:text "From the instance detail page: Stop Instance stops the running tenant while retaining its data; Start Instance resumes a stopped tenant — allow several minutes for the endpoint health checks to recover. Delete Instance terminates the tenant infrastructure and is not a substitute for cancelling the agreement."@en .

:step18 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Get container shell access through ECS Exec"@en ;
    schema1:position 18 ;
    schema1:text "The instance detail page provides the buyer-specific IAM policy, role ARN, external ID, and generated AWS CLI script required for ECS Exec shell access. Use a buyer IAM user or role, not the AWS account root user, and follow the linked Buyer Container Shell Access Runbook."@en .

:step19 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Back up, and restore by the controlled path"@en ;
    schema1:position 19 ;
    schema1:text "The portal exposes the backup location and a generated online-backup script. The restore path is intentionally controlled, because Virtuoso must be stopped before replacement database files are applied. The full procedure — the six-step online backup, the generated script, and the seller-admin restore path — is set out in the companion Backup and Restore Guide, meshed into this collection as the backup chapter and its own 27-step HowTo."@en .

:step2 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Review the live Marketplace offer"@en ;
    schema1:position 2 ;
    schema1:text "Review the term, the selected plan, applicable taxes, metered overages, EULA, support, and renewal terms on the live offer. Prices and terms in the guide’s screenshots are illustrative only; the live Marketplace offer is authoritative."@en .

:step20 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Review usage, billing, and renewal in Marketplace"@en ;
    schema1:position 20 ;
    schema1:text "Use the portal’s Usage & Billing page for plan, cycle, instance hours, and estimated amounts — estimates only; AWS Marketplace is the billing authority. Review the agreement and its auto-renewal setting under Manage subscriptions, and keep the renewal preference reviewed, as the onboarding checklist requires."@en .

:step3 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Open the Marketplace product page and view purchase options"@en ;
    schema1:position 3 ;
    schema1:text "Start from the AWS Marketplace product page — never a bookmarked fulfilment URL — and choose ‘View purchase options’."@en .

:step4 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Select the contract duration"@en ;
    schema1:position 4 ;
    schema1:text "Choose the required contract duration. The public offer currently presents 12-, 24-, and 36-month terms."@en .

:step5 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Select exactly one plan dimension"@en ;
    schema1:position 5 ;
    schema1:text "Select exactly one plan dimension, for the service tier you need. One dimension. One tier. That is the offer’s discipline, and it keeps the contract honest."@en .

:step6 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Review the metered usage charges"@en ;
    schema1:position 6 ;
    schema1:text "Review usage-based charges, if any. They apply in addition to the selected contract price when usage exceeds the included entitlement."@en .

:step7 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Accept the terms, choose renewal, and subscribe"@en ;
    schema1:position 7 ;
    schema1:text "Read and accept the Marketplace terms and EULA, confirm the tier, duration, contract price, applicable tax, and renewal selection, then select Subscribe. Turning off auto-renewal prevents the next renewal but does not end the active term."@en .

:step8 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Select ‘Set up your account’ on the confirmation page"@en ;
    schema1:position 8 ;
    schema1:text "After AWS Marketplace creates the agreement, select ‘Set up your account’. AWS opens the Virtuoso SaaS identity flow and binds the buyer context to the portal account. Keep the Marketplace tab open until this option appears."@en .

:step9 a schema1:HowToStep ;
    schema1:isPartOf :article,
        :howtoSection ;
    schema1:name "Sign in to, or create, your buyer portal account"@en ;
    schema1:position 9 ;
    schema1:text "If you already have a Virtuoso SaaS portal account for this buyer AWS account, sign in with it; otherwise select ‘Create an account’ and complete the signup flow, then return to the buyer portal. One portal account per buyer AWS account — reuse it thereafter."@en .

:troubleExpiredLink a :TroubleshootingCase ;
    schema1:description "Do not reuse it. Open the active agreement in AWS Marketplace and choose ‘Set up your account’ again."@en ;
    schema1:isPartOf :article,
        :troubleshootingSection ;
    schema1:name "A setup link has expired or is invalid"@en ;
    schema1:text "Do not reuse it. Open the active agreement in AWS Marketplace and choose ‘Set up your account’ again."@en .

:troubleNoInstance a :TroubleshootingCase ;
    schema1:description "Confirm the AWS Marketplace agreement is active in the same buyer AWS account used for setup; open ‘Set up your account’ from the Marketplace agreement, not from an old bookmarked registration URL; sign in with the portal account already associated with that buyer AWS account; then refresh Instances and wait for provisioning to complete."@en ;
    schema1:isPartOf :article,
        :troubleshootingSection ;
    schema1:name "The portal has no instance"@en ;
    schema1:text "Confirm the AWS Marketplace agreement is active in the same buyer AWS account used for setup; open ‘Set up your account’ from the Marketplace agreement, not from an old bookmarked registration URL; sign in with the portal account already associated with that buyer AWS account; then refresh Instances and wait for provisioning to complete."@en .

:troubleTlsSql a :TroubleshootingCase ;
    schema1:description "Confirm the source public IP address is included in Allowed IPv4 CIDRs and that the client uses TLS on port 1112. A self-signed certificate warning is expected unless the client has been configured to trust the tenant certificate."@en ;
    schema1:isPartOf :article,
        :troubleshootingSection ;
    schema1:name "TLS SQL cannot connect"@en ;
    schema1:text "Confirm the source public IP address is included in Allowed IPv4 CIDRs and that the client uses TLS on port 1112. A self-signed certificate warning is expected unless the client has been configured to trust the tenant certificate."@en .

:troubleWrongUser a :TroubleshootingCase ;
    schema1:description "Sign out of the buyer portal, reopen ‘Set up your account’ from the active Marketplace agreement, and sign in with the portal account previously bound to that buyer AWS account."@en ;
    schema1:isPartOf :article,
        :troubleshootingSection ;
    schema1:name "Wrong user for this Marketplace setup link"@en ;
    schema1:text "Sign out of the buyer portal, reopen ‘Set up your account’ from the active Marketplace agreement, and sign in with the portal account previously bound to that buyer AWS account."@en .

bkp:backupBeforeStart a schema1:CreativeWork ;
    schema1:description "Four things must be in place: access to the Virtuoso SaaS Buyer Portal; a running Virtuoso instance; buyer AWS IAM credentials with the one-time shell-access policy described in the Buyer Container Shell Access Runbook; and AWS CLI v2 with the Session Manager plugin on the workstation that will run the generated script. The portal provides a tenant-specific script — do not reuse a script from another buyer, instance, or environment."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Before You Start"@en .

bkp:backupChainConcept a schema1:CreativeWork ;
    schema1:description "The chain the first successful online backup establishes: a full backup set, then incremental backups from the daily per-instance workflow, all copied to the same durable S3 location."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Backup chain"@en .

bkp:backupRequestRestore a schema1:CreativeWork ;
    schema1:description "A restore is not an online operation. It replaces the active database with a selected backup set and can discard changes made after that backup. The support request carries six items, from the buyer AWS account ID to explicit authorization and a named technical contact; OpenLink then verifies, makes a rollback copy, stops the tenant, restores, restarts, and confirms. Do not delete the instance to request a restore: deletion is a termination action, separate from backup recovery."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Request a Restore"@en .

bkp:backupRunOnline a schema1:CreativeWork ;
    schema1:description "Six steps in the portal and a terminal, then five things the generated script does on its own: it assumes your scoped ECS Exec role, configures the backup directory, runs backup_online('virtuoso_#', ...) while Virtuoso remains online, starts a scoped Fargate sync task to durable S3, and reports success only when the sync task’s exit code is 0. The first successful run establishes a full backup chain; from then on the service’s daily workflow creates incremental backups and copies them to the same durable S3 location."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Run an Online Backup"@en .

bkp:backupScope a schema1:CreativeWork ;
    schema1:description "What a buyer can do, and what a buyer cannot. You can run an online Virtuoso backup from the buyer portal; confirm the backup-sync operation completed; keep the reported backup date, time, and durable S3 prefix for a future support request; and request a seller-admin controlled restore of a selected backup set. You cannot run a restore directly: a restore replaces the active database state, requires a service outage, and is performed only by OpenLink seller administrators after explicit buyer authorization."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Scope"@en .

bkp:backupValidate a schema1:CreativeWork ;
    schema1:description "Once OpenLink confirms completion, five checks: open the instance in the portal; confirm status running and health healthy; open HTTPS Conductor and verify the expected database content; run an application-level or SQL validation suited to the restored workload; and run a new online backup after validation if the restored state must be protected immediately."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Validate After a Restore"@en .

bkp:backupVerify a schema1:CreativeWork ;
    schema1:description "A successful script finishes without error and reports the durable S3 backup prefix. Record the instance ID and project name, the completion date and UTC time, the backup prefix or backup-set timestamp, and the script output confirming the S3 sync completed successfully. The S3 bucket is managed by OpenLink: do not alter, delete, or replace objects in the managed backup prefix. Independent S3 object verification is requested from OpenLink support, with the instance ID and the reported backup prefix."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Verify the Backup"@en .

bkp:bkpTroubleAwsAccess a :TroubleshootingCase ;
    schema1:description "Use a buyer IAM user or role, not AWS root credentials. Confirm the one-time buyer shell-access policy is attached, and use the latest script from the instance detail page."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :troubleshootingSection ;
    schema1:name "The script reports an AWS access error"@en ;
    schema1:text "Use a buyer IAM user or role, not AWS root credentials. Confirm the one-time buyer shell-access policy is attached, and use the latest script from the instance detail page."@en .

bkp:bkpTroubleMissingSection a :TroubleshootingCase ;
    schema1:description "The instance may still be provisioning, stopped, or missing the required backup metadata. Confirm it is running and healthy; if the section still does not appear, contact OpenLink support with the instance ID."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :troubleshootingSection ;
    schema1:name "The Backup & Recovery section is missing"@en ;
    schema1:text "The instance may still be provisioning, stopped, or missing the required backup metadata. Confirm it is running and healthy; if the section still does not appear, contact OpenLink support with the instance ID."@en .

bkp:bkpTroubleNoEcsTask a :TroubleshootingCase ;
    schema1:description "Start the instance from its detail page, wait until its health is healthy, and then rerun a newly copied script from the buyer portal. Newly copied — not the one from the failed run."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :troubleshootingSection ;
    schema1:name "The backup script reports no running ECS task"@en ;
    schema1:text "Start the instance from its detail page, wait until its health is healthy, and then rerun a newly copied script from the buyer portal. Newly copied — not the one from the failed run."@en .

bkp:bkpTroubleRecoveryPoint a :TroubleshootingCase ;
    schema1:description "Do not run an older script, and do not modify the generated restore guidance. Request a seller-admin restore and identify the desired backup date and time in the support request."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :troubleshootingSection ;
    schema1:name "I need a different recovery point"@en ;
    schema1:text "Do not run an older script, and do not modify the generated restore guidance. Request a seller-admin restore and identify the desired backup date and time in the support request."@en .

bkp:restoreRequestConcept a schema1:CreativeWork ;
    schema1:description "The buyer's support request for a restore: AWS account ID and portal email, instance ID and project name, the backup date/time or backup-set prefix, explicit authorization to replace the current database state, confirmation that the service outage is acceptable, and a technical contact for post-restore validation."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Restore request"@en .

bkp:sellerAdminRestoreConcept a schema1:CreativeWork ;
    schema1:description "The restore path: performed only by OpenLink seller administrators after explicit buyer authorization, with a rollback copy taken first and the result confirmed with the buyer."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "Seller-admin controlled restore"@en .

:costDataTransfer a schema1:UnitPriceSpecification ;
    schema1:description "Additional usage dimension on the live Marketplace page: extra data transfer, per GB."@en ;
    schema1:isPartOf :article,
        :awsMarketplaceListing,
        :sidebarSection ;
    schema1:name "Data transfer — Extra Data Transfer GB"@en ;
    schema1:price 0.10 ;
    schema1:priceCurrency "USD"@en ;
    schema1:unitText "GB"@en .

:costStorage a schema1:UnitPriceSpecification ;
    schema1:description "Additional usage dimension on the live Marketplace page: extra storage, per GB-month."@en ;
    schema1:isPartOf :article,
        :awsMarketplaceListing,
        :sidebarSection ;
    schema1:name "Storage — Extra Storage GB-Month"@en ;
    schema1:price 0.50 ;
    schema1:priceCurrency "USD"@en ;
    schema1:unitText "GB-Month"@en .

:guideBeforePurchase a schema1:CreativeWork ;
    schema1:description "Four checks, and then you may spend money. Sign in to the AWS account that will own the agreement and pay for it. Read the live Marketplace offer from end to end — the term, the plan, the taxes, the metered overages, the EULA, the support, the renewal terms. Use an email address that will still be yours when the portal account needs looking after. And keep the Marketplace tab open until the confirmation page offers you ‘Set up your account’."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Before You Purchase"@en .

:guideBilling a schema1:CreativeWork ;
    schema1:description "The Usage & Billing page tells you what you have chosen and what it is costing: the plan, the billing cycle, this month’s instance hours, an estimated contract amount, and any estimated overage on storage or data transfer. They are estimates, honestly labelled. AWS Marketplace is the authority on billing, and AWS Marketplace sends the invoice. Switching off auto-renewal affects the next renewal only. It does not end a contract that is still running, and it does not remove a tenant. If you want to cancel, ask for a refund, or end early, follow the terms of your agreement and talk to OpenLink support or AWS Marketplace Support."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Billing, Renewal, and Cancellation"@en .

:guideConnect a schema1:CreativeWork ;
    schema1:description "Everything you need is on the instance detail page: the endpoint addresses as they stand today, and the credentials for your instance. HTTPS Conductor. HTTPS SPARQL. And Secure SQL/ODBC/JDBC (TLS) on port 1112. You sign in as dba, with the password shown on that page. Treat that password as you would your house keys: never in a ticket, never in a screenshot, never in source control, never in your shell history. Every endpoint and every credential belongs to the one tenant named in the portal — yours, and no one else’s."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Connect to Virtuoso"@en .

:guideDailyOps a schema1:CreativeWork ;
    schema1:description "You start and stop the instance from its detail page. Stop Instance halts the tenant and keeps its data. Start Instance brings it back. Delete Instance ends the tenant’s infrastructure — and it is not a way to cancel or change a Marketplace agreement, which lives elsewhere. For a shell inside the container, you use ECS Exec, with IAM material made for you alone, set out on the detail page. Backup and restore run through the portal’s backup location and its generated online-backup script. Restore is kept under control for a good reason: Virtuoso must be stopped before new database files are put in its place. The full procedure is set out in the companion Backup and Restore Guide, meshed into this collection as its own chapter."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Daily Operations"@en .

:guidePortalSetup a schema1:CreativeWork ;
    schema1:description "Once Marketplace confirms your purchase, ‘Set up your account’ opens the Virtuoso SaaS identity flow. It binds your buyer account to a portal account. If you already have one for this AWS account, sign in with it; if not, create one. Keep to one portal account per buyer AWS account, and use it again for every later visit and every later setup link on that account."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Set Up Your Buyer Portal Account"@en .

:guideProvisioning a schema1:CreativeWork ;
    schema1:description "The portal creates one tenant instance for your subscription. Open Instances. Wait until the status reads running and the health reads healthy. Then open the instance detail page. Do not use the endpoint links before the health reads healthy. It can take several minutes. Refresh Instances — do not run the Marketplace setup again while an instance is on its way."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Wait for Provisioning"@en .

:guidePurchase a schema1:CreativeWork ;
    schema1:description "Six moves, in order. View purchase options. Choose a duration — the public offer now presents 12-, 24-, and 36-month terms. Choose exactly one plan dimension. Look at the usage-based charges: they come on top of the contract price when you use more than your entitlement includes. Read and accept the Marketplace terms and the EULA. Then decide whether the agreement should renew itself, and select Subscribe."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article,
        :overviewSection ;
    schema1:name "Purchase a Marketplace Contract"@en .

:kgGeneratorSkill a schema1:SoftwareApplication,
        prov:SoftwareAgent ;
    schema1:description "Skill that generated this knowledge graph from the sources."@en ;
    schema1:isPartOf :aboutSection,
        :article ;
    schema1:name "kg-generator"@en ;
    schema1:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator> ;
    prov:actedOnBehalfOf <https://www.linkedin.com/in/kidehen#this> .

:openLinkLogo a schema1:ImageObject ;
    schema1:about dbr:OpenLink_Software ;
    schema1:contentUrl <https://virtuoso.openlinksw.com/skin/matrix/images/opllogo-minimal-blue.svg> ;
    schema1:description "The OpenLink logo as displayed at the top left of virtuoso.openlinksw.com — the site masthead image, alt text 'OpenLink Logo' — checked 2026-10-21: the OpenLink swoosh emblem, a blue gradient rounded square with a white swoosh and orbiting arc, delivered as an SVG (viewBox 3371 by 3909) wrapping a PNG. It stands in this collection's brand spot at the user's direction, replacing the Virtuoso product logo used before. Its semi-transparent whites are designed for light surfaces; a pure-vector white variant of the same emblem, from the same skin directory, serves as its dark-mode counterpart in this collection's page (see openLinkLogoDarkMode)."@en ;
    schema1:encodingFormat "image/svg+xml"@en ;
    schema1:height 3909 ;
    schema1:isPartOf :article,
        :sidebarSection ;
    schema1:name "OpenLink logo (swoosh emblem)"@en ;
    schema1:url <https://virtuoso.openlinksw.com/skin/matrix/images/opllogo-minimal-blue.svg> ;
    schema1:width 3371 .

:rdfInfographicSkill a schema1:SoftwareApplication,
        prov:SoftwareAgent ;
    schema1:description "Skill that rendered this knowledge graph as an interactive HTML infographic."@en ;
    schema1:isPartOf :aboutSection,
        :article ;
    schema1:name "rdf-infographic-skill"@en ;
    schema1:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/rdf-infographic-skill> ;
    prov:actedOnBehalfOf <https://www.linkedin.com/in/kidehen#this> .

:sparqlEndpoint a schema1:WebAPI ;
    schema1:description "The instance’s SPARQL endpoint over HTTPS; its link opens the SPARQL Query Editor."@en ;
    schema1:isPartOf :article,
        :tenantInstance ;
    schema1:name "HTTPS SPARQL endpoint"@en .

:tlsSqlAccess a schema1:WebAPI ;
    schema1:description "TLS SQL access on hostname and port 1112. Closed by default; opened only for the trusted public IPv4 CIDRs entered in the instance detail page (0.0.0.0/0 is not permitted)."@en ;
    schema1:isPartOf :article,
        :tenantInstance ;
    schema1:name "Secure SQL/ODBC/JDBC (TLS) — port 1112"@en .

dbr:SPARQL a schema1:DefinedTerm ;
    schema1:description "The RDF query language. On a Virtuoso SaaS instance it is reached over the HTTPS SPARQL endpoint, which opens the SPARQL Query Editor."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "SPARQL"@en ;
    schema1:url dbr:SPARQL .

dbr:SQL a schema1:DefinedTerm ;
    schema1:description "The relational query language. On a Virtuoso SaaS instance it is reached over TLS — Secure SQL/ODBC/JDBC on port 1112 — once the buyer’s CIDRs are explicitly allowed."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "SQL"@en ;
    schema1:url dbr:SQL .

bkp:termBackupChain a schema1:DefinedTerm ;
    schema1:description "The sequence a backup set belongs to. The first successful online backup establishes a full backup chain; the daily workflow then adds incremental backups to it, each copied to the same durable S3 location."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "backup chain"@en ;
    schema1:url bkp:termBackupChain .

bkp:termDurableS3Prefix a schema1:DefinedTerm ;
    schema1:description "The managed S3 location a backup set is copied to, reported by the generated script when a backup completes. The bucket is managed by OpenLink: buyers record the prefix, and must not alter, delete, or replace objects under it."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "durable S3 prefix"@en ;
    schema1:url bkp:termDurableS3Prefix .

bkp:termIncrementalBackup a schema1:DefinedTerm ;
    schema1:description "A backup of what changed since the backup before it, added to the chain by the service’s per-instance daily backup workflow and copied to the same durable S3 location as the full set that started the chain."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "incremental backup"@en ;
    schema1:url bkp:termIncrementalBackup .

bkp:termRollbackCopy a schema1:DefinedTerm ;
    schema1:description "The copy of the current database files OpenLink creates before restoring a selected backup set. After the restore, the most recent rollback copy is retained for the configured retention period."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "rollback copy"@en ;
    schema1:url bkp:termRollbackCopy .

bkp:termSellerAdminRestore a schema1:DefinedTerm ;
    schema1:description "A restore performed only by OpenLink seller administrators, after explicit buyer authorization. It is not an online operation: the tenant service stops, the selected backup set replaces the active database, and changes made after that backup are discarded."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "seller-admin controlled restore"@en ;
    schema1:url bkp:termSellerAdminRestore .

:aboutSection a schema1:CreativeWork ;
    schema1:hasPart :kgGeneratorSkill,
        :museSparkAgent,
        :rdfInfographicSkill ;
    schema1:isPartOf :article ;
    schema1:name "About This Page"@en .

:audienceBuilder a schema1:BusinessAudience ;
    schema1:audienceType "The builder, ready to roll out"@en ;
    schema1:description "You have successfully built a modern agentic solution, or revamped a struggling app or service, that now requires rollout to your customer base via the resilience offered by a cloud platform."@en ;
    schema1:isPartOf :article,
        :connectorSection,
        :overviewSection ;
    schema1:name "The builder, ready to roll out"@en .

:audienceEvaluator a schema1:BusinessAudience ;
    schema1:audienceType "The evaluator, ready for proof"@en ;
    schema1:description "You have successfully evaluated the commercial edition, using the free evaluation offers, and are ready to commence a proof of concept (PoC) or at the point of rollout."@en ;
    schema1:isPartOf :article,
        :connectorSection,
        :overviewSection ;
    schema1:name "The evaluator, ready for proof"@en .

:audienceExistingCustomer a schema1:BusinessAudience ;
    schema1:audienceType "The existing customer, moving to managed"@en ;
    schema1:description "You are an existing customer that seeks a managed server edition of Virtuoso combined with the experienced services capabilities OpenLink provides."@en ;
    schema1:isPartOf :article,
        :connectorSection,
        :overviewSection ;
    schema1:name "The existing customer, moving to managed"@en .

:awsMarketplaceListing a schema1:WebPage ;
    schema1:about :virtuosoSaasSingleServer ;
    schema1:dateModified "2026-10-20"^^xsd:date ;
    schema1:description "The live AWS Marketplace product page, checked 2026-10-20 and kept distinct from the guide. Highlights, verbatim in substance: launch Virtuoso — a fully integrated, multi-model DBMS — with zero build overhead; high-performance, secure, standards-compliant multi-model (tables and graphs) data access with support for SQL, SPARQL, GraphQL, ODBC/JDBC, HTTP, and MCP, fortified with fine-grained, attribute-based access controls; Data Virtualization, Replication, and Integration as the infrastructure for LLM-based AI Agents and Assistants loosely coupled with Data Spaces. Pricing is based on contract duration and terms plus additional usage, paid upfront or in installments; usage beyond the entitlement is charged on top; if the contract is not renewed, access to entitlements expires. Vendor support runs through the OpenLink support system with typical response times within 1 business day and a higher SLA available for additional cost. The page shows no customer reviews yet (0 ratings)."@en ;
    schema1:hasPart :costDataTransfer,
        :costStorage ;
    schema1:isPartOf :article,
        :sidebarSection ;
    schema1:name "Virtuoso SaaS Single Server — AWS Marketplace"@en ;
    schema1:termsOfService "Vendor refund policy as stated on the Marketplace page: ‘We do not currently support refunds, but you can cancel at any time or contact us at support@openlinksw.com.’ The guide’s cancellation section says instead to follow the agreement terms and contact OpenLink support or AWS Marketplace Support; both statements are preserved as their sources give them."@en ;
    schema1:url <https://aws.amazon.com/marketplace/pp/prodview-6sqaln2drhie4> .

:connectorSection a schema1:CreativeWork ;
    schema1:hasPart :audienceBuilder,
        :audienceEvaluator,
        :audienceExistingCustomer ;
    schema1:isPartOf :article ;
    schema1:name "Connector context: you are not starting from zero"@en .

:termAgreement a schema1:DefinedTerm ;
    schema1:description "The commercial contract created when the buyer subscribes in AWS Marketplace. Turning off its auto-renewal prevents the next renewal but does not end the active term."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "Marketplace agreement"@en ;
    schema1:url :termAgreement .

:termAllowedCidr a schema1:DefinedTerm ;
    schema1:description "The trusted public IPv4 ranges permitted to connect to port 1112. A single address is written as /32 (for example 203.0.113.45/32); multiple ranges are comma-separated; an empty field removes public TLS SQL access; 0.0.0.0/0 is not permitted."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "Allowed IPv4 CIDRs"@en ;
    schema1:url :termAllowedCidr .

:termAutoRenewal a schema1:DefinedTerm ;
    schema1:description "The agreement setting chosen at purchase time: whether the contract renews at the end of its term. Reviewable later under AWS Marketplace Manage subscriptions."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "auto-renewal"@en ;
    schema1:url :termAutoRenewal .

:termBuyerPortal a schema1:DefinedTerm ;
    schema1:description "The Virtuoso SaaS portal where the buyer administers the subscription: Instances, instance detail pages, Usage & Billing, and Settings. One portal account per buyer AWS account, bound to it by the Marketplace setup flow."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "buyer portal"@en ;
    schema1:url :termBuyerPortal .

:termConductor a schema1:DefinedTerm ;
    schema1:description "Virtuoso’s browser administration interface, reached over HTTPS from the instance detail page and signed into with the dba credentials."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "Conductor"@en ;
    schema1:url :termConductor .

:termDba a schema1:DefinedTerm ;
    schema1:description "The administrator’s username for your instance. You use it with the password shown on the instance detail page — and you treat that password as you would your house keys. It belongs in secure storage, and nowhere else: never in tickets, screenshots, source control, or shell history."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "dba account"@en ;
    schema1:url :termDba .

:termEcsExec a schema1:DefinedTerm ;
    schema1:description "The AWS mechanism for container shell access to the tenant. The instance detail page provides the buyer-specific IAM policy, role ARN, external ID, and generated AWS CLI script it requires."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "ECS Exec"@en ;
    schema1:url :termEcsExec .

:termMeteredOverage a schema1:DefinedTerm ;
    schema1:description "Usage-based charges that apply in addition to the contract price when usage exceeds the included entitlement — on the live Marketplace page, storage and data-transfer overages."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "metered overage"@en ;
    schema1:url :termMeteredOverage .

:termOnlineBackup a schema1:DefinedTerm ;
    schema1:description "A backup of the Virtuoso database taken while the server stays online and serving. In the buyer portal you copy or download a generated script that runs backup_online('virtuoso_#', ...) and then copies the backup set to a durable S3 prefix. Restore is a different matter, and a controlled one: it replaces the active database and is performed only by OpenLink seller administrators, after explicit buyer authorization."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "online backup"@en ;
    schema1:url :termOnlineBackup .

:termSetupContext a schema1:DefinedTerm ;
    schema1:description "The context AWS Marketplace supplies after a successful purchase, which is why a fulfilment URL must never be bookmarked or opened directly: ‘Set up your account’ carries it into the portal’s identity flow."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "one-time setup context"@en ;
    schema1:url :termSetupContext .

:termTenantInstance a schema1:DefinedTerm ;
    schema1:description "The single Virtuoso server instance the portal creates for an active subscription. It carries its own endpoints, credentials, service tier, and region, and is healthy only when its status is running and its health is healthy."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "tenant instance"@en ;
    schema1:url :termTenantInstance .

:termTlsSql a schema1:DefinedTerm ;
    schema1:description "SQL/ODBC/JDBC connectivity over TLS on port 1112. Closed by default; opened only for the trusted public IPv4 CIDRs the buyer enters in the instance detail page."@en ;
    schema1:inDefinedTermSet :glossaryTermSet ;
    schema1:isPartOf :article,
        :glossarySection,
        :glossaryTermSet ;
    schema1:name "TLS SQL access"@en ;
    schema1:url :termTlsSql .

:virtuosoSaasSingleServer a schema1:Product,
        schema1:Service ;
    schema1:brand dbr:OpenLink_Software ;
    schema1:description "The managed service: one Virtuoso Single Server instance, sold through AWS Marketplace as a SaaS subscription and administered through the buyer portal. Sold by OpenLink Software; delivery method SaaS, deployed on AWS (per the live Marketplace page)."@en ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:isRelatedTo dbr:Virtuoso_Universal_Server ;
    schema1:name "Virtuoso SaaS Single Server"@en .

:sidebarSection a schema1:CreativeWork ;
    schema1:hasPart :awsMarketplaceListing,
        :costDataTransfer,
        :costStorage,
        :openLinkLogo ;
    schema1:isPartOf :article ;
    schema1:name "Checked sidebar: the live AWS Marketplace page"@en .

:tenantInstance a :TenantInstance ;
    schema1:description "The one instance the portal creates for the active subscription. Usable when its status is running and its health is healthy; its endpoints and credentials are specific to the tenant shown in the portal."@en ;
    schema1:hasPart :conductor,
        :sparqlEndpoint,
        :tlsSqlAccess ;
    schema1:isPartOf :article,
        :overviewSection ;
    schema1:name "Tenant instance"@en .

<https://www.linkedin.com/in/kidehen#this> a schema1:Person ;
    schema1:description "The principal on whose behalf this collection was curated; author of the connector-context audience framing."@en ;
    schema1:name "Kingsley Idehen"@en ;
    schema1:url <https://www.linkedin.com/in/kidehen> .

dbr:OpenLink_Software a schema1:Organization ;
    schema1:description "Vendor of Virtuoso and of the Virtuoso SaaS managed service; seller named on the AWS Marketplace product page."@en ;
    schema1:logo :openLinkLogo,
        :openLinkLogoDarkMode ;
    schema1:name "OpenLink Software"@en ;
    schema1:url <https://www.openlinksw.com/> .

:buyerGuideOntology a owl:Ontology ;
    rdfs:label "The Virtuoso SaaS Buyer Guide Ontology"@en ;
    schema1:description "Lightweight TBox for the buyer journey: tenant instances, troubleshooting cases, audience situations, and the SPARQL recipe class, over schema.org."@en ;
    schema1:identifier <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600> ;
    schema1:name "The Virtuoso SaaS Buyer Guide Ontology"@en ;
    rdfs:comment "Terms minted for this collection only where schema.org has no fit; everything else reuses schema.org directly."@en ;
    owl:versionInfo "1.0.0"@en .

:troubleshootingSection a schema1:CreativeWork ;
    schema1:hasPart bkp:bkpTroubleAwsAccess,
        bkp:bkpTroubleMissingSection,
        bkp:bkpTroubleNoEcsTask,
        bkp:bkpTroubleRecoveryPoint,
        :troubleExpiredLink,
        :troubleNoInstance,
        :troubleTlsSql,
        :troubleWrongUser ;
    schema1:isPartOf :article ;
    schema1:name "Troubleshooting"@en .

:sparqlWorkbenchSection a schema1:CreativeWork ;
    schema1:hasPart :recipeAudiences,
        :recipeBackupHowto,
        :recipeCensus,
        :recipeChecklist,
        :recipeEndpoints,
        :recipeFaq,
        :recipeGlossary,
        :recipeHowto,
        :recipeTroubleshooting ;
    schema1:isPartOf :article ;
    schema1:name "SPARQL Workbench"@en .

<https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600> a schema1:TechArticle ;
    schema1:abstract "The guide tells you how to buy, set up, and run one Virtuoso SaaS Single Server instance through AWS Marketplace and the buyer portal. It covers what to check before you pay, the six-step purchase, how to set up your portal account, how to wait for provisioning until the instance is running and healthy, and how to connect — by Conductor, by SPARQL, and by TLS SQL on port 1112. Then come the daily operations, billing, renewal and cancellation, four troubleshooting cases, and a seven-item checklist for successful onboarding. One warning runs through it: the prices in the guide’s screenshots are illustrations. The live Marketplace offer is the only one that counts. A companion guide, the Virtuoso SaaS Managed Service Buyer Backup and Restore Guide, supplies the full backup and restore story the main guide only links to: the online backup procedure and its generated script, what to record afterwards, how to request a seller-admin controlled restore, and how to validate the restored service."@en ;
    schema1:hasPart <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :guideBeforePurchase,
        :guideBilling,
        :guideConnect,
        :guideDailyOps,
        :guidePortalSetup,
        :guideProvisioning,
        :guidePurchase ;
    schema1:headline "Virtuoso SaaS Managed Service Buyer Guide"@en ;
    schema1:name "Virtuoso SaaS Managed Service Buyer Guide"@en ;
    schema1:publisher dbr:OpenLink_Software ;
    schema1:url <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600> .

:onboardingChecklist a schema1:ItemList ;
    schema1:description "The guide’s closing checklist: seven conditions that together say the rollout landed."@en ;
    schema1:hasPart :checklistItem1,
        :checklistItem2,
        :checklistItem3,
        :checklistItem4,
        :checklistItem5,
        :checklistItem6,
        :checklistItem7 ;
    schema1:isPartOf :article,
        :checklistSection ;
    schema1:name "Successful Onboarding Checklist"@en .

<https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> a schema1:TechArticle ;
    schema1:abstract "This guide explains the backup operations available to Virtuoso SaaS buyers and how to request a controlled restore from OpenLink."@en ;
    schema1:hasPart bkp:backupBeforeStart,
        bkp:backupChainConcept,
        bkp:backupRequestRestore,
        bkp:backupRestoreHowto,
        bkp:backupRunOnline,
        bkp:backupScope,
        bkp:backupValidate,
        bkp:backupVerify,
        bkp:bkpTroubleAwsAccess,
        bkp:bkpTroubleMissingSection,
        bkp:bkpTroubleNoEcsTask,
        bkp:bkpTroubleRecoveryPoint,
        bkp:restoreRequestConcept,
        bkp:sellerAdminRestoreConcept ;
    schema1:headline "Virtuoso SaaS Managed Service Buyer Backup and Restore Guide"@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600>,
        :article ;
    schema1:name "Virtuoso SaaS Managed Service Buyer Backup and Restore Guide"@en ;
    schema1:publisher dbr:OpenLink_Software ;
    schema1:url <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> .

:glossarySection a schema1:CreativeWork ;
    schema1:hasPart dbr:SPARQL,
        dbr:SQL,
        bkp:termBackupChain,
        bkp:termDurableS3Prefix,
        bkp:termIncrementalBackup,
        bkp:termRollbackCopy,
        bkp:termSellerAdminRestore,
        :glossaryTermSet,
        :termAgreement,
        :termAllowedCidr,
        :termAutoRenewal,
        :termBuyerPortal,
        :termConductor,
        :termDba,
        :termEcsExec,
        :termMeteredOverage,
        :termOnlineBackup,
        :termSetupContext,
        :termTenantInstance,
        :termTlsSql ;
    schema1:isPartOf :article ;
    schema1:name "Glossary"@en .

:howtoSection a schema1:CreativeWork,
        schema1:HowTo ;
    schema1:description "Twenty steps: the pre-purchase checks, the six-step Marketplace purchase, portal account setup, provisioning, connecting via Conductor, SPARQL and TLS SQL, and the daily-operations and billing moves that follow. A companion backup-and-restore HowTo, from the second guide, carries its own twenty-seven steps under the bkp: namespace."@en ;
    schema1:isPartOf :article ;
    schema1:name "HowTo: Buy, Set Up, and Roll Out Virtuoso SaaS"@en ;
    schema1:step :step1,
        :step10,
        :step11,
        :step12,
        :step13,
        :step14,
        :step15,
        :step16,
        :step17,
        :step18,
        :step19,
        :step2,
        :step20,
        :step3,
        :step4,
        :step5,
        :step6,
        :step7,
        :step8,
        :step9 .

bkp:backupRestoreHowto a schema1:CreativeWork,
        schema1:HowTo ;
    schema1:description "Twenty-seven steps from the Backup and Restore Guide, in five movements: run an online backup (6), what the generated script does (5), what a restore request must include (6), what OpenLink does next (5), and how the buyer validates the restored service (5)."@en ;
    schema1:isPartOf <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        :article,
        :overviewSection ;
    schema1:name "HowTo: Back Up, Restore, and Validate Virtuoso SaaS"@en ;
    schema1:step bkp:bkpStep1,
        bkp:bkpStep10,
        bkp:bkpStep11,
        bkp:bkpStep12,
        bkp:bkpStep13,
        bkp:bkpStep14,
        bkp:bkpStep15,
        bkp:bkpStep16,
        bkp:bkpStep17,
        bkp:bkpStep18,
        bkp:bkpStep19,
        bkp:bkpStep2,
        bkp:bkpStep20,
        bkp:bkpStep21,
        bkp:bkpStep22,
        bkp:bkpStep23,
        bkp:bkpStep24,
        bkp:bkpStep25,
        bkp:bkpStep26,
        bkp:bkpStep27,
        bkp:bkpStep3,
        bkp:bkpStep4,
        bkp:bkpStep5,
        bkp:bkpStep6,
        bkp:bkpStep7,
        bkp:bkpStep8,
        bkp:bkpStep9 .

:overviewSection a schema1:CreativeWork ;
    schema1:hasPart bkp:backupBeforeStart,
        bkp:backupChainConcept,
        bkp:backupRequestRestore,
        bkp:backupRestoreHowto,
        bkp:backupRunOnline,
        bkp:backupScope,
        bkp:backupValidate,
        bkp:backupVerify,
        bkp:restoreRequestConcept,
        bkp:sellerAdminRestoreConcept,
        :artAwsPage,
        :artBackupGuide,
        :artGuide,
        :audienceBuilder,
        :audienceEvaluator,
        :audienceExistingCustomer,
        :buyerPortal,
        :guideBeforePurchase,
        :guideBilling,
        :guideConnect,
        :guideDailyOps,
        :guidePortalSetup,
        :guideProvisioning,
        :guidePurchase,
        :marketplaceOffer,
        :runbookBackupRestore,
        :runbookShellAccess,
        :starterQuery,
        :tenantInstance,
        :virtuosoSaasSingleServer ;
    schema1:isPartOf :article ;
    schema1:name "Overview: who this is for, and what you are buying"@en .

:glossaryTermSet a schema1:DefinedTermSet ;
    schema1:description "Nineteen defined terms — document-local fragments, except SPARQL and SQL, whose verified DBpedia resources are the primary subjects. Five terms come from the companion Backup and Restore Guide and live under its bkp: namespace."@en ;
    schema1:hasDefinedTerm dbr:SPARQL,
        dbr:SQL,
        bkp:termBackupChain,
        bkp:termDurableS3Prefix,
        bkp:termIncrementalBackup,
        bkp:termRollbackCopy,
        bkp:termSellerAdminRestore,
        :termAgreement,
        :termAllowedCidr,
        :termAutoRenewal,
        :termBuyerPortal,
        :termConductor,
        :termDba,
        :termEcsExec,
        :termMeteredOverage,
        :termOnlineBackup,
        :termSetupContext,
        :termTenantInstance,
        :termTlsSql ;
    schema1:isPartOf :article,
        :glossarySection ;
    schema1:name "Glossary: the buyer guide’s vocabulary"@en .

:faqSection a schema1:CreativeWork ;
    schema1:isPartOf :article ;
    schema1:mainEntity bkp:backupFaq1,
        bkp:backupFaq2,
        bkp:backupFaq3,
        bkp:backupFaq4,
        :faq01,
        :faq02,
        :faq03,
        :faq04,
        :faq05,
        :faq06,
        :faq07,
        :faq08,
        :faq09,
        :faq10,
        :faq11,
        :faq12,
        :faq13,
        :faq14,
        :faq15,
        :faq16 ;
    schema1:name "FAQ"@en .

:article a schema1:CreativeWork ;
    schema1:about :buyerGuideOntology ;
    schema1:abstract "One Virtuoso server, bought the modern way. You sign a 12-, 24-, or 36-month contract on AWS Marketplace. You choose exactly one plan, and you pay metered overages on top. Then you open a buyer-portal account, wait while your tenant is provisioned until it reads running and healthy, and walk in through one of three doors: Conductor in your browser, SPARQL over HTTPS, or SQL over TLS on port 1112 — a door that stays shut until you name the addresses allowed through it. This page tells the whole story in plain words. It carries a sidebar checked against the live Marketplace page, and it opens with the reader the offer was written for: you arrive with proof, not curiosity. Meshed into it is the companion backup and restore guide: how to run an online backup while the server stays up, and how a restore is requested, authorized, and kept under OpenLink’s control."@en ;
    schema1:accountablePerson <https://www.linkedin.com/in/kidehen#this> ;
    schema1:author <https://www.linkedin.com/in/kidehen#this> ;
    schema1:citation <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602> ;
    schema1:hasPart dbr:SPARQL,
        dbr:SQL,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-backup-and-restore-guide/6602>,
        bkp:backupAns1,
        bkp:backupAns2,
        bkp:backupAns3,
        bkp:backupAns4,
        bkp:backupBeforeStart,
        bkp:backupChainConcept,
        bkp:backupFaq1,
        bkp:backupFaq2,
        bkp:backupFaq3,
        bkp:backupFaq4,
        bkp:backupRequestRestore,
        bkp:backupRestoreHowto,
        bkp:backupRunOnline,
        bkp:backupScope,
        bkp:backupValidate,
        bkp:backupVerify,
        bkp:bkpStep1,
        bkp:bkpStep10,
        bkp:bkpStep11,
        bkp:bkpStep12,
        bkp:bkpStep13,
        bkp:bkpStep14,
        bkp:bkpStep15,
        bkp:bkpStep16,
        bkp:bkpStep17,
        bkp:bkpStep18,
        bkp:bkpStep19,
        bkp:bkpStep2,
        bkp:bkpStep20,
        bkp:bkpStep21,
        bkp:bkpStep22,
        bkp:bkpStep23,
        bkp:bkpStep24,
        bkp:bkpStep25,
        bkp:bkpStep26,
        bkp:bkpStep27,
        bkp:bkpStep3,
        bkp:bkpStep4,
        bkp:bkpStep5,
        bkp:bkpStep6,
        bkp:bkpStep7,
        bkp:bkpStep8,
        bkp:bkpStep9,
        bkp:bkpTroubleAwsAccess,
        bkp:bkpTroubleMissingSection,
        bkp:bkpTroubleNoEcsTask,
        bkp:bkpTroubleRecoveryPoint,
        bkp:restoreRequestConcept,
        bkp:sellerAdminRestoreConcept,
        bkp:termBackupChain,
        bkp:termDurableS3Prefix,
        bkp:termIncrementalBackup,
        bkp:termRollbackCopy,
        bkp:termSellerAdminRestore,
        :aboutSection,
        :ans01,
        :ans02,
        :ans03,
        :ans04,
        :ans05,
        :ans06,
        :ans07,
        :ans08,
        :ans09,
        :ans10,
        :ans11,
        :ans12,
        :ans13,
        :ans14,
        :ans15,
        :ans16,
        :artAwsPage,
        :artBackupGuide,
        :artGuide,
        :audienceBuilder,
        :audienceEvaluator,
        :audienceExistingCustomer,
        :awsMarketplaceListing,
        :buyerPortal,
        :checklistItem1,
        :checklistItem2,
        :checklistItem3,
        :checklistItem4,
        :checklistItem5,
        :checklistItem6,
        :checklistItem7,
        :checklistSection,
        :conductor,
        :connectorSection,
        :costDataTransfer,
        :costStorage,
        :faq01,
        :faq02,
        :faq03,
        :faq04,
        :faq05,
        :faq06,
        :faq07,
        :faq08,
        :faq09,
        :faq10,
        :faq11,
        :faq12,
        :faq13,
        :faq14,
        :faq15,
        :faq16,
        :faqSection,
        :glossarySection,
        :glossaryTermSet,
        :guideBeforePurchase,
        :guideBilling,
        :guideConnect,
        :guideDailyOps,
        :guidePortalSetup,
        :guideProvisioning,
        :guidePurchase,
        :howtoSection,
        :isqlCommand,
        :kgExplorerSection,
        :kgGeneratorSkill,
        :marketplaceOffer,
        :marketplaceSubscriptions,
        :museSparkAgent,
        :onboardingChecklist,
        :openLinkLogo,
        :overviewSection,
        :rdfInfographicSkill,
        :runbookBackupRestore,
        :runbookShellAccess,
        :sidebarSection,
        :sparqlEndpoint,
        :sparqlWorkbenchSection,
        :starterQuery,
        :statusOutput,
        :step1,
        :step10,
        :step11,
        :step12,
        :step13,
        :step14,
        :step15,
        :step16,
        :step17,
        :step18,
        :step19,
        :step2,
        :step20,
        :step3,
        :step4,
        :step5,
        :step6,
        :step7,
        :step8,
        :step9,
        :tenantInstance,
        :termAgreement,
        :termAllowedCidr,
        :termAutoRenewal,
        :termBuyerPortal,
        :termConductor,
        :termDba,
        :termEcsExec,
        :termMeteredOverage,
        :termOnlineBackup,
        :termSetupContext,
        :termTenantInstance,
        :termTlsSql,
        :tlsSqlAccess,
        :troubleExpiredLink,
        :troubleNoInstance,
        :troubleTlsSql,
        :troubleWrongUser,
        :troubleshootingSection,
        :virtuosoSaasSingleServer ;
    schema1:isBasedOn <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600> ;
    schema1:name "One more way to run Virtuoso: subscribe, and leave the running of it to us. — The Virtuoso SaaS Managed Service Buyer Guide"@en ;
    prov:wasGeneratedBy :kgGeneratorSkill,
        :rdfInfographicSkill .

