Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/api/functions/qunova-chemistry.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ Whether or not to use configuration [`recovery`](/docs/api/qiskit-addon-sqd/conf

#### `ansatz_entanglement`
<Attribute attributeTypeHint="`str`" attributeValue="`circular`">
This specifies the entanglement scheme that should be used within the quantum circuit, following common Qiskit and [ffsim conventions for the LUCJ ansatz](https://qiskit-community.github.io/ffsim/how-to-guides/simulate-lucj.html).
This specifies the entanglement scheme that should be used within the quantum circuit, following common Qiskit and [ffsim conventions for the LUCJ ansatz](https://qiskit-community.github.io/ffsim/how-to-guides/qiskit-lucj.html).
- Valid range: Any one of `"linear"`, `"reverse_linear"`, `"pairwise"`, `"circular"`, `"full"`, or `"sca"`. If using the `"lucj"` ansatz, `"lucj_default"` is also an option.
</Attribute>

Expand Down
4 changes: 2 additions & 2 deletions docs/guides/multiverse-computing-singularity.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@
"Perform the following steps:\n",
"\n",
"1) Create the synthetic dataset using the [`make_moons`](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_moons.html) function from [scikit-learn](https://scikit-learn.org/).\n",
"2) Upload the generated synthetic dataset to the [shared data directory](https://qiskit.github.io/qiskit-serverless/getting_started/experimental/manage_data_directory.html).\n",
"2) Upload the generated synthetic dataset to the [shared data directory](https://qiskit.github.io/qiskit-serverless/function_features/experimental/manage_data_directory.html).\n",
"3) Create the quantum-enhanced classifier using the [`create`](/docs/api/functions/multiverse-computing-singularity#create) action.\n",
"4) Enlist your classifiers using the [`list`](/docs/api/functions/multiverse-computing-singularity#list) action.\n",
"5) Train the classifier on the train data using the [`fit`](/docs/api/functions/multiverse-computing-singularity#fit) action.\n",
Expand Down Expand Up @@ -247,7 +247,7 @@
"id": "639f459f",
"metadata": {},
"source": [
"**Step 2.** Save the labeled training and test datasets on your local disk, and then upload them to the [shared data directory](https://qiskit.github.io/qiskit-serverless/getting_started/experimental/manage_data_directory.html)."
"**Step 2.** Save the labeled training and test datasets on your local disk, and then upload them to the [shared data directory](https://qiskit.github.io/qiskit-serverless/function_features/experimental/manage_data_directory.html)."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/responsible-quantum-computing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,5 @@ Finally, as part of our responsible quantum effort, we are committed to fosterin
<Admonition type="tip" title="Learn more">
- [IBM Quantum Safe](https://www.ibm.com/quantum/quantum-safe)
- [Blog: The era of quantum utility must also be the era of responsible quantum computing](https://www.ibm.com/quantum/blog/responsible-quantum)
- [IBM Research Responsible and Inclusive Tech](https://research.ibm.com/projects/responsible-and-inclusive-tech-research)
- [Topic: Responsible Technology (IBM Research)](https://research.ibm.com/topics/responsible-technology)
</Admonition>
2 changes: 1 addition & 1 deletion docs/tutorials/quantum-kernel-training.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@
"source": [
"## Deploy the Qiskit pattern to the cloud\n",
"\n",
"To do this, move the source code above to a file, `./source/generate_kernel_entry.py`, wrap the code in a script which takes inputs returns the final solution, and finally upload it to a remote cluster using the `QiskitFunction` class from `Qiskit Serverless`. For guidance on specifying external dependencies, passing input arguments, and more, check out the [Qiskit Serverless guides](https://qiskit.github.io/qiskit-serverless/getting_started/index.html).\n",
"To do this, move the source code above to a file, `./source/generate_kernel_entry.py`, wrap the code in a script which takes inputs returns the final solution, and finally upload it to a remote cluster using the `QiskitFunction` class from `Qiskit Serverless`. For guidance on specifying external dependencies, passing input arguments, and more, check out the [Qiskit Serverless guides](https://qiskit.github.io/qiskit-serverless/function_features/index.html#function-features).\n",
"\n",
"The input to the Pattern is a pair of data samples, `x1` and `x2`. The output is the fidelity between the two samples. This value will be used to populate the kernel matrix entry corresponding to these two samples."
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ Review the resources listed here to learn more about how IBM Quantum computers a

As part of its decarbonization efforts, E.ON has partnered with IBM to explore the potential of quantum computing to [optimize the world’s increasingly decentralized energy infrastructure](https://www.eon.com/en/about-us/media/press-release/2021/2021-09-02-eon-allies-with-ibm-quantum.html). “You plug in your electric car to charge the battery, and you might have a solar panel that powers your house and car. But can you sell that excess energy to your neighbors down the road? Why do you have to get energy from thousands of kilometers away that was made in the power plant burning gas?” asks Corey O’Meara, E.ON digital technology quantum computing lead (see [“IBM Panel Highlights Quantum Role in Sustainability”](https://www.iotworldtoday.com/smart-cities/ibm-panel-highlights-quantum-role-in-sustainability)). Quantum computing algorithms could hold the key to managing the complexity that results when additional assets are plugged into the grid.

The potential for quantum computing to aid in the discovery of new materials designed to improve the generation, transfer, and storage of energy is one reason why bp is allying with IBM Quantum to [achieve its net-zero goals](https://newsroom.ibm.com/2021-02-15-bp-joins-the-IBM-Quantum-Network-to-advance-use-of-quantum-computing-in-energy).
The potential for quantum computing to aid in the discovery of new materials designed to improve the generation, transfer, and storage of energy is one reason why bp is allying with IBM Quantum to achieve its net-zero goals.

Woodside Energy, an IBM partner, is experimenting with new algorithms to reduce the overhead of data transfers between classical and quantum systems, making it possible to [apply quantum kernels to streaming data](https://arxiv.org/abs/2112.08449).

Expand Down
30 changes: 30 additions & 0 deletions scripts/js/lib/api/updateLinks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@ function lowerCaseIfMarkdownAnchor(url: string): string {
return `${base}#${newAnchor}`;
}

function hasDefinitionAncestor(node: any): boolean {
let current = node.parent;

while (current) {
if (current.type === "definition") {
return true;
}
current = current.parent;
}

return false;
}

export function normalizeUrl(
url: string,
resultsByName: { [key: string]: HtmlToMdResultWithUrl },
Expand Down Expand Up @@ -210,21 +223,38 @@ export async function updateLinks(
.use(remarkGfm)
.use(remarkMdx)
.use(() => async (tree: Root) => {
function isBracketedLiteralLink(textNode?: { value?: string }) {
if (!textNode?.value) {
return false;
}

const value = textNode.value.trim();
return value.startsWith("[") && value.endsWith("]");
}

visit(tree, "link", (node) => {
const textNode =
node.children?.[0]?.type === "text"
? node.children?.[0]
: undefined;

// ✅ NEW: Skip external links inside reference definitions
if (/^https?:\/\//.test(node.url) && hasDefinitionAncestor(node)) {
return;
}

const relativizedLink = relativizeLink({
url: node.url,
text: textNode?.value,
});

if (relativizedLink) {
node.url = relativizedLink.url;
if (textNode && relativizedLink.text) {
textNode.value = relativizedLink.text;
}
}

node.url = normalizeUrl(node.url, resultsByName, itemNames, kwargs);
});
})
Expand Down
9 changes: 7 additions & 2 deletions scripts/js/lib/links/ExternalLink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,13 @@ export class ExternalLink {
);
}

// We strip anchors.
this.value = linkString.split("#", 2)[0];
// Strip anchors and unescape Markdown-only escapes.
// Markdown allows escaping characters like `_` in link text.
// These escapes are not valid in actual URLs and must be removed
// before performing external validation.
this.value = linkString.split("#", 2)[0].replace(/\\([_*()[\]])/g, "$1");
``;

this.originFiles = new Set(originFiles);
}

Expand Down
28 changes: 28 additions & 0 deletions scripts/js/lib/links/ignores.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ const FORBIDS_OUR_USER_AGENT = [
"https://www.science.org/doi/full/10.1126/science.aad9480",
"https://www.science.org/doi/full/10.1126/science.abq0225",
"https://www.science.org/doi/full/10.1126/science.abq0225#supplementary-materials",
"https://dl.acm.org/doi/abs/10.5555/3179330.3179331",
];

// These links work when last tested in a browser
Expand All @@ -120,14 +121,40 @@ const FETCH_RETURNS_405 = [
"https://forms.cloud.microsoft/e/3Wi9cbjQPK",
"https://forms.office.com/r/zN3hvMTqJ1",
"https://pmc.ncbi.nlm.nih.gov/articles/PMC4878865/",
"https://crates.io/crates/log",
"https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.5.033193",
"https://medium.com/qiskit/improving-a-quantum-compiler-48410d7a7084",
"https://docs.q-ctrl.com/fire-opal/discover/hardware-providers/how-to-migrate-from-performance-management-on-ibm-cloud",
"https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/", // redirects
"https://journals.aps.org/prresearch/pdf/10.1103/PhysRevResearch.5.043117", // Points to a PDF, which the link checker does not seem to like
"https://www.cs.tau.ac.il/\~nogaa/PDFS/r.pdf", // Points to a PDF, which the link checker does not seem to like
"https://www.biorxiv.org/content/early/2024/02/17/2024.01.08.574600.full.pdf", // Points to a PDF, which the link checker does not seem to like
"https://qiskit.github.io/qiskit-serverless/migration/migration_from_qiskit_runtime_programs.html", // broken link in very old API ref release notes for Qiskit Runtime, so ignoring
"https://qureca.com/quantum-initiatives-worldwide", // link works sometimes, and times out other times
"https://www.gao.gov/assets/gao-22-104422.pdf", // Points to a PDF, which the link checker does not seem to like
"https://www.eurekanetwork.org/programmes-and-calls/network-projects/network-projects-applied-quantum-technologies-2025/", // loads a popup, which might be breaking the checker
"https://www.eurekanetwork.org/programmes-and-calls/network-projects/network-projects-applied-quantum-technologies-2025/", // loads a popup, which might be breaking the checker
"https://www.mckinsey.com/capabilities/mckinsey-technology/our-insights/solving-chemistrys-toughest-problems-the-quantum-computing-advantage", // loads a popup, which might be breaking the checker
"http://www.ibm.com/downloads/documents/us-en/131cf87ab63319bf", // PDF
];

// Fetching these links throws an error, but they work in-browser. Not sure why.
const FETCH_FAILS = [
"https://catalog.skills.network/2766",
"https://www.sciencedirect.com/science/article/pii/S0045790622003743",
"https://medium.com/qiskit/the-variational-quantum-eigensolver-43f7718c2747",
"https://pyqml.medium.com/what-problem-does-a-variational-quantum-eigensolver-solve-3b91c47af23b",
"https://mitpress.mit.edu/9780262539531/quantum-computing-for-everyone/",
"https://www.science.org/doi/10.1126/sciadv.adu9991",
"https://www.hpcwire.com/off-the-wire/gordon-bell-prize-awarded-to-ibm-and-leading-university-researchers/",
"https://www.cs.tau.ac.il/~nogaa/PDFS/r.pdf",
"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/quantum-computing-use-cases-are-getting-real-what-you-need-to-know",
"https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/quantum-computing-just-might-save-the-planet",
"https://www.mckinsey.com/industries/chemicals/our-insights/the-next-big-thing-quantum-computings-potential-impact-on-chemicals?cid=eml-web",
"https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-year-of-quantum-from-concept-to-reality-in-2025",
"https://www.eda.gov/funding/programs/regional-technology-and-innovation-hubs", // performed security verification in a popup first, probably what broke it
"https://www.oecd.org/en/publications/a-quantum-technologies-policy-primer_fd1153c3-en.html",
"https://medium.com/qiskit/what-can-a-quantum-computer-actually-do-4daed0691f6b",
// The following link is only accessible through IBM VPN
"https://w3.ibm.com/w3publisher/w3-privacy-notice",
];
Expand Down Expand Up @@ -176,6 +203,7 @@ const ALWAYS_IGNORED_URLS__SHOULD_FIX: string[] = [
// Other links that don't seem to exist any more
"https://www.cs.bham.ac.uk/~xin/papers/published_tec_sep00_constraint.pdf",
"https://www.globaldataquantum.com/en/quantum-portfolio-optimizer/#form",
"https://www.cs.tau.ac.il/\~nogaa/PDFS/r.pdf",
];

export const ALWAYS_IGNORED_URLS = new Set([
Expand Down
Loading