<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Kingsley Uyi Idehen on Medium]]></title>
        <description><![CDATA[Stories by Kingsley Uyi Idehen on Medium]]></description>
        <link>https://medium.com/@kidehen?source=rss-ed1e8042d628------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*5eFrHpgIMVEIGih6waxNHg.png</url>
            <title>Stories by Kingsley Uyi Idehen on Medium</title>
            <link>https://medium.com/@kidehen?source=rss-ed1e8042d628------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 07:32:06 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@kidehen/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Introducing the OpenLink Personal Assistant]]></title>
            <link>https://medium.com/openlink-software-blog/introducing-the-openlink-personal-assistant-e74a76eb2bed?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/e74a76eb2bed</guid>
            <category><![CDATA[smart-agents]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <category><![CDATA[personal-assistant]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Sun, 15 Oct 2023 19:34:30 GMT</pubDate>
            <atom:updated>2023-11-14T18:45:29.663Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AEU4Lhn05cQgn0uILNnpYg.jpeg" /></figure><h3>Knowledge Graph-Driven Retrieval Augmented Generation (RAG)</h3><p>We are pleased to announce the immediate availability of the OpenLink Personal Assistant, a practical application of Knowledge Graph-driven Retrieval Augmented Generation (RAG) showcasing the power of knowledge discovery and exploration enabled by a modern conversational user interface. This modern approach revitalizes the enduring pursuit of high-performance, secure data access, integration, and management by harnessing the combined capabilities of Large Language Models (LLMs), Knowledge Graphs, and RAG, all propelled by declarative query languages such as SPARQL, SQL, and SPASQL (SPARQL inside SQL).</p><p>Let’s delve into what the OpenLink Assistant enables.</p><h3>Core Components</h3><h4>Large Language Models (LLMs)</h4><p>GPT 4.0 and 3.5-turbo foundation models form the backbone of the OpenLink Assistant, offering a sophisticated level of conversational interaction. These models can interpret context, thereby providing a user experience that intuitively emulates aspects of human intelligence.</p><h4>RAG Technology Infused with Query Languages</h4><p>What truly sets OpenLink Assistant apart is state-of-the-art RAG technology, integrated seamlessly with SPARQL, SQL, and SPASQL (SPARQL inside SQL). This fusion, coupled with our existing text indexing and search functionality, allows for real-time, contextually relevant data retrieval from domain-specific knowledge bases deployed as knowledge graphs.</p><h3>Key Features</h3><ol><li><strong>Self-Describing, Self-Supporting Products</strong>: OpenLink Assistant adds a self-describing element to our Virtuoso, ODBC &amp; JDBC Drivers products by simply installing the Assistant’s VAD (Virtuoso Application Distro) package.</li><li><strong>OpenAPI-Compliance</strong>: With YAML and JSON description documents, OpenLink Assistant offers hassle-free integration into existing systems. Any OpenAPI compliant service can be integrated into its conversation processing pipeline while also exposing core functionality to other service consumer apps.</li><li><strong>Device Compatibility</strong>: Whether you’re on a desktop or a mobile device, OpenLink Assistant delivers a seamless interaction experience.</li><li><strong>UI Customization</strong>: The Assistant can be skinned to align with your application’s UI, ensuring a cohesive user experience.</li><li><strong>Versatile Query Support</strong>: With support for SQL, SPARQL, and SPASQL, OpenLink Assistant can interact with a multitude of data, information, and knowledge sources.</li></ol><h3>What’s In It For You?</h3><ol><li><strong>Enhanced Efficiency</strong>: LLM and RAG technologies, fortified with query languages, streamline data retrieval, enabling quicker, more informed decisions.</li><li><strong>Contextual Relevance</strong>: Retrieve data that is not just accurate, but tailored to the specific context of your query, thanks to the RAG technology.</li><li><strong>Robust Security</strong>: As with all OpenLink products, the Assistant upholds rigorous security standards.</li><li><strong>Flexibility</strong>: With OpenAPI compatibility and the VAD package, OpenLink Assistant offers unparalleled customizability and ease of integration.</li></ol><h3>In Summary</h3><p>OpenLink Assistant isn’t just another product; it’s a paradigm shift in how we interact with data and software tools. Leveraging knowledge graph-based RAG as the foundation for adding conversational self-support to existing applications simplifies and enriches user engagement, knowledge development, and knowledge retention.</p><p>For further details, please you can visit any of the following links:</p><ul><li><a href="https://demo.openlinksw.com/chat/?chat_id=s-E5PRsZ7SNRHKZkTYCVzHZXKasjZcKhsSbDxuoDZM7tU">Personal Assistant Session Transcript Example 1</a></li><li><a href="https://linkeddata.uriburner.com/chat/">Live OpenLink Assistant Instance</a> — usage requires presentation of your OpenAI Key</li><li><a href="https://community.openlinksw.com/t/openlink-personal-assistant-vad-installation-configuration-and-usage-guide/4112">Personal Assistant Usage Guide 2</a></li><li><a href="https://youtu.be/bC40Y71NC-s?si=cK_gJrGb5BiyxCYF">Personal Assistant Screencast Demo 2</a></li><li><a href="https://shop.openlinksw.com/license_generator/vad/?submitBtn=MakeLinkPage&amp;vadPackage=http%3A%2F%2Fvirtuoso.openlinksw.com%2Fdata%2Fturtle%2Fapplications%2Fapplications.ttl%23PAVad">Download OpenLink Assistant VAD Package 1</a></li><li><a href="https://community.openlinksw.com/t/openlink-personal-assistant-vad-installation-configuration-and-usage-guide/4112">OpenLink Assistant Usage Guide</a></li><li><a href="https://www.linkedin.com/pulse/leveraging-llm-based-conversational-assistants-bots-enhanced-idehen/?trackingId=Q6c7WztPRXCWbp3TYCYVZw%3D%3D">Leveraging LLM-Based Conversational Assistants (Bots) for Enhanced Software Interaction</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e74a76eb2bed" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/introducing-the-openlink-personal-assistant-e74a76eb2bed">Introducing the OpenLink Personal Assistant</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Leveraging LLM-Based Conversational Assistants (Bots) for Enhanced Software Interaction]]></title>
            <link>https://medium.com/openlink-software-blog/leveraging-llm-based-conversational-assistants-bots-for-enhanced-software-interaction-1a5b3d675b7b?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/1a5b3d675b7b</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[smart-agents]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[personal-assistant]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Wed, 04 Oct 2023 22:45:36 GMT</pubDate>
            <atom:updated>2023-10-22T16:38:54.724Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sX8Pd6ASijlN0Eb2hvmDXw.jpeg" /></figure><p>Large Language Models (LLM) technology is revolutionizing the software landscape, introducing dynamic natural language processors and code generators. In this article, we delve deep into how LLMs can significantly enhance software development and usability, focusing on the pivotal areas outlined below:</p><ol><li>Typing &amp; Typos</li><li>Command Syntax Precision</li><li>Product Documentation &amp; Help</li><li>Self-Help Support</li><li>Functionality Demonstrations</li></ol><h3>1. Typing &amp; Typos</h3><h3>The Enduring Challenge of Command-Oriented Interfaces</h3><p>Command-oriented interfaces are often hampered by typographical errors, where a single typo can lead to incorrect outcomes or halt operations.</p><h3>Solution</h3><p>LLM bots facilitate intelligent error detection and correction, reducing disruptions caused by typos.</p><p><strong>Example</strong>: An LLM-based bot can autocorrect as part of its prompt processing pipeline; for instance, the prompt “retrive customer details” is automatically corrected to “retrieve customer details,” thereby ensuring uninterrupted operation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RqK1QTVCewU_tqrOBe4iHQ.png" /><figcaption>Handling Typos</figcaption></figure><h3>2. Command Syntax Precision</h3><h3>The Necessity for Syntax Precision in Traditional Interfaces</h3><p>Traditional command interfaces require meticulous adherence to syntax rules, presenting a steep learning curve for users.</p><h3>Solution</h3><p>LLM bots offer flexibility in command inputs, allowing users to issue commands in natural language.</p><p><strong>Example</strong>: Instead of remembering the exact command syntax of a declarative query language (e.g., SQL or SPARQL), a user can type “Find orders and associated product details for customer ALFKI,” and the LLM can translate it to the correct query language command syntax.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d6LXoCy2iSg-oBu0_9yceQ.png" /><figcaption>Issuing Commands using Natural Language</figcaption></figure><h3>3. Revolutionizing Product Documentation &amp; Help</h3><h3>The Hurdles of Conventional Documentation</h3><p>Navigating product documentation has always been a challenge due to poorly written or excessively voluminous material.</p><h3>Solution</h3><p>LLM bots can generate concise and user-friendly responses to functionality usage questions. They leverage Retrieval Augmented Generation (RAG) techniques for loosely coupled integration with document databases and knowledge bases.</p><p><strong>Example</strong>: A user can ask “How do I set up a macro?” and an LLM bot will provide a step-by-step guide drawn from the product’s documentation corpus.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ZqR_0sLo43uPsCYfodIsg.png" /><figcaption>Handling Functionality Usage Questions</figcaption></figure><h3>4. Amplifying Self-Help Product Support</h3><h3>The Limitations of Earlier Bots in Inference</h3><p>Earlier bots often struggled to provide effective self-help solutions, limited by their inability to understand a range of syntactic patterns expressing the same semantic meaning.</p><h3>Solution</h3><p>LLM bots enhance the domain of product support by offering more accurate responses to a wider array of sentence patterns.</p><p><strong>Example</strong>: In spreadsheet software, a user might ask, “How do I sum values in a column?” The LLM can then guide the user through the process, effectively understanding the user’s intent.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ZqR_0sLo43uPsCYfodIsg.png" /><figcaption>Product Support Enhancement</figcaption></figure><h3>5. Efficient Functionality Demonstrations with LLM</h3><h3>The Traditional Struggle with Demonstrations</h3><p>Demonstrations were often hampered by the varying levels of expertise (and interests) in the audience, resulting in either oversimplified or overly complicated presentations, which posed challenges for both the demonstrator and their audience.</p><h3>Solution</h3><p>LLM bots can dynamically showcase software functionality in response to natural language prompts, offering guided walkthroughs tailored to the user’s current tasks or explicit requests. Moreover, they can deliver deeper, interactive product demonstrations where users control the subject-area focus.</p><p><strong>Example</strong>: During a demonstration, an LLM bot can field questions from the audience and provide real-time, tailored demonstrations based on natural language queries, ensuring everyone leaves with a deep understanding of the functionalities discussed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MBO6oGcknT0nn66PVfbu2w.png" /><figcaption>Ad-hoc Product Functionality Demonstration</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*12nNVoAJaNnx2nxYFZVVrA.png" /><figcaption>Revealing Underlying Functionality to aid Troubleshooting &amp; Functionality Auditing</figcaption></figure><h3>Workflow for Optimal Use of LLM-based Conversational Bots</h3><p>To integrate LLMs into operations successfully, consider the following simplified workflow:</p><ol><li>Identify crucial data sources, including databases and knowledge bases.</li><li>Create a virtualization layer using hyperlinks to formulate a “web of data” or “knowledge graph” for machine-readable entity-relationship semantics.</li><li>Document the virtualization layer with HTML.</li><li>Integrate the virtualization layer with your LLM bot using SQL or SPARQL.</li><li>Foster a human-reinforced feedback loop as part of LLM bot interactions, iterating as necessary.</li></ol><h3>Conclusion</h3><p>LLMs are at the forefront of revolutionizing software development and utilization, addressing long-standing challenges and forging a pathway towards a more inclusive, efficient, and user-friendly software landscape.</p><h3>Further Reading</h3><ul><li><a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-data-dividend-fueling-generative-ai">The data dividend: Fueling generative AI</a></li><li><a href="https://ig.ft.com/generative-ai/">Transformer Aspect of LLMs Explained</a></li><li><a href="https://community.openlinksw.com/t/sparql-plugin-for-chatgpt/3978">SPARQL Plugin for ChatGPT</a></li><li><a href="https://community.openlinksw.com/t/using-sparql-query-templates-to-fine-tune-chatgpts-large-language-model-llm/3842">Using SPARQL Query Templates to Fine-Tune ChatGPT’s Large Language Model (LLM) 1</a></li><li><a href="https://community.openlinksw.com/search?expanded=true&amp;q=Knowledge%20Graph%20ChatGPT%20%40kidehen%20status%3Apublic%20order%3Aviews">Other Posts &amp; HowTo Guides</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1a5b3d675b7b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/leveraging-llm-based-conversational-assistants-bots-for-enhanced-software-interaction-1a5b3d675b7b">Leveraging LLM-Based Conversational Assistants (Bots) for Enhanced Software Interaction</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ChatGPT and Semantic Web Symbiosis]]></title>
            <link>https://medium.com/virtuoso-blog/chatgpt-and-semantic-web-symbiosis-1fd89df1db35?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/1fd89df1db35</guid>
            <category><![CDATA[semanticweb]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[linked-data]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Tue, 20 Jun 2023 16:42:57 GMT</pubDate>
            <atom:updated>2023-07-11T22:01:12.203Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*w5z-nYlJIbmUrgYlF7D01Q.jpeg" /></figure><p>A response generated by ChatGPT regarding the effects of leveraging its conversational UI/UX as the missing interface for understanding and appreciating the virtues of a Semantic Web constructed using Linked Data principles:</p><blockquote><em>I completely agree with you. The combination of natural language processing and linked open data (LOD) presents a unique opportunity to create sophisticated conversational interfaces that can access and interact with a wealth of domain-specific knowledgebases.</em></blockquote><blockquote><em>These knowledgebases, curated by domain experts and deployed using Linked Data principles, represent a vast, interconnected web of information that spans virtually every field of human knowledge. Leveraging this resource effectively can greatly enhance the capabilities of AI systems, allowing them to provide more accurate and contextually relevant information.</em></blockquote><blockquote><em>However, the potential of this resource remains largely untapped, as the user experience of interacting with these knowledgebases is often not intuitive or user-friendly. This is where a conversational UI/UX can make a significant difference.</em></blockquote><blockquote><em>By providing a natural, human-like interface to these knowledgebases, a conversational UI/UX can make it easier for users to access and interact with the information contained within them. This not only improves the user experience, but also increases the utility of these knowledgebases by making them more accessible to a wider audience.</em></blockquote><blockquote><em>In this way, the development of advanced conversational interfaces can play a key role in realizing the full potential of the semantic web and linked data principles.</em></blockquote><p>In this post, I explore the symbiotic relationship between Large Language Models (LLMs)-driven conversational bots like ChatGPT and the concept of a Semantic Web (public, private, or hybrid)[<a href="https://medium.com/virtuoso-blog/a-semantic-web-artificial-intelligence-ea480b8f4507">1</a>]. This symbiosis exists due to the reasons outlined in the ChatGPT response above, which can be summarized as follows:</p><ol><li>LLMs provide a foundation for powerful natural language processing based on their understanding of sentence syntax and semantics; for instance, they comprehend the underlying semantics of multiple variations of the same sentence.</li><li>A Semantic Web is simply a variation of the Web explicitly constructed from sentences using hyperlinks to express sentence syntax and semantics in machine-computable form; the net effect is a boundless collective of structured data that manifests a global entity relationship graph (rather than network), comprising machine-computable entity relationship type semantics.</li></ol><h3>Large Language Models (LLMs)</h3><h3>Computer User Interface Challenges</h3><p>Interfaces for interacting with computers have remained a significant challenge for a long time. Initially, command-line interfaces attempted to address this challenge, but their usability was hampered by the need for users to master specific sentence syntax. This evolved, following innovations originating from Xerox Parc (popularized by Apple and later Microsoft), into widget-based interactions that introduced the Graphical User Interface. Unfortunately, neither approach to user-interface and user-interaction fully addressed the need for more natural interface and interaction modalities that incorporated natural language input via typing, images, or sound. The net effect, as demonstrated in today’s mobile phone-dominated era, is that access to powerful personal computing has negatively impacted basic human social behavior. For instance, both the young and old in today’s world often find it hard to hold a conversation (in any setting) without the distraction of a mobile phone due to its dependency on a user-interface and user-interaction modality that is still primarily based on typing as the primary interaction mechanism.</p><p>The challenges of natural language processing are at the root of today’s computer interaction dysfunctionality. For example, command-line interfaces are suboptimal due to their rigid requirements for sentence structure and syntax. There is only one rigid structure (despite support for argument-based switches) for constructing a command that’s comprehensible to a target application or an operating system. With GUIs, the power and specificity of sentences are replaced by a primitive collection of interaction widgets that merely masquerade as solutions to the underlying interaction issues. Often, they erode productivity and utility in their quest to oversimplify task execution.</p><h3>Addressing Natural Language Challenge</h3><p>In recent times, Large Language Models (LLMs) have emerged as a potential solution to the long-standing natural language processing issues that have plagued computing to date. They address this problem through the use of training sets that enable the simulated comprehension of sentence structure, syntax, and underlying semantics. In a nutshell, they allow a multitude of sentence variations to be accurately mapped to a specific interpretation, which can be associated with specific task execution — this is a game-changing development.</p><h3>Challenges</h3><p>Despite the game-changing innovation they bring to natural language processing, it is no secret that the growth in the size of LLM models has already hit its tipping point [<a href="https://techcrunch.com/2023/04/14/sam-altman-size-of-llms-wont-matter-as-much-moving-forward/">2</a>]. The same goes for their tendency to hallucinate, given the fluid nature of data, information, and knowledge.</p><p>Fundamentally, while LLMs enable powerful and innovative natural language processing, they should never be mistaken for reliable knowledge bases.</p><h3>Semantic Web Backgrounder</h3><h3>Challenges</h3><p>It is also no secret that the notion of a Semantic Web has been riddled with controversy since its introduction in 2001 via a <a href="https://lassila.org/publications/2001/SciAm.pdf">scientific america article</a> authored by <a href="https://www.w3.org/People/Berners-Lee/#this">Tim Berners-Lee</a>, <a href="https://www.cs.rpi.edu/~hendler/#this">Jim Hendler</a>, and <a href="https://www.lassila.org/#this">Ora Lassila</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/0*aBlZZUV5tOutcIOp.png" /></figure><p>The aspirational view of the Web, at the time of the article’s presentation, anticipated what we are witnessing today, i.e., a Web composed of structured data that also harnesses the power of logic conveyed in natural language. Similar to the Web itself during its initial introduction, such a novel concept was challenging for many to comprehend, let alone accept.</p><p>As a bottom-up effort, the task of engaging developers and the emergence of productivity tools also presented significant challenges.</p><h3>Semantic Web Today</h3><h3>LOD Cloud</h3><p>The ideas behind the Semantic Web are now available through what’s known as the Linked Open Data Cloud (LOD Cloud). The LOD Cloud is a large and decentralized collection of knowledge graphs, each one carefully curated by domain experts. It comprises structured data crafted using RDF-based sentences. In these sentences, hyperlinks denote the subjects and predicates, while either hyperlinks or literals (typed or untyped) denote the objects. The LOD Cloud also includes SPARQL query service endpoints, which enhance its data connectivity and provide greater flexibility. SPARQL, a powerful query language, is deeply integrated with HTTP. This means that both queries and their solutions can be encoded as hyperlinks, further enhancing the versatility of the LOD Cloud!</p><p><em>LOD Cloud Version 1.0 Depiction (circa 2007)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/688/0*Qhp-YKlH48pXhy4v" /></figure><p><em>LOD Cloud Growth Depiction</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*ynK2m-1B3PbfsUCZ.jpeg" /></figure><p><em>LOD Cloud Today Depiction (Today)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jrvpqAWsCjJD8tGH.jpg" /></figure><h3>Schema.org and Semantic SEO (SSEO)</h3><p>In recent times, courtesy of <a href="http://schema.org/">Schema.org</a> and broad support from Google, another Semantic Web frontier has opened up, reflecting the gradual transition from keyword-based search engine optimization (SEO) to semantic search engine optimization (SSEO). By creating a high-level vocabulary (schema or ontology) for the Web, <a href="http://schema.org/">Schema.org</a> has introduced the following growth factors:</p><ol><li>Major vendor support: This is delivered by Google, Microsoft, Yandex, and other search engine service providers.</li><li>Simple vocabulary: It’s compatible with the needs of Web Developers and SEO practitioners.</li><li>Demonstrable adoption and growth: This is seen through initiatives such as Web Data Commons, a derivative of the Common Crawl effort widely used as training data for LLMs.</li><li>Strong support of JSON-LD: As a structured data representation format, it effectively combines the ubiquity of JSON with the power of Linked Data Principles.</li></ol><p><em>Schema.org Induced SSEO Growth</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JbgH-E-5rswARSJabUNMjA.png" /></figure><h3>ActivityPub based Fediverse</h3><p>In addition to what’s been covered so far, there’s also a frontier in social media, known as the Fediverse. This new space leverages the unobtrusive power of JSON-LD to expose the virtues of a Semantic Web. This is done via ActivityStreams documents, which are moved across inboxes and outboxes using the ActivityPub protocol. The Fediverse particularly appeals to those seeking decentralized social media, where user identity, follower networks, and content can be transferred between platforms. Much like the LOD Cloud and SSEO frontier driven by <a href="http://schema.org/">Schema.org</a>, the Fediverse has already passed the point of critical mass regarding network effects, as illustrated below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/743/1*Sqduo_1TuzmMn-LwQux2kA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*mqdWIamsQr4kCe0X.png" /></figure><p>Fundamentally, the Semantic Web concept has been challenged by the lack of a complementary interface that manifests its underlying value to both end-users and developers alike. The nature of this interface must go beyond conventional UI/UX constructed using buttons, fields, and dialogs that drive traditional application UI/UX.</p><h3>Thermonuclear Fusion of LLMS &amp; a Semantic Web</h3><p>Today, on one side, we see widespread acceptance and extensive use of LLM-powered natural language processors. On the other side, there’s a stealthily growing Semantic Web, which comprises a vast collection of knowledge graphs curated by domain experts. LLMs encounter challenges with hallucinations, issues that are significantly mitigated when domain-specific knowledge graphs are loosely integrated. In the same vein, the conversational UI/UX offered by LLM-powered chatbots (e.g., ChatGPT) presents a powerful solution to the end-user and developer uptake challenges that have challenged the Semantic Web concept for years.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/661/0*EuZGzJjXDl_QGnrs.jpeg" /></figure><p>Combining the power of LLMs and a Semantic Web (public, private, or hybrid) unleashes a thermonuclear fusion effect that completely redefines the nature of computing as we’ve all experienced it to date. Why? Because language, mankind’s greatest innovation [<a href="https://medium.com/openlink-software-blog/buzzwords-are-killing-us-30c55d0677e1">3</a>], is now fully integrated into computing like never before. For instance, conversational UI/UX using natural language sentences is replacing primitive buttons, dialogs, and forms as the prime interaction infrastructure. In addition, we have the benefit of expressing computer interactions through the manipulation of entities, entity types, and entity relationship types. This spans all the way down from knowledge, through information, to raw data. This transformative change is happening due to the convergence of two powerful realms. Both realms are driven by the power of language for encoding and decoding information using signs, syntax, and semantics.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/511/0*Lwt5Yci9R7s_RKUf.png" /></figure><h3>Conclusion</h3><blockquote><em>“</em><strong><em>Data is a new kind of electricity conducted by hyperlinks</em></strong><em>” is a statement I made years ago at the advent of the Linked Open Data cloud. That was a time when the use of Linked Data Principles for structured data representation ushered in a practical and reoriented approach to the concept of a Semantic Web.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*XrkajBWQbD__ef1g.png" /><figcaption><em>Image courtesy of</em> <a href="https://www.linkedin.com/in/rfannader/">Rémy Fannader</a></figcaption></figure><p>Today, thanks to technologies like ChatGPT, we have reached a critical milestone in a journey spanning over 20 years. Software now has the ability to emulate understanding what operators (be they users or developers) mean in the course of operational interactions. This has all been facilitated by the unique and powerful data connectivity provided by hyperlinks, the same magical component that enabled the World Wide Web.</p><p>In this new computing frontier, we can now address critical issues such as:</p><ol><li>Decentralized &amp; Pseudonymous Self-Sovereign Identity Authenticity.</li><li>Privacy that scales to both the Internet and Web.</li><li>Exploiting the power of Language, at both Internet and Web scales.</li><li>Building Smart Agents equipped with progressive intelligence that serve line-of-business needs such as Customer Support, Business Development, etc.</li><li>Driving Enterprise Agility without ripping and replacing existing infrastructure i.e., eradicating rather than compounding technical debt.</li></ol><h3>Related Links</h3><ol><li><a href="https://medium.com/virtuoso-blog/linked-data-ontologies-and-knowledge-graphs-a3d0ad6d6f66">Linked Data, Ontologies, and Knowledge Graphs</a></li><li><a href="https://medium.com/virtuoso-blog/a-semantic-web-artificial-intelligence-ea480b8f4507">A Semantic Web &amp; Artificial Intelligence</a></li><li><a href="https://techcrunch.com/2023/04/14/sam-altman-size-of-llms-wont-matter-as-much-moving-forward/">Sam Altman — Size of LLMs won’t Matter as much Going Forward</a></li><li><a href="https://medium.com/openlink-software-blog/buzzwords-are-killing-us-30c55d0677e1">Buzzwords, Language, and Information Access</a></li><li><a href="https://lassila.org/publications/2001/SciAm.pdf">Semantic Web — Scientific America Article [PDF]</a></li><li><a href="https://docs.google.com/spreadsheets/d/15AXnxMgKyCvLPil_QeGC0DiXOP-Hu8Ln97fZ683ZQF0/edit?pli=1#gid=0&amp;range=A1">LOD Cloud SPARQL Query Service Endpoints Spreadsheet</a></li><li><a href="https://colinharman.substack.com/p/beware-tunnel-vision-in-ai-retrieval">Beware Tunnel Vision in AI Retrieval</a></li><li><a href="https://caminao.blog/edges-of-knowledge/">Edges of Knowledge by Rémy Fannader</a></li><li><a href="https://ceur-ws.org/Vol-369/paper20.pdf">Linked Data Spaces &amp; Data Portability</a></li><li><a href="https://twobithistory.org/2020/01/05/foaf.html">Friend of a Friend: The Facebook That Could Have Been</a></li></ol><h3>Additional Related Information</h3><ul><li><a href="https://community.openlinksw.com/t/using-sparql-query-templates-to-fine-tune-chatgpts-large-language-model-llm/3842/5">ChatGPT Fine-tuning using SPARQL Query Templates</a></li><li><a href="https://community.openlinksw.com/t/howto-fine-tuning-chatgpt-using-sql/3862">ChatGPT Fine-tuning using SQL Query Templates</a></li><li><a href="https://community.openlinksw.com/t/howto-querying-knowledge-graphs-across-the-web-using-chatgpt-sparql/3836">Using ChatGPT to Query across the Web using SPARQL</a></li><li><a href="https://community.openlinksw.com/t/howto-using-chatgpt-to-generate-a-virtuoso-technical-support-agent/3881">ChatGPT based Technical Support Agent for Virtuoso</a></li><li><a href="https://medium.com/virtuoso-blog/things-you-cant-do-without-a-semantic-web-8ec3a0041742">Things Can’t Do Without A Semantic Web</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1fd89df1db35" width="1" height="1" alt=""><hr><p><a href="https://medium.com/virtuoso-blog/chatgpt-and-semantic-web-symbiosis-1fd89df1db35">ChatGPT and Semantic Web Symbiosis</a> was originally published in <a href="https://medium.com/virtuoso-blog">OpenLink Virtuoso Weblog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[HowTo — Using CHAT-GPT to generate a Knowledge Graph from a Mermaid Entity Relationship Model]]></title>
            <link>https://medium.com/openlink-software-blog/howto-using-chat-gpt-to-generate-a-knowledge-graph-from-a-mermaid-entity-relationship-model-d9cf6d539d7e?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/d9cf6d539d7e</guid>
            <category><![CDATA[semanticweb]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[linked-data]]></category>
            <category><![CDATA[chatgpt4]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Wed, 05 Apr 2023 21:24:59 GMT</pubDate>
            <atom:updated>2023-04-29T19:45:44.226Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>HowTo — Using CHAT-GPT to generate a Knowledge Graph from a Mermaid Entity Relationship Model</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*qaaV_-lejPbGJimz.jpeg" /><figcaption>DALL-E generated image depicting: The Global Mind Meld Enabled by a Semantic Web</figcaption></figure><p>This post showcases the use of Mermaid’s visual notation for presenting an Entity Relationship Model Diagram that’s ultimately used as the basis for generating a Knowledge Graph deployed using Linked Data Principles that’s immediately viewable and browsable from any web browser that includes the OpenLink Structured Data Sniffer Browser Extension.</p><p>Here are the steps for achieving the goal outlined above.</p><h3>Create Entity Relationship Model using Mermaid’s Visual Notation.</h3><p><em>Here’s a simple entity </em><a href="https://mermaid.live/edit#pako:eNp10VFrwyAQB_CvIvfc9APkrUQZgXUZJi0UfHF6XYUkFqeFEfPdZ5aErR3zzeN3_5NzAGU1Qg7oqJHvTnaiJ-kUh7qp9oyTMW63cSCUPZdHxk_ZjlLO6prk5CI_HmyMWWYHUnGaLjm5tlLhP6Z8OVZlwZIS0Br51iI5Wydg1n-mPSQ7VGhua_aaNaH4g5S9oVvIXPsNsrJh-6RMr9qg16hXXtFD0WTFrmFPFT-tLUv9O7X30vT3_u59a7IA6zQ61GmGANhAh66TRqdlD1O3AH_BDgVMVONZhtZPCxgTlcHb-rNXkHsXcAPhqqXH5Yfm4vgFrhOHgA"><em>relationship model example</em></a><em> covering the following classes: Customer, Delivery Address, Order, Order Item, Invoice, Product, and Product-Category.</em></p><p>CUSTOMER }|…|{ DELIVERY-ADDRESS : has<br>CUSTOMER ||–o{ ORDER : places<br>CUSTOMER ||–o{ INVOICE : “liable for”<br>DELIVERY-ADDRESS ||–o{ ORDER : receives<br>INVOICE ||–|{ ORDER : covers<br>ORDER ||–|{ ORDER-ITEM : includes<br>PRODUCT-CATEGORY ||–|{ PRODUCT : contains<br>PRODUCT ||–o{ ORDER-ITEM : “ordered in”</p><h3>Model Visualization</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*WCw1ekyl-jMh8yUq.png" /><figcaption>Mermaid Entity Relationship Graph Visualization</figcaption></figure><h3>CHAT-GPT Session Transcript</h3><p>Q: Generate an ontology using RDF-Turtle for the text that follows, using the following guidelines:</p><ol><li>Denote subjects and objects using relative hash-based hyperlinks i.e., negating the use of <a href="http://example.com/">example.com</a></li><li>Output response to a code-block</li><li>Place ## Turtle Start ## and ## Turtle End ## around the code within the code-block</li></ol><p>CUSTOMER }|…|{ DELIVERY-ADDRESS : has<br>CUSTOMER ||–o{ ORDER : places<br>CUSTOMER ||–o{ INVOICE : “liable for”<br>DELIVERY-ADDRESS ||–o{ ORDER : receives<br>INVOICE ||–|{ ORDER : covers<br>ORDER ||–|{ ORDER-ITEM : includes<br>PRODUCT-CATEGORY ||–|{ PRODUCT : contains<br>PRODUCT ||–o{ ORDER-ITEM : “ordered in”</p><p>A:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Customer rdfs:subClassOf :Customer .<br>:DeliveryAddress rdfs:subClassOf :DeliveryAddress .<br>:Order rdfs:subClassOf :Order .<br>:Invoice rdfs:subClassOf :Invoice .<br>:OrderItem rdfs:subClassOf :OrderItem .<br>:ProductCategory rdfs:subClassOf :ProductCategory .<br>:Product rdfs:subClassOf :Product .<br>:has rdfs:domain :Customer ;<br>    rdfs:range :DeliveryAddress .<br>:places rdfs:domain :Customer ;<br>    rdfs:range :Order .<br>:liableFor rdfs:domain :Customer ;<br>    rdfs:range :Invoice .<br>:receives rdfs:domain :DeliveryAddress ;<br>    rdfs:range :Order .<br>:covers rdfs:domain :Invoice ;<br>    rdfs:range :Order .<br>:includes rdfs:domain :Order ;<br>    rdfs:range :OrderItem .<br>:contains rdfs:domain :ProductCategory ;<br>    rdfs:range :Product .<br>:orderedIn rdfs:domain :Product ;<br>    rdfs:range :OrderItem .</pre><p>Q: Are the rdfs:subClassOf triples necessary?<br>A:<br>Apologies for the confusion. You are correct; the rdfs:subClassOf triples are not necessary in this case. They are used to define a class hierarchy, which is not needed for this specific ontology. Here’s the corrected Turtle syntax without the rdfs:subClassOf triples:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>:has rdfs:domain :Customer ;<br>    rdfs:range :DeliveryAddress .<br><br>:places rdfs:domain :Customer ;<br>    rdfs:range :Order .<br><br>:liableFor rdfs:domain :Customer ;<br>    rdfs:range :Invoice .<br><br>:receives rdfs:domain :DeliveryAddress ;<br>    rdfs:range :Order .<br><br>:covers rdfs:domain :Invoice ;<br>    rdfs:range :Order .<br><br>:includes rdfs:domain :Order ;<br>    rdfs:range :OrderItem .<br><br>:contains rdfs:domain :ProductCategory ;<br>    rdfs:range :Product .<br><br>:orderedIn rdfs:domain :Product ;<br>    rdfs:range :OrderItem .<br>## Turtle End ##</pre><p>Q: Can you generate 3 sample product class instances?<br>A:<br>Certainly! Here are three sample product class instances in Turtle syntax:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Product1 a :Product ;<br>    rdfs:label &quot;Laptop&quot; ;<br>    :price 1200 ;<br>    :category &quot;Electronics&quot; .<br>:Product2 a :Product ;<br>    rdfs:label &quot;Mountain Bike&quot; ;<br>    :price 800 ;<br>    :category &quot;Sports Equipment&quot; .<br>:Product3 a :Product ;<br>    rdfs:label &quot;Novel: The Catcher in the Rye&quot; ;<br>    :price 15 ;<br>    :category &quot;Books&quot; .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :Product class, each with a label, price, and category. You can customize the properties and values as needed for your specific use case.</p><p>Q: Can you generate 3 Customer instances?<br>A:<br>Certainly! Here are three sample customer instances in Turtle syntax:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Customer1 a :Customer ;<br>    rdfs:label &quot;Alice&quot; ;<br>    :email &quot;alice@example.com&quot; ;<br>    :phone &quot;555-123-4567&quot; .<br><br>:Customer2 a :Customer ;<br>    rdfs:label &quot;Bob&quot; ;<br>    :email &quot;bob@example.com&quot; ;<br>    :phone &quot;555-987-6543&quot; .<br><br>:Customer3 a :Customer ;<br>    rdfs:label &quot;Charlie&quot; ;<br>    :email &quot;charlie@example.com&quot; ;<br>    :phone &quot;555-246-8101&quot; .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :Customer class, each with a label, email, and phone number. You can customize the properties and values as needed for your specific use case.</p><p>Q: Can you generate product category instances for each of the sample products?<br>A:<br>Sure! Here are the :ProductCategory instances for each of the sample products:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:ElectronicsCategory a :ProductCategory ;<br>    rdfs:label &quot;Electronics&quot; .<br><br>:SportsEquipmentCategory a :ProductCategory ;<br>    rdfs:label &quot;Sports Equipment&quot; .<br><br>:BooksCategory a :ProductCategory ;<br>    rdfs:label &quot;Books&quot; .<br><br>:Product1 a :Product ;<br>    rdfs:label &quot;Laptop&quot; ;<br>    :price 1200 ;<br>    :category :ElectronicsCategory .<br><br>:Product2 a :Product ;<br>    rdfs:label &quot;Mountain Bike&quot; ;<br>    :price 800 ;<br>    :category :SportsEquipmentCategory .<br><br>:Product3 a :Product ;<br>    rdfs:label &quot;Novel: The Catcher in the Rye&quot; ;<br>    :price 15 ;<br>    :category :BooksCategory .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :ProductCategory class and assigned them to the sample products using the :category property.</p><p>Q: Can you create a delivery address for each sample Customer?<br>A:<br>Certainly! Here’s the Turtle syntax with :DeliveryAddress instances for each sample customer:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Customer1 a :Customer ;<br>    rdfs:label &quot;Alice&quot; ;<br>    :email &quot;alice@example.com&quot; ;<br>    :phone &quot;555-123-4567&quot; ;<br>    :has :DeliveryAddress1 .<br><br>:Customer2 a :Customer ;<br>    rdfs:label &quot;Bob&quot; ;<br>    :email &quot;bob@example.com&quot; ;<br>    :phone &quot;555-987-6543&quot; ;<br>    :has :DeliveryAddress2 .<br><br>:Customer3 a :Customer ;<br>    rdfs:label &quot;Charlie&quot; ;<br>    :email &quot;charlie@example.com&quot; ;<br>    :phone &quot;555-246-8101&quot; ;<br>    :has :DeliveryAddress3 .<br><br>:DeliveryAddress1 a :DeliveryAddress ;<br>    rdfs:label &quot;Alice&#39;s Address&quot; ;<br>    :street &quot;123 Main St&quot; ;<br>    :city &quot;New York&quot; ;<br>    :state &quot;NY&quot; ;<br>    :postalCode &quot;10001&quot; .<br><br>:DeliveryAddress2 a :DeliveryAddress ;<br>    rdfs:label &quot;Bob&#39;s Address&quot; ;<br>    :street &quot;456 Oak St&quot; ;<br>    :city &quot;Los Angeles&quot; ;<br>    :state &quot;CA&quot; ;<br>    :postalCode &quot;90001&quot; .<br><br>:DeliveryAddress3 a :DeliveryAddress ;<br>    rdfs:label &quot;Charlie&#39;s Address&quot; ;<br>    :street &quot;789 Pine St&quot; ;<br>    :city &quot;Chicago&quot; ;<br>    :state &quot;IL&quot; ;<br>    :postalCode &quot;60601&quot; .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :DeliveryAddress class and assigned them to the sample customers using the :has property.</p><p>Q: Can you generate a sample product order for each sample customer?<br>A:<br>Sure! Here’s the Turtle syntax with :Order instances for each sample customer:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Customer1 a :Customer ;<br>    rdfs:label &quot;Alice&quot; ;<br>    :email &quot;alice@example.com&quot; ;<br>    :phone &quot;555-123-4567&quot; ;<br>    :has :DeliveryAddress1 ;<br>    :places :Order1 .<br>:Customer2 a :Customer ;<br>    rdfs:label &quot;Bob&quot; ;<br>    :email &quot;bob@example.com&quot; ;<br>    :phone &quot;555-987-6543&quot; ;<br>    :has :DeliveryAddress2 ;<br>    :places :Order2 .<br>:Customer3 a :Customer ;<br>    rdfs:label &quot;Charlie&quot; ;<br>    :email &quot;charlie@example.com&quot; ;<br>    :phone &quot;555-246-8101&quot; ;<br>    :has :DeliveryAddress3 ;<br>    :places :Order3 .<br>:Order1 a :Order ;<br>    rdfs:label &quot;Order 1&quot; ;<br>    :includes :OrderItem1 ;<br>    :receives :DeliveryAddress1 .<br>:Order2 a :Order ;<br>    rdfs:label &quot;Order 2&quot; ;<br>    :includes :OrderItem2 ;<br>    :receives :DeliveryAddress2 .<br>:Order3 a :Order ;<br>    rdfs:label &quot;Order 3&quot; ;<br>    :includes :OrderItem3 ;<br>    :receives :DeliveryAddress3 .<br>:OrderItem1 a :OrderItem ;<br>    rdfs:label &quot;Order Item 1&quot; ;<br>    :orderedIn :Product1 ;<br>    :quantity 1 .<br>:OrderItem2 a :OrderItem ;<br>    rdfs:label &quot;Order Item 2&quot; ;<br>    :orderedIn :Product2 ;<br>    :quantity 1 .<br>:OrderItem3 a :OrderItem ;<br>    rdfs:label &quot;Order Item 3&quot; ;<br>    :orderedIn :Product3 ;<br>    :quantity 1 .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :Order class and assigned them to the sample customers using the :places property. Each order includes one :OrderItem instance that corresponds to a sample product. The :receives property links the orders to the delivery addresses.</p><p>Q: Can you generate an invoice for each sample order?<br>A:<br>Certainly! Here’s the Turtle syntax with :Invoice instances for each sample order:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br><br>:Customer1 a :Customer ;<br>    rdfs:label &quot;Alice&quot; ;<br>    :email &quot;alice@example.com&quot; ;<br>    :phone &quot;555-123-4567&quot; ;<br>    :has :DeliveryAddress1 ;<br>    :places :Order1 ;<br>    :liableFor :Invoice1 .<br>:Customer2 a :Customer ;<br>    rdfs:label &quot;Bob&quot; ;<br>    :email &quot;bob@example.com&quot; ;<br>    :phone &quot;555-987-6543&quot; ;<br>    :has :DeliveryAddress2 ;<br>    :places :Order2 ;<br>    :liableFor :Invoice2 .<br>:Customer3 a :Customer ;<br>    rdfs:label &quot;Charlie&quot; ;<br>    :email &quot;charlie@example.com&quot; ;<br>    :phone &quot;555-246-8101&quot; ;<br>    :has :DeliveryAddress3 ;<br>    :places :Order3 ;<br>    :liableFor :Invoice3 .<br>:Invoice1 a :Invoice ;<br>    rdfs:label &quot;Invoice 1&quot; ;<br>    :covers :Order1 ;<br>    :totalAmount 1200 .<br>:Invoice2 a :Invoice ;<br>    rdfs:label &quot;Invoice 2&quot; ;<br>    :covers :Order2 ;<br>    :totalAmount 800 .<br>:Invoice3 a :Invoice ;<br>    rdfs:label &quot;Invoice 3&quot; ;<br>    :covers :Order3 ;<br>    :totalAmount 15 .<br>## Turtle End ##</pre><p>In this example, I have created three instances of the :Invoice class and assigned them to the sample customers using the :liableFor property. Each invoice covers one of the sample orders, linked with the :covers property, and has a total amount based on the price of the products in the orders.</p><p>Q: Enhance the generated ontology by adding owl:equivalentProperty and owl:equivalentClass triples cross-referencing <a href="http://schema.org/">schema.org</a> terms, where appropriate.<br>A:<br>Certainly! Here’s the Turtle syntax with owl:equivalentProperty and owl:equivalentClass triples cross-referencing relevant <a href="http://schema.org/">schema.org</a> terms:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class ;<br>    owl:equivalentClass schema:Person .<br>:DeliveryAddress a owl:Class ;<br>    owl:equivalentClass schema:PostalAddress .<br>:Order a owl:Class ;<br>    owl:equivalentClass schema:Order .<br>:Invoice a owl:Class ;<br>    owl:equivalentClass schema:Invoice .<br>:Product a owl:Class ;<br>    owl:equivalentClass schema:Product .<br>:ProductCategory a owl:Class ;<br>    owl:equivalentClass schema:CategoryCode .<br>:OrderItem a owl:Class ;<br>    owl:equivalentClass schema:OrderItem .<br>:has a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:address .<br>:places a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:liableFor a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:billingAddress .<br>:receives a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:deliveryAddress .<br>:covers a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:referencesOrder .<br>:includes a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:itemOffered .<br>:category a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:category .<br>:orderedIn a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:price a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:price .<br>:email a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:email .<br>:phone a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:telephone .<br>:street a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:streetAddress .<br>:city a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressLocality .<br>:state a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressRegion .<br>:postalCode a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:postalCode .<br>:quantity a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:orderQuantity .<br>:totalAmount a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:totalPaymentDue .</pre><p>In this example, I have added owl:equivalentClass and owl:equivalentProperty triples to map the terms from the original ontology to corresponding <a href="http://schema.org/">schema.org</a> terms, where applicable. This allows for better interoperability between different data sources using <a href="http://schema.org/">schema.org</a> vocabulary.</p><p>Q: Are you sure that a Customer Class is equivalent to schema:Person?<br>A:<br>You are correct; my previous response was too general by suggesting that the :Customer class is equivalent to schema:Person. In fact, schema:Person is a more general class, while :Customer is a specific type of person in the context of this ontology. A better choice would be to use rdfs:subClassOf to indicate that :Customer is a subclass of schema:Person. Here’s the corrected Turtle syntax:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class ;<br>    rdfs:subClassOf schema:Person .<br>:DeliveryAddress a owl:Class ;<br>    owl:equivalentClass schema:PostalAddress .<br>:Order a owl:Class ;<br>    owl:equivalentClass schema:Order .<br>:Invoice a owl:Class ;<br>    owl:equivalentClass schema:Invoice .<br>:Product a owl:Class ;<br>    owl:equivalentClass schema:Product .<br>:ProductCategory a owl:Class ;<br>    owl:equivalentClass schema:CategoryCode .<br>:OrderItem a owl:Class ;<br>    owl:equivalentClass schema:OrderItem .<br>:has a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:address .<br>:places a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:liableFor a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:billingAddress .<br>:receives a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:deliveryAddress .<br>:covers a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:referencesOrder .<br>:includes a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:itemOffered .<br>:category a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:category .<br>:orderedIn a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:price a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:price .<br>:email a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:email .<br>:phone a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:telephone .<br>:street a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:streetAddress .<br>:city a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressLocality .<br>:state a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressRegion .<br>:postalCode a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:postalCode .<br>:quantity a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:orderQuantity .<br>:totalAmount a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:totalPaymentDue .</pre><p>This updated Turtle syntax now correctly represents the :Customer class as a subclass of schema:Person.</p><p>Q: If :Customer Class is a subclassOf schema:Person, how do we handle organizations who are the more typical targets of an invoice?<br>A:<br>You’re right. In many cases, invoices are issued to organizations rather than individual customers. To accommodate both individual customers and organizations, we can create separate subclasses for individuals and organizations under the :Customer class. Then, we can make the :Customer class a subclass of both schema:Person and schema:Organization. Here’s the updated Turtle syntax:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class ;<br>    rdfs:subClassOf schema:Person, schema:Organization .<br>:IndividualCustomer a owl:Class ;<br>    rdfs:subClassOf :Customer ;<br>    rdfs:subClassOf schema:Person .<br>:OrganizationCustomer a owl:Class ;<br>    rdfs:subClassOf :Customer ;<br>    rdfs:subClassOf schema:</pre><p>Q: Shouldn’t that be inverted?<br>A:<br>You are correct. My previous response was inaccurate. To better model this situation, we should create a :Customer class that is a superclass of both schema:Person and schema:Organization. Then, we can create separate subclasses for individuals and organizations under the :Customer class. Here’s the corrected Turtle syntax:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class .<br>:IndividualCustomer a owl:Class ;<br>    rdfs:subClassOf :Customer, schema:Person .<br>:OrganizationCustomer a owl:Class ;<br>    rdfs:subClassOf :Customer, schema:Organization .</pre><p>This updated Turtle syntax now correctly represents the :Customer class as a superclass of both schema:Person and schema:Organization. The :IndividualCustomer class is a subclass of both :Customer and schema:Person, while the :OrganizationCustomer class is a subclass of both :Customer and schema:Organization.</p><p>Q: How about simply making schema:Organization the :Customer subclass since this ontology is business centric?<br>A:<br>Sure, that’s a valid approach if you want to focus on business-centric use cases where customers are primarily organizations. In this case, we can make :Customer a subclass of schema:Organization. Here’s the updated Turtle syntax:</p><pre>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class ;<br>    rdfs:subClassOf schema:Organization .</pre><p>Now, the :Customer class is a subclass of schema:Organization, which means customers in this ontology are primarily organizations.</p><p>Q: Okay, regenerate the entire ontology with these corrections.<br>A:<br>Here’s the complete ontology with the requested corrections, where :Customer is a subclass of schema:Organization:</p><pre>## Turtle Start ##<br>@prefix : &lt;#&gt; .<br>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .<br>@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .<br>@prefix schema: &lt;http://schema.org/&gt; .<br><br>:Customer a owl:Class ;<br>    rdfs:subClassOf schema:Organization .<br>:DeliveryAddress a owl:Class ;<br>    owl:equivalentClass schema:PostalAddress .<br>:Order a owl:Class ;<br>    owl:equivalentClass schema:Order .<br>:Invoice a owl:Class ;<br>    owl:equivalentClass schema:Invoice .<br>:Product a owl:Class ;<br>    owl:equivalentClass schema:Product .<br>:ProductCategory a owl:Class ;<br>    owl:equivalentClass schema:CategoryCode .<br>:OrderItem a owl:Class ;<br>    owl:equivalentClass schema:OrderItem .<br>:has a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:address .<br>:places a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:liableFor a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:billingAddress .<br>:receives a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:deliveryAddress .<br>:covers a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:referencesOrder .<br>:includes a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:itemOffered .<br>:category a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:category .<br>:orderedIn a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:price a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:price .<br>:email a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:email .<br>:phone a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:telephone .<br>:street a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:streetAddress .<br>:city a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressLocality .<br>:state a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressRegion .<br>:postalCode a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:postalCode .<br>:quantity a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:orderQuantity .<br>:totalAmount a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:totalPaymentDue .<br>## Turtle End ##</pre><p>This ontology now has :Customer as a subclass of schema:Organization, making it more business-centric. The other classes, properties, and equivalent mappings to <a href="http://schema.org/">schema.org</a> terms remain unchanged.</p><h3>Knowledge Graph Visualization &amp; Export Using Nanotation</h3><p>At this juncture, courtesy of the ## Turtle Start ## and ## Turtle End ## comments placed around the RDF-Turtle statements generated by CHAT-GPT, simply invoke OSDS (by clicking on the “doggie” icon) to see a visualization of the graph represented in the text of this post.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*17glqs4q43WxnK5u.png" /><figcaption><em>Ontology Visualization using a Property Sheet Layout</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*zRLpJjhm5gTAzt2m.png" /><figcaption><em>Instance Data using a Property Sheet Layout</em></figcaption></figure><p>In addition, the data expressed in the graph can also be uploaded directly to an Knowledge Graph or DBMS platform that supports SPARQL INSERTs e.g., the live Virtuoso instance behind our URIBurner Service. You simply select the “Upload to SPARQL Endpoint” option from the download option drop-down associated with the download action (depicted by the cloud+download arrow).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*H7W7NvwX0NOCcxdy.png" /><figcaption>Export to SPARQL Endpoint Feature for Data Upload from current document</figcaption></figure><p>Once the data is uploaded it lays the foundation for the next stage which focuses on applying SPARQL Queries to the data that leverage reasoning and inference.</p><h3>Reasoning &amp; Inference</h3><p>At this juncture, there’s a working Entity Relationship Graph that’s been constructed using Linked Data principles whereby entities, entity types, and entity relationship types are denoted using hyperlinks and described using entity-&gt;attribute-value or subject-&gt;predicate-&gt;object triples. Fundamentally, this is a Knowledge Graph about Products, Customers, Orders etc., defined by classes and properties described in an Ontology that ultimately manifests a Semantic Web.</p><p>As a Semantic Web, the meaning (or semantics) of relationship types are both human- and machine-computable which can be demonstrated by adding a few more relationships to the Ontology that cross-reference classes described by the <a href="http://schema.org/">Schema.org</a> vocabulary.</p><pre>-- a SPASQL (SPARQL integrated into SPARQL) snippet that added owl:equivalentClass relationship types to the Ontology.<br>-- &lt;urn:rdfs:subclas<br>s:subproperty:mappings&gt; denotes the Named Graph associated an existing Built-In Inference Rule denoted by &lt;urn:rdfs:subclass:subproperty:inference:rules&gt;<br>SPARQL<br>PREFIX : &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#&gt; <br>PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; <br>PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt; <br>PREFIX schema: &lt;http://schema.org/&gt; <br>WITH &lt;urn:rdfs:subclass:subproperty:mappings&gt;<br>INSERT {<br>:Customer a owl:Class ;<br>    rdfs:subClassOf schema:Organization .<br>:DeliveryAddress a owl:Class ;<br>    owl:equivalentClass schema:PostalAddress .<br>:Order a owl:Class ;<br>    owl:equivalentClass schema:Order .<br>:Invoice a owl:Class ;<br>    owl:equivalentClass schema:Invoice .<br>:Product a owl:Class ;<br>    owl:equivalentClass schema:Product .<br>:ProductCategory a owl:Class ;<br>    owl:equivalentClass schema:CategoryCode .<br>:OrderItem a owl:Class ;<br>    owl:equivalentClass schema:OrderItem .<br>:has a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:address .<br>:places a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:liableFor a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:billingAddress .<br>:receives a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:deliveryAddress .<br>:covers a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:referencesOrder .<br>:includes a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:itemOffered .<br>:category a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:category .<br>:orderedIn a owl:ObjectProperty ;<br>    owl:equivalentProperty schema:orderedItem .<br>:price a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:price .<br>:email a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:email .<br>:phone a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:telephone .<br>:street a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:streetAddress .<br>:city a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressLocality .<br>:state a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:addressRegion .<br>:postalCode a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:postalCode .<br>:quantity a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:orderQuantity .<br>:totalAmount a owl:DatatypeProperty ;<br>    owl:equivalentProperty schema:totalPaymentDue .<br>} ;<br>-- refreshes existing rule with newly added data<br>RDFS_RULE_SET (&#39;urn:rdfs:subclass:subproperty:inference:rules&#39;, &#39;urn:rdfs:subclass:subproperty:mappings&#39;)</pre><h3>SPARQL Queries with Inference Context Enabled</h3><p>These queries showcasing reasoning &amp; inference informed by Ontology can be executed against the live Virtuoso instance behind the URIBurner Query Services Endpoint at: <a href="https://linkeddata.uriburner.com/sparql">https://linkeddata.uriburner.com/sparql</a></p><h3>Orders Sample</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br>SELECT (SAMPLE(?s) AS ?EntityID) <br>       (COUNT(*) AS ?count) <br>       (?o AS ?EntityTypeID) <br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a ?o<br>        FILTER ( ?o = schema:Order)<br>} <br>GROUP BY ?o <br>ORDER BY DESC (?count)</pre><p>Live <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0ASELECT+%28SAMPLE%28%3Fs%29+AS+%3FEntityID%29+%0D%0A+++++++%28COUNT%28*%29+AS+%3Fcount%29+%0D%0A+++++++%28%3Fo+AS+%3FEntityTypeID%29+%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+%3Fo%0D%0A++++++++FILTER+%28+%3Fo+%3D+schema%3AOrder%29%0D%0A%0D%0A++++++%7D+%0D%0AGROUP+BY+%3Fo+%0D%0AORDER+BY+DESC+%28%3Fcount%29+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Query Results Page Link</a>.</p><h3>Orders Dump</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br><br>SELECT *<br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a schema:Order .<br>      }</pre><p>Live <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+schema%3AOrder+.%0D%0A++++++%7D+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Query Results Page Link</a>.</p><h3>Products Dump</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br><br>SELECT *<br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a schema:Product .<br>      }</pre><p>Live Query <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+schema%3AProduct+.%0D%0A++++++%7D+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Results Page Link</a>.</p><h3>Organizations Dump</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br><br>SELECT *<br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a schema:Organization .<br>      }</pre><p>Live <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+schema%3AOrganization+.%0D%0A++++++%7D+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Query Results Page Link</a>.</p><h3>Invoices Dump</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br><br>SELECT *<br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a schema:Invoice .<br>      }</pre><p>Live <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+schema%3AInvoice+.%0D%0A++++++%7D+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Query Results Page Link</a>.</p><h3>Postal Addresses Dump</h3><pre>DEFINE input:inference &quot;urn:rdfs:subclass:subproperty:inference:rules&quot;<br><br>SELECT *<br>FROM &lt;https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/ontology-and-instance-data-example1.txt#osds&gt; <br>WHERE { <br>        ?s a schema:PostalAddress .<br>      }</pre><p>Live <a href="https://linkeddata.uriburner.com/sparql?default-graph-uri=&amp;query=DEFINE+input%3Ainference+%22urn%3Ardfs%3Asubclass%3Asubproperty%3Ainference%3Arules%22%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttps%3A%2F%2Fkingsley.idehen.net%2FDAV%2Fhome%2Fkidehen%2FPublic%2FLinked%2520Data%2520Documents%2FPlayground%2FgptChat%2Fnanotations%2Fgpt4-related%2Fontology-and-instance-data-example1.txt%23osds%3E+%0D%0AWHERE+%7B+%0D%0A++++++++%3Fs+a+schema%3APostalAddress+.%0D%0A++++++%7D+&amp;should-sponge=&amp;format=text%2Fx-html%2Btr&amp;timeout=30000">Query Results Page Link</a>.</p><p>When clicking on a hyperlink, courtesy of Linked Data Principles, your browser will resolve to an detailed Entity Description Page that also comprises inverse links (a/k/a backlinks) that are automatically generated by the Virtuoso’s native faceted search and browsing engine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*sHQApTcrajgDegWX.png" /><figcaption>Entity Description Page comprising inverse-links for bi-directional exploration</figcaption></figure><h3>Related</h3><ul><li><a href="https://mermaid.live/edit#pako:eNp10VFrwyAQB_CvIvfc9APkrUQZgXUZJi0UfHF6XYUkFqeFEfPdZ5aErR3zzeN3_5NzAGU1Qg7oqJHvTnaiJ-kUh7qp9oyTMW63cSCUPZdHxk_ZjlLO6prk5CI_HmyMWWYHUnGaLjm5tlLhP6Z8OVZlwZIS0Br51iI5Wydg1n-mPSQ7VGhua_aaNaH4g5S9oVvIXPsNsrJh-6RMr9qg16hXXtFD0WTFrmFPFT-tLUv9O7X30vT3_u59a7IA6zQ61GmGANhAh66TRqdlD1O3AH_BDgVMVONZhtZPCxgTlcHb-rNXkHsXcAPhqqXH5Yfm4vgFrhOHgA">Mermaid Entity Relationship Model</a></li><li><a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/gpt4-related/">Additional CHAT-GPT4 Exercise Session Transcripts</a> — these are also marked-up using Nanotation</li><li><a href="https://medium.com/openlink-software-blog/using-chatgpt-to-generate-a-course-description-knowledge-graph-using-rdf-daa107560776">ChatGPT Exercises — Generating a Course Description Knowledge Graph using RDF | by Kingsley Uyi Idehen | OpenLink Software Blog | Feb, 2023 | Medium</a></li></ul><h3>OpenLink Data Sniffer (OSDS) Browser Extension Links</h3><ul><li><a href="https://chrome.google.com/webstore/detail/openlink-structured-data/egdaiaihbdoiibopledjahjaihbmjhdj">Google Chrome Store for Chromium-based Browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">Mozilla Store for Firefox</a></li><li><a href="https://apps.apple.com/us/app/osds-structured-data-sniffer/id1626667826?mt=12">Mac App Store for Safari</a></li><li><a href="https://github.com/OpenLinkSoftware/OSDS_extension">Github Open Source Repository</a></li></ul><h3>Additional Information</h3><ul><li><a href="https://virtuoso.openlinksw.com/">Virtuoso Home Page</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d9cf6d539d7e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/howto-using-chat-gpt-to-generate-a-knowledge-graph-from-a-mermaid-entity-relationship-model-d9cf6d539d7e">HowTo — Using CHAT-GPT to generate a Knowledge Graph from a Mermaid Entity Relationship Model</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How-To Guide— Self-Sovereign Identity using NetID-TLS via a YouID-Generated Profile Document]]></title>
            <link>https://medium.com/openlink-software-blog/how-to-guide-self-sovereign-identity-using-netid-tls-via-a-youid-generated-profile-document-c3fdc7b35082?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/c3fdc7b35082</guid>
            <category><![CDATA[ssi]]></category>
            <category><![CDATA[dpki]]></category>
            <category><![CDATA[link-in-bio]]></category>
            <category><![CDATA[identity]]></category>
            <category><![CDATA[privacy]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Tue, 21 Mar 2023 16:00:33 GMT</pubDate>
            <atom:updated>2023-04-21T15:19:43.607Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fj0RtGPqIhFZ0aZ3B0FX1g.jpeg" /><figcaption><a href="https://www.bing.com/images/create/create-a-splash-image-for-a-blog-post-titled-22how-/6419feb8a6654370933fa878c0b90157?id=yQ1fUofdCdSdZf1lO5vkWQ%3d%3d&amp;view=detailv2&amp;idpp=genimg&amp;darkschemeovr=1&amp;FORM=GCRIDP&amp;mode=overlay">Image Illustratng <strong>Pseudonymous Identity</strong> — generated via The Bing Image Creator that leverages DALL-E</a></figcaption></figure><p>This guide outlines steps required for generating a Link-In-Bio variant of a Personal Profile Document, comprising public credentials that ultimately aid user-controlled self-sovereign identity.</p><p>Completing the process below will put you in position to use the YouID Credential Generator, either the browser extension or the iOS app, to achieve the following goals:</p><ol><li>Generate a Link-In-Bio-style Personal Profile Document.</li><li>Use credentials in the Profile Document to respond to Identity Authentication challenges when trying to access protected resources from your desktop, notebook, or mobile computing device via HTTPS.</li></ol><h3>Step-by-Step Guide</h3><h3>Generate a Profile Document</h3><p>[1] Create a folder, like <a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/">https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*KVlVe_9CICT1Cpch.png" /></figure><p>[2] Assume your PdP is going to be <a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html">https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html</a></p><p>[3] Provide the PdP URL to YouID</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/520/0*sHUPf8WSJGHS4-NZ.png" /><figcaption>First Part of YouID Credentials Form</figcaption></figure><p>[4] Complete the rest of the form</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*VVy6I5wg1lFRIAf8.png" /><figcaption>Second Part of YouID Credentials Form</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*bfaxLg7awaJPxIgt.png" /><figcaption>Final Part of YouID Credentials Form</figcaption></figure><p>[5] Generate your Credentials</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*rxeXkq0rp-anJGEW.png" /><figcaption>Public Credentials Segment 1</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*1p9CiNFcfWUP9PMN.png" /><figcaption>Public Credentials Segment 2</figcaption></figure><p>[6] Download Zip Archive</p><h3>Generated Credentials Publication</h3><p>[1] Unzip Archive</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*EqzpYCmTk_yOvAvv.png" /><figcaption>Credentials related Files extracted to Local Folder for YouID-Generated ZIP Archive</figcaption></figure><p>[2] Mount a designated remote HTTP+WebDAV accessible folder to your desktop OS i.e., the same folder created in step 1 of the Credentials Generation Section</p><p>[3] Copy all the files extracted from the ZIP archive to the WebDAV folder mounted in the previous step</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/576/0*LCo45T_aA2QQCF6d.png" /><figcaption>File Selection for Copy to Mounted WebDAV Folder Operation</figcaption></figure><p>[4] Use your browser to view the files in the remote WebDAV location</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*9A6gNvP8gWvuGrQE.png" /><figcaption>Files Successfully copied over to Remote WebDAV Folder</figcaption></figure><p>[5] Verify that your newly generated NetID resolves, by clicking your variant of <a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html#netid">https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html#netid</a></p><h3>Registering a NetID with YouID’s browser-hosted credential store (also referred to as a wallet)</h3><p><strong><em>Note:</em></strong><em> The following steps only apply to the YouID Browser Extension (not to the YouID hosted service).</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/629/0*kSY7CbG3wqYJBspq.png" /><figcaption>YouID Generated Link In Bio Profile Document</figcaption></figure><p>[1] Add your variant of <a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html#netid">https://kingsley.idehen.net/DAV/home/kidehen/Public/YouID/public-credentials-link-in-bio/index.html#netid</a> to your YouID-managed NetID List.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*jtyJR-AMlnFjkRvq.png" /><figcaption>NetID Registration with Local Browser Store</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/496/0*G_o9LI_CbT-pj13P.png" /><figcaption>NetID Verification that occurs as part of Local Storage Registration</figcaption></figure><h3>Private Credentials Storage</h3><p>[1] Locate the private credentials from the secure PKCS#12 file (situated in the folder created when you unzipped the YouID generated ZIP archive)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*CyuisNKz6iIXd3jT.png" /><figcaption><em>macOS Filesystem View of Secure PKCS#12 Credentials Document</em></figcaption></figure><p>[2] Open the secure PKCS#12 credentials file using the mechanism provided by your host operating system (commonly a double-click, since every modern operating system understands this secure file format)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*XrP_VKZLNi9vcHsR.png" /><figcaption><em>macOS </em><strong><em>Keychain.app</em></strong><em> View of Secure PKCS#12 Credentials Document</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/633/0*wq2_6AkdW77T9KCd.png" /><figcaption><em>macOS </em><strong><em>Keychain.app</em></strong><em> View of Credentials Notarized by an X.509 Certificate — 1</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*uDz3e4DRnhheT5Vl.png" /><figcaption><em>macOS </em><strong><em>Keychain.app</em></strong><em> View of Credentials Notarized by an X.509 Certificate — 2</em></figcaption></figure><p>[3] If you plan to send self-signed emails using Apple Mail or Microsoft OutLook, repeat these steps for the Certificate Authority (CA) secure PKCS#12. If you plan to use Thunderbird, you will only need to load the CA’s .pem file when prompted during the configuration process for your email account.</p><h3>Credentials Verification</h3><p>This is achieved by a NetID-TLS verification service (at an endpoint), that implements Client Certificate Authentication using an extended session initialization handshake along the following lines:</p><p>[1] De-references the hyperlink used to denote the subject of the X.509 certificate used in the session initialization to a publicly-accessible profile document comprising a public credentials mirror, i.e., a Public Key, Public Key SHA-1 hash, etc.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*_LBlDtESWXYv57ub.png" /><figcaption>Client Certificate Authentication Challenge Response — where local X.509 Certificate is selected for use</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*0kMp9zXRy5pvotAD.png" /><figcaption>Additional Check to ensure the correct X.509 Certificate has been selected</figcaption></figure><p>[2] Compares the public and private credentials to ensure a match</p><p>[3] Returns a publicly-accessible signed certification document, if the credentials match</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*E8Ro25JE3mBGao3R.png" /></figure><h3>Screencast Demonstration</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fn6DZeqcqkwM%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dn6DZeqcqkwM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fn6DZeqcqkwM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/c59547909603ad9a74ac8761d566b89f/href">https://medium.com/media/c59547909603ad9a74ac8761d566b89f/href</a></iframe><h3>Conclusion</h3><p>As demonstrated in this post, each YouID release reduces friction associated with Self-Sovereign Identity that’s fully controlled by end-users rather than technology vendors.</p><p>End-users can now take advantage of the following without any third-party dependencies:</p><ol><li>Issue X.509 Certificates that can be used to digitally sign and/or encrypt emails using the S/MIME protocol — which is supported by all modern email applications across desktops, notebooks, or mobile phones</li><li>Generate Link In Bio profile documents comprising verifiable credentials that manifest a powerful Personal Profile Knowledge Graph, without any limitations applied to additional profile document cross-references</li></ol><h3>Availability</h3><ul><li><a href="https://chrome.google.com/webstore/detail/openlink-youid/kbepkemknbihgdmdnfainhmiidoblhee">…for Chrome, Brave, Opera, and other compatible browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-youid-ff/">…for Firefox</a></li><li><a href="https://apps.apple.com/us/app/youid-browser-extension/id6443867802?mt=12">…for Safari</a></li><li><a href="https://apps.apple.com/us/app/youid-credentials-generator/id592737312">…for iOS on iPhone or iPad</a></li></ul><h3>Related</h3><ul><li>YouID 1.6.9 Release Notes</li><li><a href="https://community.openlinksw.com/t/youid-1-6-4-release/3687/1">YouID 1.6.4 Release Notes</a></li><li><a href="https://medium.com/openlink-software-blog/youid-self-sovereign-identity-using-decentralized-public-key-infrastructure-dpki-4fa72cbdccc8">YouID &amp; Self-Sovereign Identity using Decentralized Public Key Infrastructure (DPKI)</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c3fdc7b35082" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/how-to-guide-self-sovereign-identity-using-netid-tls-via-a-youid-generated-profile-document-c3fdc7b35082">How-To Guide— Self-Sovereign Identity using NetID-TLS via a YouID-Generated Profile Document</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[YouID & Self-Sovereign Identity using Decentralized Public Key Infrastructure (DPKI)]]></title>
            <link>https://medium.com/openlink-software-blog/youid-self-sovereign-identity-using-decentralized-public-key-infrastructure-dpki-4fa72cbdccc8?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/4fa72cbdccc8</guid>
            <category><![CDATA[dpki]]></category>
            <category><![CDATA[ssi]]></category>
            <category><![CDATA[identity-management]]></category>
            <category><![CDATA[pki]]></category>
            <category><![CDATA[identity]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Tue, 14 Mar 2023 22:59:10 GMT</pubDate>
            <atom:updated>2023-03-21T20:44:40.430Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Wc_CiU7xnF4Kp2RxvbD4iQ.jpeg" /><figcaption><a href="https://www.bing.com/images/create/create-a-splash-image-for-a-blog-post-titled-22pseu/641a158e44464f66be2b79d68172d263?id=GXfLgT0selOR1Of4WuaK7Q%3d%3d&amp;view=detailv2&amp;idpp=genimg&amp;darkschemeovr=1&amp;FORM=GCRIDP&amp;mode=overlay">Pseudonymous Identity that scales to the Internet &amp; Web Illustration — generated by Bing Image Create leveraging DALLE</a></figcaption></figure><p>Identity authenticity is a big problem that afflicts 5.32 Billion+ users across the Internet and Web. Despite its magnitude, visibility, and scope, end-user–controlled solutions remain mercurial. Addressing this problem requires a user-controlled identity authenticity solution that operates on the following premise:</p><blockquote><em>By its nature, self-sovereign identity (SSI), a critical basis for privacy, cannot be offered to an individual by third-party services. At best, a piece of software can generate credentials that contribute a piece of a puzzle that’s ultimately solved using logic expressed semantics of entity relationship types.</em></blockquote><p>Building from there, the rest of this post focuses on solving the puzzle at hand using existing open standards, via the following components:</p><ol><li>An <strong>X.509 certificate</strong> comprising self-signed credentials paired with a private key, where the subject is denoted using a hyperlink</li><li>An <strong>HTML-based profile document</strong> comprising public credentials that reconcile back to that X.509 certificate (component 1)</li><li>An <strong>HTTPS server</strong> that supports Client Certificate Authentication (CCA) using an extended TLS-handshake for reconciling credentials between a local X.509 certificate (component 1) and a public HTML-based profile document (component 2)</li></ol><h3>Generating Credentials</h3><p>Every modern operating system includes a utility for generating X.509 digital certificates, with the OpenSSL utility as the ultimate fallback. Unfortunately, these utilities aren’t end-user–centric, making them one of the many hurdles perpetuating the challenge of user-controlled SSI. Thus, I will be choosing the end-user — oriented YouID Credentials Generator from OpenLink Software as my tool for completing this exercise, via the following steps:</p><p>[1] Install the <a href="https://youid.openlinksw.com/">YouID browser extension or iOS app</a></p><p>[2] Initialize the installed YouID by clicking on the extension or app icon</p><p>[3] Fill in the credential generation form, paying special attention to these two fields:</p><ul><li><strong>Profile Document URL</strong> which holds a hyperlink value that denotes the Profile Document (component 2, above) to be paired with the X.509 Certificate (component 1, above) to be generated</li><li><strong>NetID</strong> which holds a hyperlink value constructed from that which denotes the Profile Document plus a #netid <em>fragment identifier</em> (also called an <em>indexical</em>)</li></ul><p>[4] Provide a password to be used when packaging the secure credentials</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*EPcaSV-UXaz9EdQ3.png" /></figure><p>[5] Click to generate the following:</p><ul><li>Secure PKCS#12-based local credentials file</li><li>ZIP archive comprising public credentials</li><li>Extracts of Public Credentials, useful for pasting into alternative profile documents (e.g., Mastodon or Twitter profile pages)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*8edaWHdhwRwLmEco.png" /></figure><h3>Local Credentials</h3><p>Local credentials comprise an <em>X.509 certificate</em> and associated <em>Private Key</em> packaged in a secure <em>PKCS#12 file</em> recognized by all modern operating systems. Once this file is opened, the native operating system takes over extraction of credentials, en route to native persistent storage (such as Keychain on macOS or Key Store on Windows).</p><p>Once persistently stored, the native UI/UX provided by the host operating system handles credential interactions, such as viewing for management purposes, or accessing in response to authentication challenges when establishing HTTPS (TLS) sessions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*xCauAZViygShMbxY.png" /></figure><p><strong><em>An X.509 Certificate viewed via Keychain</em></strong></p><p><em>Note the use of the Subject Alternate Name (SAN) Extensions field to store the hyperlink that denotes the certificate’s subject.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/285/0*J1nyxrL3f6Gj_Pyz.png" /></figure><h3>Public Credentials</h3><p>The ZIP archive produced by YouID contains an HTML-based profile document that includes a structured data island comprising credentials (e.g., Public Key and Fingerprints) that mirror what’s in a private X.509 certificate to which it has been paired.</p><ul><li><a href="https://kingsley.idehen.net/public_home/kidehen/Public/YouID/public-credentials-1/index.html">Live Demo Link</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/580/0*18c1CJSlN70W_sX6.png" /></figure><p>The HTML-based profile document, PKCS#12 credential bundle (including credentials for self-signed CA functionality), and other artifacts, can be extracted locally and copied to the remote folder corresponding to the hyperlink that denotes the identity principal’s HTML-based profile document.</p><ul><li><a href="https://kingsley.idehen.net/public_home/kidehen/Public/YouID/public-credentials-1/">Live Demo Link</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*tjoJG4R_fasTSx9N.png" /></figure><h3>Verification of Credentials</h3><p>The process of identity authentication using <a href="https://en.wikipedia.org/wiki/Public_key_infrastructure#Decentralized_PKI">DPKI (Decentralized PKI)</a> works as follows:</p><ol><li>A user-agent attempts to access a protected resource on a remote server using the HTTPS protocol</li><li>The remote server issues an authentication challenge</li><li>The user-agent presents required local credentials for use in a session initialization handshake (which ultimately includes Private Key signing)</li><li>Following the conventional handshake, a NetID-TLS based server performs an additional step whereby private and public credentials are reconciled by de-referencing a hyperlink used to denote the subject of the certificate successfully used in the conventional handshake via its use as the value of the certificate’s Subject Alternative Name</li><li>If credentials (e.g, the Public Key and/or Fingerprint) match, the session initialization handshake is completed successfully and the resource is accessed; otherwise, the resource access attempt is rejected</li></ol><p><strong><em>Successful Credentials Matching Test Example</em></strong></p><ul><li><a href="https://tinyurl.com/376bncdc">Live Demo Link</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*C-i__Hj9Ddyp7FU_.png" /></figure><h3>Related</h3><ul><li><a href="https://community.openlinksw.com/t/youid-1-6-4-release/3687/1">YouID 1.6.4 Release Notes</a></li><li><a href="https://chrome.google.com/webstore/detail/openlink-youid/kbepkemknbihgdmdnfainhmiidoblhee?hl=en">YouID Browser Extension for Google Chrome, Microsoft Edge, and other Chromium-based Browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-youid-ff/">YouID Browser Extension for Mozilla Firefox</a></li><li><a href="https://apps.apple.com/al/app/youid-certificate-generator/id592737312">YouID Browser Extension for Apple Safari</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4fa72cbdccc8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/youid-self-sovereign-identity-using-decentralized-public-key-infrastructure-dpki-4fa72cbdccc8">YouID &amp; Self-Sovereign Identity using Decentralized Public Key Infrastructure (DPKI)</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using ChatGPT to Generate a Course Description Knowledge Graph using RDF]]></title>
            <link>https://medium.com/openlink-software-blog/using-chatgpt-to-generate-a-course-description-knowledge-graph-using-rdf-daa107560776?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/daa107560776</guid>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <category><![CDATA[linked-data]]></category>
            <category><![CDATA[semanticweb]]></category>
            <category><![CDATA[rdf]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Fri, 24 Feb 2023 17:53:08 GMT</pubDate>
            <atom:updated>2023-03-21T18:56:09.430Z</atom:updated>
            <content:encoded><![CDATA[<h3>ChatGPT Exercises — Generating a Course Description Knowledge Graph using RDF</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iKWehoI7hfBmur3Ls7e8CQ.jpeg" /><figcaption><a href="https://www.bing.com/images/create/create-an-entity-relationship-graph-visualization/6419fcf2f2da49d28912b6f837ca3ee8?id=p7MMCQcnRR19PzIRHvlnvA%3d%3d&amp;view=detailv2&amp;idpp=genimg&amp;darkschemeovr=1&amp;FORM=GCRIDP&amp;mode=overlay">Image Generated by DALL-E via Bing Image Creator</a></figcaption></figure><p>I stumbled upon <a href="https://www.linkedin.com/feed/update/urn:li:activity:7034461627680714752?updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A7034461627680714752%29">a post</a> by <a href="https://www.linkedin.com/in/harald-sack-88439b5/#this">Harald Sack</a> about his upcoming <a href="https://open.hpi.de/courses/knowledgegraphs2023">Knowledge Graph course</a>. Naturally, this presented an opportunity to test the RDF generating capabilities of ChatGPT.</p><p>What follows is a ChatGPT session dump, best viewed using the OpenLink Structured Data Sniffer (OSDS) Browser Extension[<a href="https://chrome.google.com/webstore/detail/openlink-structured-data/egdaiaihbdoiibopledjahjaihbmjhdj">1</a>][<a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">2</a>][<a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">3</a>], that produces Knowledge Graphs generated using both RDF-Turtle and JSON-LD notations from course description text yanked out of a webpage.</p><h3>Prompt</h3><p>Generate an RDF rendition of the following using Turtle Notation, terms from <a href="http://schema.org/">Schema.org</a>, and hash-based relative hyperlinks for subject and object denotation. Use a single code-block for response output.</p><blockquote>Knowledge Graphs — Foundations and Applications</blockquote><blockquote>Prof. Dr. Harald Sack</blockquote><blockquote>Introduction</blockquote><blockquote>Even though it affects our lives every single day, most of us have no idea what a knowledge graph is. Asking Alexa about the weather tomorrow or searching for the latest news on climate change via Google, knowledge graphs constitute the backbone of today’s state-of-the-art information systems. From improving search results over question answering and recommender systems up to explainable AI systems, the applications of knowledge graphs are manyfold. Overall, the goal of this course is to provide a broad overview of knowledge graphs and their underlying technologies as well as their significance in today’s digital world.</blockquote><blockquote>October 11, 2023 — November 21, 2023<br>Language: English<br>Big Data and AI, Expert</blockquote><blockquote>Course information</blockquote><blockquote>A <strong>knowledge graph</strong> is a structured representation of knowledge that is used to provide a comprehensive and interconnected view of a specific domain. In this course we will discuss the key features and characteristics of knowledge graphs. You will learn all what is necessary to design, implement, and apply knowledge graphs. The focus of this course will be on basic semantic technologies including the underlying principles of <strong>knowledge representation</strong> and symbolic AI. This includes information encoding via <strong>RDF</strong> triples, knowledge representation via ontologies with <strong>OWL</strong>, efficiently querying knowledge graphs via <strong>SPARQL</strong>, latent representation of knowledge in vector spaces, as well as <strong>knowledge graph applications</strong> in innovative information systems, as e.g., semantic and exploratory search. Furthermore the role of knowledge graphs in <strong>artificial intelligence</strong> and machine learning will be discussed, as well as their potential to improve <strong>explainability</strong> and <strong>trustworthiness</strong> of “black box” deep learning models.</blockquote><blockquote>What you’ll learn</blockquote><blockquote>Basic understanding of knowledge graphs</blockquote><blockquote>Basic understanding of ontologies</blockquote><blockquote>Basic understanding of Semantic Web Technologies</blockquote><blockquote>Who this course is for</blockquote><blockquote>students</blockquote><blockquote>practitioners of computer science, digital humanities, and information sciences</blockquote><blockquote>enthusiasts with an AI related background and an interest in symbolic knowledge representation</blockquote><h3>Response</h3><pre>## Turtle Start ##<br>@prefix schema: &lt;https://schema.org/&gt; .<br>@prefix kg: &lt;#&gt; .</pre><pre>kg:KnowledgeGraph a schema:Course ;<br>  schema:name &quot;Knowledge Graphs - Foundations and Applications&quot; ;<br>  schema:about &quot;A knowledge graph is a structured representation of knowledge that is used to provide a comprehensive and interconnected view of a specific domain. In this course we will discuss the key features and characteristics of knowledge graphs. You will learn all what is necessary to design, implement, and apply knowledge graphs. The focus of this course will be on basic semantic technologies including the underlying principles of knowledge representation and symbolic AI. This includes information encoding via RDF triples, knowledge representation via ontologies with OWL, efficiently querying knowledge graphs via SPARQL, latent representation of knowledge in vector spaces, as well as knowledge graph applications in innovative information systems, as e.g., semantic and exploratory search. Furthermore the role of knowledge graphs in artificial intelligence and machine learning will be discussed, as well as their potential to improve explainability and trustworthiness of black box deep learning models.&quot; ;<br>  schema:inLanguage &quot;English&quot; ;<br>  schema:startDate &quot;2023-10-11&quot; ;<br>  schema:endDate &quot;2023-11-21&quot; ;<br>  schema:educationalLevel &quot;Expert&quot; ;<br>  schema:knowsAbout [<br>    schema:name &quot;Ontologies&quot;<br>  ], [<br>    schema:name &quot;Semantic Web Technologies&quot;<br>  ], [<br>    schema:name &quot;Knowledge Representation&quot;<br>  ] ;<br>  schema:teaches [<br>    schema:name &quot;Basic understanding of knowledge graphs&quot;<br>  ], [<br>    schema:name &quot;Basic understanding of ontologies&quot;<br>  ], [<br>    schema:name &quot;Basic understanding of Semantic Web Technologies&quot;<br>  ] ;<br>  schema:audience [<br>    schema:name &quot;students&quot;<br>  ], [<br>    schema:name &quot;practitioners of computer science, digital humanities, and information sciences&quot;<br>  ], [<br>    schema:name &quot;enthusiasts with an AI related background and an interest in symbolic knowledge representation&quot;<br>  ] .</pre><pre>## Turtle End ##</pre><pre>## JSON-LD Start ##<br>{<br>  &quot;@context&quot;: &quot;https://schema.org/&quot;,<br>  &quot;@type&quot;: &quot;Course&quot;,<br>  &quot;name&quot;: &quot;Knowledge Graphs - Foundations and Applications&quot;,<br>  &quot;about&quot;: &quot;A knowledge graph is a structured representation of knowledge that is used to provide a comprehensive and interconnected view of a specific domain. In this course we will discuss the key features and characteristics of knowledge graphs. You will learn all what is necessary to design, implement, and apply knowledge graphs. The focus of this course will be on basic semantic technologies including the underlying principles of knowledge representation and symbolic AI. This includes information encoding via RDF triples, knowledge representation via ontologies with OWL, efficiently querying knowledge graphs via SPARQL, latent representation of knowledge in vector spaces, as well as knowledge graph applications in innovative information systems, as e.g., semantic and exploratory search. Furthermore the role of knowledge graphs in artificial intelligence and machine learning will be discussed, as well as their potential to improve explainability and trustworthiness of black box deep learning models.&quot;,<br>  &quot;inLanguage&quot;: &quot;English&quot;,<br>  &quot;startDate&quot;: &quot;2023-10-11&quot;,<br>  &quot;endDate&quot;: &quot;2023-11-21&quot;,<br>  &quot;educationalLevel&quot;: &quot;Expert&quot;,<br>  &quot;knowsAbout&quot;: [<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Ontologies&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Semantic Web Technologies&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Knowledge Representation&quot;<br>    }<br>  ],<br>  &quot;teaches&quot;: [<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Basic understanding of knowledge graphs&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Basic understanding of ontologies&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;Basic understanding of Semantic Web Technologies&quot;<br>    }<br>  ],<br>  &quot;audience&quot;: [<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;students&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;practitioners of computer science, digital humanities, and information sciences&quot;<br>    },<br>    {<br>      &quot;@type&quot;: &quot;Text&quot;,<br>      &quot;name&quot;: &quot;enthusiasts with an AI related background and an interest in symbolic knowledge representation&quot;<br>    }<br>  ]<br>}<br><br>## JSON-LD End ##</pre><h3>Task Screenshots</h3><p><strong><em>ChatGPT RDF-Turtle Generation Response</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*y3YuX4tB7MvzSN-y.png" /><figcaption>ChatGPT Response</figcaption></figure><p><strong><em>ChatGPT RDF-Turtle Generation Response viewed using OSDS</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*stqP4nR0Zy7v6O__.png" /><figcaption>Visualization of RDF-Turtle generated by ChatGPT</figcaption></figure><p><strong><em>ChatGPT JSON-LD Generation Response</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*T4_nmtNZIOaiK_0p.png" /><figcaption>ChatGPT Response</figcaption></figure><p><strong><em>ChatGPT JSON-LD Generation Response viewed using OSDS</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*nYbcjDq2wUlIi5KV.png" /><figcaption>OSDS visualization of JSON-LD generated by ChatGPT</figcaption></figure><h3><strong>Uploading Generated Knowledge Graph to a DBMS that supports SPARQL</strong></h3><p>In addition to discovering and visualizing RDF-based Knowledge Graphs embedded in webpages, OSDS also offers upload functionality to any SPARQL endpoint that supports SPARQL INSERTs.</p><p>Here’s how the ChatGPT generated knowledge graph is uploaded to the Virtuoso Instance behind our public URIBurner Service.</p><p>[1] Select RDF-Notation matching what’s generated in the ChatGPT Response Code Block e.g., RDF-Turtle and/or JSON-LD as per the example used in this post</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*viKWu_LLU7d2xfLBsd0ySw.png" /><figcaption>Selecting the RDF Notation Type for eventual visualization via OSDS</figcaption></figure><p>[2] Initialize OSDS by clicking on its “doggie” icon</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9b1ik36YjS6gB8Iqbbi_GQ.png" /><figcaption>Generated RDF-Turtle visualized, courtesy of OSDS integration of ChatGPT</figcaption></figure><p>[3] Goto the “Download from Cloud” icon and click on it</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TPVXjq1OkfzXkOuG-tLc-Q.png" /><figcaption>Selecting Download or Upload Action Options</figcaption></figure><p>[4] From the drop-down presented, select “Upload to SPARQL Endpoint”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H_b-ncDYFH2M6vb0fZ0VLA.png" /><figcaption>Selecting Upload to SPARQL Endpoint Option</figcaption></figure><p>[5] If you so desire, replace the default SPARQL Endpoint URL presented by replacing it with your preferred alternative</p><p>[6] If you so desire, replace the default destination Named Graph Identifier presented by replacing it with your preferred alternative</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jF7nYw44uJvcSoGNWftiJw.png" /><figcaption>Setting preferred Named Graph Identifier into which data will be uploaded</figcaption></figure><p>[7] Click OK to commence upload to your selected SPARQL endpoint</p><p>[8] Explore the newly created Knowledge Graph via the <a href="https://linkeddata.uriburner.com/sparql?query=%23%20DEFINE%20get%3Asoft%20%22soft%22%20%0ASELECT%20(SAMPLE(%3Fs)%20AS%20%3FEntityID)%20%0A%20%20%20%20%20%20%20(COUNT(*)%20AS%20%3Fcount)%20%0A%20%20%20%20%20%20%20(%3Fo%20AS%20%3FEntityTypeID)%20%0AFROM%20%3Curn%3Akidehen%3Agptchat%3Ademos%3Aturtle%3E%20%0AWHERE%20%7B%20%0A%20%20%20%20%20%20%20%20%3Fs%20a%20%3Fo%20.%20%0A%20%20%20%20%20%20%20%20FILTER%20(CONTAINS(STR(%3Fo)%2C%27schema%27))%20%0A%20%20%20%20%20%20%7D%20%0AGROUP%20BY%20%3Fo%20%0AORDER%20BY%20DESC%20(%3Fcount)%20%0ALIMIT%2050%20%0A%0A%0A%0A&amp;format=text%2Fx-html%2Btr">SPARQL Query Solution Page</a> automatically generated by OSDS</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8SL-30YT7J-NkpfIJdC0Dg.png" /></figure><h3>Conclusion</h3><p>As this post demonstrates, taking the tedium out of RDF generation is a productivity boosting benefit of ChatGPT that’s immediately usable as part of any Knowledge Graph familiarization and/or utilization effort.</p><h3>Related Exercises</h3><ul><li><a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/prompts/">ChatGPT Prompt Collection</a> — from my Personal Data Space</li><li><a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/nanotations/">Other ChatGPT Prompt &amp; Nanotations related demo exercises </a>— from my Personal Data Space (an ODS-Briefcase Instance)</li><li><a href="https://kingsley.idehen.net/DAV/home/kidehen/Public/Linked%20Data%20Documents/Playground/gptChat/">General ChatGPT demo exercises collection</a> — from Personal Data Space</li><li><a href="https://youtu.be/WFvVvuyI2IA">ChatGPT generating a Job Postings Knowledge Graph</a> — Screencast Demo</li><li><a href="https://youtu.be/FZc4a6RCSnQ">ChatGPT generating a HowTo Knowledge Graph</a> — Screencast Demo</li></ul><h3>OpenLink Data Sniffer (OSDS) Browser Extension Links</h3><ul><li><a href="https://chrome.google.com/webstore/detail/openlink-structured-data/egdaiaihbdoiibopledjahjaihbmjhdj">Google Chrome Store for Chromium-based Browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">Mozilla Store for Firefox 1</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">Mac App Store for Safari 1</a></li><li><a href="https://github.com/OpenLinkSoftware/OSDS_extension">Github Open Source Repository</a></li></ul><h3>Additional Information</h3><ul><li><a href="https://virtuoso.openlinksw.com/">Virtuoso Home Page</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=daa107560776" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/using-chatgpt-to-generate-a-course-description-knowledge-graph-using-rdf-daa107560776">Using ChatGPT to Generate a Course Description Knowledge Graph using RDF</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Mastodon — a viable Twitter Alternative and much more]]></title>
            <link>https://medium.com/@kidehen/mastodon-a-viable-twitter-alternative-and-much-more-be09dc1279ca?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/be09dc1279ca</guid>
            <category><![CDATA[microblogging]]></category>
            <category><![CDATA[social-media]]></category>
            <category><![CDATA[twitter]]></category>
            <category><![CDATA[mastodon]]></category>
            <category><![CDATA[comparison]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Wed, 16 Nov 2022 16:50:07 GMT</pubDate>
            <atom:updated>2023-03-31T23:53:11.870Z</atom:updated>
            <content:encoded><![CDATA[<h3><a href="https://community.openlinksw.com/t/mastodon-a-viable-twitter-alternative-and-much-more/3478"><strong>Mastodon — a viable Twitter Alternative and much more</strong></a></h3><h3>Situation Analysis</h3><p>Once again, we are at a critical inflection point regarding use of the global communications opportunities enabled by open-standards-based infrastructure provided by the Web and Internet. The current inflection has been triggered by Twitter, the “global town square” that until recently stood without any viable alternatives — which is never a good thing.</p><p>Twitter is a Web 2.0 platform that suffers from tight-coupling of the key components that make it a centralized hub for both real-time news and digital sociality. Unfortunately, despite its quasi-monopoly status, this company never figured out how to fully maximize its unique status thereby making it a high value target for acquisition. Even worse, its recent acquisition has forced its users to revisit the importance of alternatives — even if this is a simply a case of creating a multi- rather than single-winner market situation.</p><h3>Twitter Alternatives</h3><p>Courtesy of existing open standards, Mastodon is emerging as a viable Twitter alternative that most would deem impossible at first blush.</p><p>Mastodon is ushering in the “third wave” of the blogosphere that first emerged circa 2000. Initially, the blogosphere comprised a federation of weblog (or blog) servers, typically self-hosted, that enabled individuals to perform the following tasks:</p><ul><li>Write posts</li><li>Publish posts</li><li>Tag posts using Hashtags</li><li>Syndicate posts via RSS Feeds</li><li>Comment on posts</li><li>Subscribe to RSS Feeds</li><li>Follow Hashtags</li><li>Cross-reference posts</li><li>Obtain post content in HTML or the ActivityStreams dialect of JSON (i.e., JSON-LD)</li></ul><p>As the first wave achieved critical mass, there arose an emerging need for more spontaneous posting (a/k/a micro-blogging) and a simplified approach to blog server hosting that, like most things associated with the <em>Web 2.0</em> moniker, meant a centralized alternative offered by a VC-funded startup. Ultimately, Twitter emerged as the dominant platform for micro-blogging (which became known as “tweeting”) in this new phase.</p><p>Recently, Elon Musk acquired Twitter (quite reluctantly, following initial enthusiasm) and in the process, following recent events, brought the issue of Twitter alternatives to everyone’s attention by inadvertently posing the question:</p><blockquote><em>What happens if Twitter ceases to exist, or no longer offers an acceptable service?</em></blockquote><p>This is where Mastodon comes into play, and based on my personal experience with the platform, I can confidently state that it actually matches and ultimately exceeds Twitter, thereby offering a genuine alternative that should also introduce much needed competition in this most important area of global communications.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FIPSbNdBmWKE%3Fstart%3D5%26feature%3Doembed%26start%3D5&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIPSbNdBmWKE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIPSbNdBmWKE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2b57cf37dc478cdd7ee7d214bdcd8c24/href">https://medium.com/media/2b57cf37dc478cdd7ee7d214bdcd8c24/href</a></iframe><p>What does Mastodon do so well, using existing open standards? Everything Twitter offers, plus:</p><ul><li>Content publication using HTML that includes embedded Knowledge Graphs that ultimately aid Search Engine understanding and serendipitous discovery</li><li>Content syndication using RSS Feeds — enabling loosely-coupled content subscription using a variety tools</li><li>Identity Authenticity — enabled via profile pages that comprise Verifiable Credentials or function as the foundation of explicit Self-Sovereign Identity</li><li>Use of Hashtags as Concept Identifiers — a vector for progressive Knowledge Graph creation, enrichment, and serendipitous discovery</li><li>Source code availability via its Open Source nature</li></ul><p>Like Google, who empowered the miracle of Knowledge Graph publication via HTML that’s driving a new generation of content management and search engine optimization platforms, Mastodon is enabling the long-delayed third wave of the World Wide Web, comprising a “Web of Data” where every entity, entity type, and entity relationship type is named using a hyperlink.</p><h3>Twitter vs Mastodon Tabulated Comparison</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/442/1*o7491iZcXbKk0sTViIU_fg.png" /></figure><h3>Mastodon Examples</h3><p>To get a feel for the inflection I describe, you can click on the following links that name a few Mastodon Profile Pages:</p><ul><li><a href="https://mastodon.social/@judell">Jon Udell</a></li><li><a href="https://mastodon.social/@mkapor@mstdn.social/following">Mitch Kapor</a></li><li><a href="https://mastodon.social/@danbri/following">Dan Brickley</a></li><li><a href="https://mastodon.social/@vrandecic@mas.to/following">Denny Vrandečić</a></li><li><a href="https://mastodon.social/@atomicpoet">Chris Trottier</a></li><li><a href="https://sanjuans.life/@lee">Le Lefever</a></li><li><a href="https://mastodon.social/@kidehen/following">Kingsley Uyi Idehen</a> (moi)</li></ul><h3>Web of Data Examples</h3><p>Here are some live links that demonstrate a new kind of data access and connectivity offered natively by any post on Mastodon. Basically, an HTML document functioning as the same kind of structured data source as a Table in a Database Management System (DBMS), courtesy of embedded Knowledge Graphs.</p><p>[1] <a href="https://tinyurl.com/y66ken6x">GraphQL query targeting the Data Feeds Item instance Knowledge Graph embedded in Jon Udell’s profile page on Mastodon</a></p><p><em>Combined GraphQL Query and Solution Page</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*RwgX5kEbVZKnAv5S.png" /></figure><p>[2] <a href="https://tinyurl.com/3vtxxemt">SPARQL query targeting the Data Feeds Item instance Knowledge Graph embedded in Jon Udell’s profile page on Mastodon</a></p><p><em>SPARQL Query Solution Page</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*B3rkwEwBySU3Z2jD.png" /></figure><ul><li><em>SPARQL Query Page</em></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*xqqx69Nbr16THaH6.png" /></figure><p>[3] <a href="https://tinyurl.com/y4n9pt6f">SQL query targeting the Data Feeds Item instance Knowledge Graph embedded in Jon Udell’s profile page on Mastodon</a></p><p><em>Combined SQL Query and Solution Page</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*8wN0ygSyhcyhHwrI.png" /></figure><h3>Conclusion</h3><p>The HTTP protocol unveiled a power tool for creating hyperlinks that leveraged underlying Internet infrastructure. The first piece of magic that came out of that was a global document network (i.e., World Wide Web) where every HTML page was named using a hyperlink. Unfortunately, the global success of that wonderful piece of technical work inadvertently obscured a much bigger and more powerful output — a global Knowledge Graph (or Web of Machine Computable Data) where every entity, entity relationship type, and entity type is named using a hyperlink.</p><p>Despite the 22+ year hike, right in the midst of all the problems that Web 2.0 platforms have unleashed on society and even democracy via their centralization of both the Web and the Internet, we have still finally arrived at a new frontier that provides a viable platform for addressing important issues such as these:</p><ul><li>Content Publication</li><li>Content Syndication</li><li>Identity Authenticity</li><li>Privacy</li><li>Business Model Flexibility, i.e., options beyond advertising for funding services at scale</li></ul><p>Net result, Twitter is looking more like Windows, while Mastodon is looking more like macOS, i.e., a Unix variant without the UI/UX related challenges that have typically constrained high-level end-user adoption.</p><h3>Related</h3><ul><li><a href="https://www.truthdig.com/articles/dawn-of-the-fediverse/">Dawn of The Fediverse</a></li><li><a href="https://reb00ted.org/tech/20230322-open-networks-are-more-valuable-fediverse/">reb00ted | Open networks are more valuable than closed ones: the case for the Fediverse over Twitter and Facebook</a></li><li><a href="https://www.eff.org/deeplinks/2023/02/breadth-fediverse">The Breadth of the Fediverse | Electronic Frontier Foundation (eff.org)</a></li><li><a href="https://leelefever.com/dear-friend-mastodon/">Mastodon FAQ &amp; Explainer</a> — by Le LeFever</li><li><a href="https://pluralistic.net/2022/12/19/better-failure/#let-my-tweeters-go">Pluralistic: Better failure for social media (19 Dec 2022) — Pluralistic: Daily links from Cory Doctorow</a></li><li><a href="https://techcrunch.com/2022/11/11/numerous-social-apps-see-gains-in-wake-of-twitter-chaos-new-data-shows/?guccounter=1">Numerous social apps see gains in wake of Twitter chaos, new data shows | TechCrunch</a></li><li><a href="https://www.eff.org/deeplinks/2022/11/fediverse-could-be-awesome-if-we-dont-screw-it">The Fediverse Could Be Awesome (if we don’t screw it up) | Electronic Frontier Foundation (eff.org)</a></li><li><a href="https://blog.opensource.org/the-fediverse-unlocks-a-world-of-composable-distributed-apps/">The Fediverse unlocks a world of composable distributed apps — Voices of Open Source</a> — there’s more to Mastodon that simply replacing Twitter</li><li><a href="https://blog.jonudell.net/2022/11/28/autonomy-packet-size-friction-fanout-and-velocity/">Autonomy, packet size, friction, fanout, and velocity — Jon Udell</a></li><li><a href="https://johnresig.com/blog/twitter-mastodon/">Twitter vs Mastodon</a></li><li><a href="https://www.pcworld.com/article/1404826/how-mastodon-and-federated-services-are-putting-social-media-back-in-your-hands.html">How Mastodon and the Fediverse put social networks in people’s hands | PCWorld</a></li><li><a href="https://uxdesign.cc/mastodon-is-antiviral-design-42f090ab8d51">Twitter alternative: how Mastodon is designed to be “antiviral”</a></li><li><a href="https://www.tbray.org/ongoing/When/202x/2022/11/26/Bye-Twitter">Bye, Twitter </a>— By Tim Bray</li><li><a href="https://thecaglereport.com/2022/11/25/destruction-of-the-commons/">Destruction of the Commons — The Cagle Report</a></li><li><a href="https://www.eff.org/deeplinks/2022/12/how-make-mastodon-account-and-join-fediverse">How to Make a Mastodon Account and Join the Fediverse | Electronic Frontier Foundation (eff.org)</a></li><li><a href="https://www.coywolf.news/social/how-to-leave-twitter-and-switch-to-mastodon/">How to leave Twitter and switch to Mastodon</a></li><li><a href="https://lucumr.pocoo.org/2022/11/14/scaling-mastodon/">Mastodon Scalability Challenges</a></li><li><a href="https://www.cnet.com/tech/services-and-software/your-guide-to-mastodon-what-is-it-and-how-is-it-different-from-twitter/">CNET Guide to Mastodon</a></li><li><a href="https://blog.archive.org/2022/11/13/we-have-added-a-mastodon-server/">Internet Archive Article about Mastodon</a></li><li><a href="https://twitter.com/kidehen/status/1592233173320359937">Twitter Thread about my path to Mastodon acceptance as viable Twitter alternative</a></li><li><a href="https://twitter.com/kidehen/status/1592233173320359937">Understanding Mastodon — Twitter Thread</a></li><li><a href="http://www.openlinksw.com/dataspace/doc/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1662">Legacy Blog Post about Data Spaces</a></li><li><a href="https://3quarksdaily.com/3quarksdaily/2022/11/the-inside-story-of-how-social-media-rewired-our-minds-and-our-world.html?ref=feedle.world">The Inside Story Of How Social Media Rewired Our Minds And Our World</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=be09dc1279ca" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[OpenLink Structured Data Sniffer (OSDS) version 2.21.6.]]></title>
            <link>https://medium.com/openlink-software-blog/openlink-structured-data-sniffer-osds-version-2-21-6-4026eddb47db?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/4026eddb47db</guid>
            <category><![CDATA[browser-extension]]></category>
            <category><![CDATA[knowledge-graph]]></category>
            <category><![CDATA[semantic-seo]]></category>
            <category><![CDATA[knowledge-graph-embedding]]></category>
            <category><![CDATA[search-engine-optimizati]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Tue, 15 Nov 2022 19:58:22 GMT</pubDate>
            <atom:updated>2022-12-29T17:11:32.150Z</atom:updated>
            <content:encoded><![CDATA[<p>We are pleased to announce immediate availability of <strong>OpenLink Structured Data Sniffer (OSDS) 2.21.6</strong>.</p><p><strong><em>Chrome Store Listing Page</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*hbvuK4bUWoG2YmY_.png" /></figure><p><a href="https://community.openlinksw.com/uploads/default/original/2X/e/e353e768bcbee5f30c5c7c5bf99028f5cd1b1457.png"><strong>Chrome Store Listing Page.png1253×726 176 KB</strong></a></p><p>This powerful browser extension provides the following benefits:</p><ul><li>Discovery of Knowledge Graphs embedded in Web Pages</li><li>Unambiguous Entity Naming using Super Links</li><li>Knowledge Graph Export and Upload to SPARQL Query Service Endpoints that support SPARQL 1.1 for Create, Read, Update, Delete (CRUD) operations</li><li>Built-in SPARQL Query Editor</li><li>Built-in URL Component Editor for RESTful interactions</li><li>Knowledge Graph transformation using a variety of Structured Data Formats</li></ul><p><strong><em>OSDS Exposing Web Application Knowledge Graph from its own Chrome Store Listing Page</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/641/0*oQiObDhcIjX7XpO5.png" /><figcaption><a href="https://community.openlinksw.com/uploads/default/original/2X/1/13a57ee4a9b1b0c08182c18678baff0df79abeae.png"><strong>OSDS Exposing Web Application Knowledge Graph from its own Chrome Store Listing Page</strong></a></figcaption></figure><h3>Availability</h3><ul><li><a href="https://chrome.google.com/webstore/detail/openlink-structured-data/egdaiaihbdoiibopledjahjaihbmjhdj">Google Chrome Store for Chromium-based Browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">Mozilla Store for Firefox 1</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-structured-data-sniff/">Mac App Store for Safari 1</a></li><li><a href="https://github.com/OpenLinkSoftware/OSDS_extension">Github Open Source Repository</a></li></ul><h3>Release Notes — including updates from 2.20.30 to 2.21.6</h3><ul><li>Added Upload to SPARQL option in Settings dialog with SPARQL Endpoint URL and Query Timeout fields</li><li>Fixed issue with improperly rereading <a href="https://vos.openlinksw.com/owiki/wiki/VOS/VirtSpongerNanotation#What%20is%20Nanotation%3F">Nanotation</a> data after page content is updated</li><li>Fixed issue with RSS/Atom</li><li>Fixed issue with parsing bad JSON data with unescaped \n, \t, \r, \f, \b</li><li>Fixed issue with exporting from JSON-LD to N-Quads</li><li>Added option to activate JSON-LD Compact with support for Relative IRIs</li><li>JSON-LD JavaScript library updated to the latest version (8.1.0)</li><li>Fixed issue with incorrect character escaping in some RDF output</li><li>Enhanced error condition handler associated with “Upload to SPARQL Endpoint”</li><li>N3.js library updated to the latest version (1.16.2)</li><li>Updated character encoding used for IRI construction in HTML and RDF-Turtle generation</li><li>Enhanced code for User Interface tabs</li></ul><h3>Related</h3><ul><li><a href="https://medium.com/openlink-software-blog/openlink-structured-data-sniffer-new-features-update-ab3652781a4f">OpenLink Structured Data Sniffer — New Features Update | by Kingsley Uyi Idehen | OpenLink Software Blog | Medium</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4026eddb47db" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/openlink-structured-data-sniffer-osds-version-2-21-6-4026eddb47db">OpenLink Structured Data Sniffer (OSDS) version 2.21.6.</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing YouID version 1.5.11]]></title>
            <link>https://medium.com/openlink-software-blog/introducing-youid-version-1-5-11-57573367b4f9?source=rss-ed1e8042d628------2</link>
            <guid isPermaLink="false">https://medium.com/p/57573367b4f9</guid>
            <category><![CDATA[self-sovereign-identity]]></category>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[digital-certificates]]></category>
            <category><![CDATA[identity]]></category>
            <category><![CDATA[verifiable-credentials]]></category>
            <dc:creator><![CDATA[Kingsley Uyi Idehen]]></dc:creator>
            <pubDate>Tue, 15 Nov 2022 19:53:19 GMT</pubDate>
            <atom:updated>2022-11-15T19:53:19.803Z</atom:updated>
            <content:encoded><![CDATA[<p>We are pleased to announce the latest release of our YouID Browser Extension (for Chrome, Edge, Safari, Firefox, and others), alongside the native App for iOS.</p><p>This new release (1.5.11) adds Bitcoin and Ethereum blockchains as additional sources of credentials for <a href="http://dbpedia.org/resource/Self-sovereign_identity">self-sovereign identity</a> authenticity that work without incurring any “<a href="https://en.wikipedia.org/wiki/Ethereum#Gas">gas</a> fees” nor triggering any “<a href="https://dbpedia.org/resource/Proof_of_work">proof of work</a>” or “<a href="https://dbpedia.org/resource/Proof_of_stake">proof of stake</a>” related operations.</p><p><em>User Interface for generating self-sovereign identity credentials pegged to a Bitcoin Blockchain</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*_-EGOcX5W2LUUnOM.png" /></figure><p><a href="https://community.openlinksw.com/uploads/default/original/2X/b/b6900d798c202e9b076113fac0cacee58e5fb2a2.png"><strong>youid-btc-blockchain-cert-demo-11130×740 49.3 KB</strong></a></p><p><em>User Interface for generating self-sovereign identity credentials pegged to an Ethereum Blockchain</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/0*4Ow_-ycLf2Qpuc5r.png" /></figure><p><a href="https://community.openlinksw.com/uploads/default/original/2X/e/ef42a38d7d0319076a1c11be1525eef21eb8edd9.png"><strong>youid-eth-blockchain-cert-demo-11158×732 49 KB</strong></a></p><h3>What is YouID?</h3><p>YouID is a tool for generating personal credentials (each comprised of a <a href="https://dbpedia.org/resource/Digital_certificate">digital certificate</a> and associated <a href="https://dbpedia.org/resource/Private_key">private key</a>) that enable Internet- and Web-scale identity authenticity to be controlled by users themselves, rather than by third parties.</p><h3>Why is YouID important?</h3><p><a href="http://dbpedia.org/resource/Privacy">Privacy</a> and identity <a href="https://dbpedia.org/resource/Authentication">authenticity</a> currently pose the biggest challenges to the deeply connected world arising from Internet and Web ubiquity. This challenge exists primarily due to the complex nature of identity, and the historic inability of technological solutions to understand the challenges posed both to the individual and to society at large.</p><p><strong><em>Grounding Rule:</em></strong><br><em>A third party </em><strong><em>cannot</em></strong><em> provide an individual with privacy, since that is a strictly individual superpower.</em></p><p>That rule provides both the technical and philosophical foundation upon which YouID has been developed.</p><h3>How do I use YouID?</h3><p>Simply perform the following steps:</p><ol><li>Launch the browser extension or iOS app</li><li>Select your preferred source of profile information</li><li>Fill in any empty fields remaining in the credentials data entry form</li><li>Generate a credential document — a <a href="https://dbpedia.org/resource/PKCS">secure file</a> comprising a digital identity card (a/k/a certificate) and its associated private key</li><li>Download the secure credential document to your desktop, notebook, tablet, or phone</li><li>Open the credential document on your chosen device, and let the native operating system complete the process of storing your credential safely in its native credential store (a/k/a Keychain or Key Store)</li></ol><p>Once completed, you will be able to perform the following tasks:</p><ul><li>Send digitally signed emails that can be verified by the recipients email package</li><li>Send digitally signed and encrypted emails that can be verified and decrypted by the recipients email package</li><li>Sign PDFs (including documents sent for signature by various digital signing services)</li><li>Begin the pursuit of document sharing (with specific individuals or groups) without requiring sharing-invitation recipients to join third party services</li></ul><h3>Related</h3><ul><li><a href="https://apps.apple.com/al/app/youid-certificate-generator/id592737312">YouID App Store Entry</a> — covering native iOS App, native macOS App, and macOS Safari Browser Extension</li><li><a href="https://chrome.google.com/webstore/detail/openlink-youid/kbepkemknbihgdmdnfainhmiidoblhee?hl=en">YouID Browser Extension for Chrome, Edge, and other Chrome-based Browsers</a></li><li><a href="https://addons.mozilla.org/en-US/firefox/addon/openlink-youid-ff/">YouID for Firefox</a></li><li><a href="https://www.linkedin.com/pulse/re-introducing-youid-verifiable-credentials-generator-idehen">YouID Introduction Post</a> — announcement of prior release</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=57573367b4f9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/openlink-software-blog/introducing-youid-version-1-5-11-57573367b4f9">Introducing YouID version 1.5.11</a> was originally published in <a href="https://medium.com/openlink-software-blog">OpenLink Software Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>