<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python |</title><link>https://clementgodbarge.com/vi/tag/python/</link><atom:link href="https://clementgodbarge.com/vi/tag/python/index.xml" rel="self" type="application/rss+xml"/><description>Python</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>vi-vn</language><lastBuildDate>Sun, 15 Mar 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>Python</title><link>https://clementgodbarge.com/vi/tag/python/</link></image><item><title>tei-mcp</title><link>https://clementgodbarge.com/vi/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/vi/code/tei-mcp/</guid><description>&lt;h2 id="tei-mcp-tei-p5-cho-tác-tử-ai"&gt;tei-mcp: TEI P5 cho tác tử AI&lt;/h2&gt;
&lt;p&gt;tei-mcp là một máy chủ
mã nguồn mở, cho phép các trợ lý lập trình AI truy cập trực tiếp vào đặc tả
. Thay vì dựa vào dữ liệu huấn luyện đã ghi nhớ – thứ thường sinh ra thẻ đánh dấu trông hợp lý mà sai – AI có thể tra cứu đặc tả theo thời gian thực.&lt;/p&gt;
&lt;h2 id="tính-năng"&gt;Tính năng&lt;/h2&gt;
&lt;p&gt;Máy chủ phân tích ODD của TEI P5 và cung cấp 16 công cụ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tra cứu&lt;/strong&gt; bất kỳ phần tử, lớp, macro hay mô-đun nào theo tên, không phân biệt hoa thường, kèm gợi ý khi gõ nhầm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phân giải thuộc tính&lt;/strong&gt; xuyên suốt toàn bộ hệ phân cấp lớp TEI (cục bộ + kế thừa)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Khai triển mô hình nội dung&lt;/strong&gt; thành cây có cấu trúc, với phân giải lớp và macro&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kiểm tra lồng ghép&lt;/strong&gt; – quan hệ cha–con trực tiếp hoặc khả năng đạt tới đệ quy, có theo dõi đường dẫn&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kiểm định tài liệu&lt;/strong&gt; theo TEI P5: mô hình nội dung, thuộc tính, danh sách giá trị đóng, tính toàn vẹn của tham chiếu và cảnh báo lỗi thời&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kiểm định từng phần tử&lt;/strong&gt; cho quy trình biên tập từng bước&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nạp tùy biến ODD&lt;/strong&gt; để giới hạn lược đồ vào tập con riêng của dự án&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tìm kiếm&lt;/strong&gt; trên mọi loại thực thể bằng biểu thức chính quy&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cài-đặt"&gt;Cài đặt&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hoặc chạy trực tiếp bằng:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="sử-dụng"&gt;Sử dụng&lt;/h2&gt;
&lt;p&gt;Thêm vào bất kỳ ứng dụng khách tương thích MCP nào (Claude, Cursor, Windsurf, v.v.):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Mã nguồn và tài liệu có tại
.&lt;/p&gt;</description></item><item><title>Multi-Saxon</title><link>https://clementgodbarge.com/vi/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/vi/code/multi-saxon/</guid><description>&lt;h2 id="multi-saxon-xử-lý-xslt-song-song-cho-kho-ngữ-liệu-tei-lớn"&gt;Multi-Saxon: Xử lý XSLT song song cho kho ngữ liệu TEI lớn&lt;/h2&gt;
&lt;p&gt;Multi-Saxon lấp một khoảng trống đáng kể trong bộ công cụ xử lý XML: nó cho phép chạy song song các phép biến đổi XSLT 2.0 và 3.0 mà LXML (thư viện XML phổ biến của Python) không xử lý được. Được thiết kế riêng cho những bộ sưu tập tài liệu XML TEI lớn, Multi-Saxon rút ngắn đáng kể thời gian xử lý nhờ thực thi song song hiệu quả.&lt;/p&gt;
&lt;h2 id="tính-năng-chính"&gt;Tính năng chính&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hỗ trợ XSLT nâng cao&lt;/strong&gt;: Xử lý các phép biến đổi XSLT 2.0 và 3.0, vượt ngoài khả năng của LXML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xử lý song song&lt;/strong&gt;: Giảm mạnh thời gian biến đổi trên các bộ sưu tập tài liệu lớn nhờ song song hóa&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tối ưu cho TEI&lt;/strong&gt;: Được thiết kế riêng cho tài liệu XML theo chuẩn Text Encoding Initiative (TEI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hiệu năng mở rộng được&lt;/strong&gt;: Xử lý hiệu quả những kho ngữ liệu từ vài trăm đến hàng nghìn tài liệu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Đa nền tảng&lt;/strong&gt;: Chạy được trên nhiều hệ điều hành và môi trường khác nhau&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="vấn-đề-mà-multi-saxon-giải-quyết"&gt;Vấn đề mà Multi-Saxon giải quyết&lt;/h2&gt;
&lt;p&gt;Học giả nhân văn số làm việc với TEI thường vấp phải hai trở ngại lớn:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LXML (thư viện xử lý XML thông dụng của Python) chỉ hỗ trợ XSLT 1.0, nên không thể dùng các tính năng nâng cao của XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Xử lý tuần tự những kho ngữ liệu TEI lớn có thể tốn thời gian đến mức không chấp nhận được&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Multi-Saxon giải quyết cả hai bằng cách tận dụng năng lực XSLT nâng cao của Saxon, đồng thời phân phối việc xử lý trên nhiều lõi để đạt mức tăng hiệu năng đáng kể.&lt;/p&gt;
&lt;h2 id="triển-khai"&gt;Triển khai&lt;/h2&gt;
&lt;p&gt;Multi-Saxon kết hợp Python với bộ xử lý Saxon của Java để tạo nên một đường ống biến đổi hiệu năng cao:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dùng thư viện Saxon của Java để xử lý XSLT 2.0/3.0 một cách vững chắc&lt;/li&gt;
&lt;li&gt;Dùng cơ chế đa tiến trình để phân phối các phép biến đổi trên những lõi CPU sẵn có&lt;/li&gt;
&lt;li&gt;Quản lý hiệu quả các nhóm bộ xử lý nhằm tối đa hóa thông lượng&lt;/li&gt;
&lt;li&gt;Cung cấp giao diện đơn giản để xử lý hàng loạt tài liệu TEI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ví-dụ-sử-dụng"&gt;Ví dụ sử dụng&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;multi_saxon&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Initialize with your XSLT stylesheet&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transform.xsl&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Transform a single document&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Transform an entire directory in parallel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform_directory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="tác-động-đối-với-nhân-văn-số"&gt;Tác động đối với nhân văn số&lt;/h2&gt;
&lt;p&gt;Với những dự án nhân văn số phải xử lý các bộ sưu tập tài liệu TEI lớn, Multi-Saxon cho phép:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Thực hiện những phép biến đổi phức tạp trên toàn bộ kho ngữ liệu, điều bất khả với LXML&lt;/li&gt;
&lt;li&gt;Rút ngắn mạnh thời gian xử lý (thường gấp 5–10 lần trên hệ thống đa lõi)&lt;/li&gt;
&lt;li&gt;Phân tích tinh vi hơn nhờ các tính năng nâng cao của XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Đơn giản hóa quy trình xử lý trọn bộ sưu tập tài liệu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mã nguồn và tài liệu có tại
.&lt;/p&gt;</description></item><item><title>persNamer</title><link>https://clementgodbarge.com/vi/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/vi/code/persnamer/</guid><description>&lt;h2 id="persnamer-nối-tei-với-virtual-international-authority-file"&gt;persNamer: Nối TEI với Virtual International Authority File&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;persNamer là một công cụ Python chuyên dụng, giúp đưa dữ liệu nhân danh có thẩm quyền từ VIAF (Virtual International Authority File) vào tài liệu TEI XML một cách trơn tru. Bằng cách chuyển mã định danh VIAF thành thẻ đánh dấu TEI dùng được ngay, persNamer giảm hẳn phần việc thủ công khi tạo các mục nhân danh có cấu trúc cho ấn bản học thuật kỹ thuật số.&lt;/p&gt;
&lt;h2 id="bài-toán-kiểm-soát-thẩm-quyền-trong-tei"&gt;Bài toán kiểm soát thẩm quyền trong TEI&lt;/h2&gt;
&lt;p&gt;Ấn bản học thuật kỹ thuật số thường đòi hỏi định danh chính xác các nhân vật lịch sử, kể cả tên chuẩn hóa và năm sinh năm mất. Để kiểm soát thẩm quyền nhất quán trong suốt một dự án, người ta phải:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Nhận diện nhân vật trong văn bản lịch sử&lt;/li&gt;
&lt;li&gt;Tìm dữ liệu có thẩm quyền về họ&lt;/li&gt;
&lt;li&gt;Tạo các mục TEI đúng định dạng&lt;/li&gt;
&lt;li&gt;Bảo đảm tham chiếu nhất quán trong toàn dự án&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Các bước này thường làm bằng tay, tốn thời gian và dễ thiếu nhất quán.&lt;/p&gt;
&lt;h2 id="persnamer-vận-hành-ra-sao"&gt;persNamer vận hành ra sao&lt;/h2&gt;
&lt;p&gt;persNamer tự động hóa quy trình ấy bằng cách:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Lấy dữ liệu VIAF&lt;/strong&gt;: Từ một mã định danh VIAF, công cụ truy xuất dữ liệu RDF qua cơ chế thương lượng nội dung HTTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trích xuất thông tin chính&lt;/strong&gt;: Phân tích RDF để lấy tên ưu tiên, ngày sinh và ngày mất&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sinh thẻ đánh dấu TEI&lt;/strong&gt;: Tạo ra hai đoạn XML thiết yếu:
&lt;ul&gt;
&lt;li&gt;Một &lt;strong&gt;mục trong tệp thẩm quyền&lt;/strong&gt; (phần tử &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt; với &lt;code&gt;xml:id&lt;/code&gt; được sinh tự động, &lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;birth&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;death&amp;gt;&lt;/code&gt; và &lt;code&gt;&amp;lt;idno type=&amp;quot;VIAF&amp;quot;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Một &lt;strong&gt;thẻ chú giải&lt;/strong&gt; riêng (&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; với thuộc tính &lt;code&gt;ref&lt;/code&gt; trỏ về mục thẩm quyền)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Đầu ra kép này cho phép người biên tập duy trì một tệp thẩm quyền tập trung, đồng thời dễ dàng chèn thẻ chú giải vào văn bản TEI của mình.&lt;/p&gt;
&lt;h2 id="tính-năng-chính"&gt;Tính năng chính&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sinh mã định danh chuẩn hóa&lt;/strong&gt;: Tạo XML ID nhất quán theo dạng &lt;code&gt;pers-[familyname]-[givenname initial]&lt;/code&gt; (ví dụ &lt;code&gt;pers-deteligny-c&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phân tích RDF&lt;/strong&gt;: Dùng &lt;code&gt;rdflib&lt;/code&gt; để trích thông tin từ nhiều thuộc tính RDF khác nhau (ví dụ &lt;code&gt;rdfs:label&lt;/code&gt;, &lt;code&gt;schema:name&lt;/code&gt;, &lt;code&gt;viaf:mainHead&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Giao diện dòng lệnh&lt;/strong&gt;: Chạy đơn giản, chỉ cần một số VIAF làm đối số bắt buộc duy nhất&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Đầu ra chi tiết&lt;/strong&gt;: Cung cấp thông tin xử lý đầy đủ bên cạnh XML kết quả&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ví-dụ-sử-dụng"&gt;Ví dụ sử dụng&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python persNamer.py &lt;span class="m"&gt;314802260&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lệnh này cho ra:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;person&lt;/span&gt; &lt;span class="na"&gt;xml:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;pers-deteligny-c&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;persName&amp;gt;&lt;/span&gt;Charles deTéligny&lt;span class="nt"&gt;&amp;lt;/persName&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;birth&amp;gt;&lt;/span&gt;1535&lt;span class="nt"&gt;&amp;lt;/birth&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;death&amp;gt;&lt;/span&gt;1572-08-24&lt;span class="nt"&gt;&amp;lt;/death&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;idno&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;VIAF&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;314802260&lt;span class="nt"&gt;&amp;lt;/idno&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/person&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;persName&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#pers-deteligny-c&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Charles deTéligny&lt;span class="nt"&gt;&amp;lt;/persName&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="ứng-dụng-trong-nhân-văn-số"&gt;Ứng dụng trong nhân văn số&lt;/h2&gt;
&lt;p&gt;persNamer đặc biệt hữu ích cho:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ấn bản học thuật kỹ thuật số cần kiểm soát thẩm quyền&lt;/li&gt;
&lt;li&gt;Dự án mã hóa TEI làm việc với nhân vật lịch sử&lt;/li&gt;
&lt;li&gt;Sáng kiến dữ liệu liên kết nối tài liệu với hồ sơ thẩm quyền&lt;/li&gt;
&lt;li&gt;Bảo đảm tính nhất quán trên những kho ngữ liệu TEI lớn&lt;/li&gt;
&lt;li&gt;Giảng dạy khái niệm kiểm soát thẩm quyền trong các khóa nhân văn số&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="triển-khai"&gt;Triển khai&lt;/h2&gt;
&lt;p&gt;persNamer được viết bằng Python và phụ thuộc vào:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt; cho các yêu cầu HTTP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdflib&lt;/code&gt; để phân tích RDF&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lxml&lt;/code&gt; để xử lý XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mã nguồn và tài liệu có tại
.&lt;/p&gt;</description></item></channel></rss>