RDF-TriN3

 view release on metacpan or  search on metacpan

lib/RDF/TrineX/Parser/Pretdsl.pm  view on Meta::CPAN

package RDF::TrineX::Parser::Pretdsl;

use strict;
use warnings;
no warnings qw( void once uninitialized numeric );

our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION   = '0.206';

our $PROFILE = <<'PRETDSL_PROFILE';

# RDFa 1.1 prefixes
@prefix grddl:    <http://www.w3.org/2003/g/data-view#> .
@prefix ma:       <http://www.w3.org/ns/ma-ont#> .
@prefix owl:      <http://www.w3.org/2002/07/owl#> .
@prefix rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfa:     <http://www.w3.org/ns/rdfa#> .
@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rif:      <http://www.w3.org/2007/rif#> .
@prefix skos:     <http://www.w3.org/2004/02/skos/core#> .
@prefix skosxl:   <http://www.w3.org/2008/05/skos-xl#> .
@prefix wdr:      <http://www.w3.org/2007/05/powder#> .
@prefix void:     <http://rdfs.org/ns/void#> .
@prefix wdrs:     <http://www.w3.org/2007/05/powder-s#> .
@prefix xhv:      <http://www.w3.org/1999/xhtml/vocab#> .
@prefix xml:      <http://www.w3.org/XML/1998/namespace> .
@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
@prefix cc:       <http://creativecommons.org/ns#> .
@prefix ctag:     <http://commontag.org/ns#> .
@prefix dc:       <http://purl.org/dc/terms/> .
@prefix dcterms:  <http://purl.org/dc/terms/> .
@prefix foaf:     <http://xmlns.com/foaf/0.1/> .
@prefix gr:       <http://purl.org/goodrelations/v1#> .
@prefix ical:     <http://www.w3.org/2002/12/cal/icaltzd#> .
@prefix og:       <http://ogp.me/ns#> .
@prefix rev:      <http://purl.org/stuff/rev#> .
@prefix sioc:     <http://rdfs.org/sioc/ns#> .
@prefix v:        <http://rdf.data-vocabulary.org/#> .
@prefix vcard:    <http://www.w3.org/2006/vcard/ns#> .
@prefix schema:   <http://schema.org/> .

# Additional useful vocabularies
@prefix cpant:       <http://purl.org/NET/cpan-uri/terms#>.
@prefix dbug:        <http://ontologi.es/doap-bugs#> .
@prefix dcs:         <http://ontologi.es/doap-changeset#> .
@prefix deps:        <http://ontologi.es/doap-deps#> .
@prefix doap:        <http://usefulinc.com/ns/doap#> .
@prefix earl:        <http://www.w3.org/ns/earl#> .
@prefix nfo:         <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .
@prefix pretdsl:     <http://ontologi.es/pretdsl#> .
@prefix pretdsl-dt:  <http://ontologi.es/pretdsl#dt/> .

# Useful XSD datatypes
@dtpattern
	"[0-9]{4}-[0-9]{2}-[0-9]{2}"
	<http://www.w3.org/2001/XMLSchema#date> .
@dtpattern
	"[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{4}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?"
	<http://www.w3.org/2001/XMLSchema#dateTime> .

# Other datatype shorthands
@pattern
	"`(?<x>.+?)`"
	"$x"^^pretdsl-dt:PerlResourceIdentifier .
@pattern
	"d`(?<x>.+?)`"
	"$x"^^pretdsl-dt:Distribution .
@pattern
	"r`(?<x>.+?)`"
	"$x"^^pretdsl-dt:Release .
@pattern
	"p`(?<x>.+?)`"
	"$x"^^pretdsl-dt:Package .
@pattern
	"m`(?<x>.+?)`"
	"$x"^^pretdsl-dt:Module .
@pattern
	"f`(?<x>.+?)`"
	"$x"^^pretdsl-dt:File .
@pattern
	"cpan:(?<x>\\w+)"
	"$x"^^pretdsl-dt:CpanId .
@pattern
	"RT#(?<x>\\d+)"
	"$x"^^pretdsl-dt:RtBug .

# Generally useful predicates
@term label    rdfs:label .
@term comment  rdfs:comment .
@term seealso  rdfs:seeAlso .

# Makefile predicates
@term abstract_from          cpant:abstract_from .
@term author_from            cpant:author_from .
@term license_from           cpant:license_from .
@term requires_from          cpant:requires_from .
@term perl_version_from      cpant:perl_version_from .
@term version_from           cpant:version_from .
@term readme_from            cpant:readme_from .
@term no_index               cpant:no_index .
@term install_script         cpant:install_script .
@term requires               cpant:requires .
@term requires_external_bin  cpant:requires_external_bin .
@term recommends             cpant:recommends .
@term test_requires          cpant:test_requires .
@term configure_requires     cpant:configure_requires .
@term build_requires         cpant:build_requires .
@term provides               cpant:provides .

lib/RDF/TrineX/Parser/Pretdsl.pm  view on Meta::CPAN


__PACKAGE__
__END__

=head1 NAME

RDF::TrineX::Parser::Pretdsl - the Perl RDF Extended Turtle Domain-Specific Language

=head1 DESCRIPTION

Pretdsl is a domain-specific language for describing Perl projects (in
particular CPAN releases) in RDF triples. It can be seen as an enhanced
version of Turtle/N3, or an application of ShorthandRDF.

=head2 About Pretdsl

Pretdsl is Notation 3, plus...

=head3 Predefined prefixes

The following prefixes are pre-declared (though you can explicitly
declare them, or redeclare them to be something else if you prefer...)

	# RDFa 1.1 prefixes
	@prefix grddl:    <http://www.w3.org/2003/g/data-view#> .
	@prefix ma:       <http://www.w3.org/ns/ma-ont#> .
	@prefix owl:      <http://www.w3.org/2002/07/owl#> .
	@prefix rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
	@prefix rdfa:     <http://www.w3.org/ns/rdfa#> .
	@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .
	@prefix rif:      <http://www.w3.org/2007/rif#> .
	@prefix skos:     <http://www.w3.org/2004/02/skos/core#> .
	@prefix skosxl:   <http://www.w3.org/2008/05/skos-xl#> .
	@prefix wdr:      <http://www.w3.org/2007/05/powder#> .
	@prefix void:     <http://rdfs.org/ns/void#> .
	@prefix wdrs:     <http://www.w3.org/2007/05/powder-s#> .
	@prefix xhv:      <http://www.w3.org/1999/xhtml/vocab#> .
	@prefix xml:      <http://www.w3.org/XML/1998/namespace> .
	@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
	@prefix cc:       <http://creativecommons.org/ns#> .
	@prefix ctag:     <http://commontag.org/ns#> .
	@prefix dc:       <http://purl.org/dc/terms/> .
	@prefix dcterms:  <http://purl.org/dc/terms/> .
	@prefix foaf:     <http://xmlns.com/foaf/0.1/> .
	@prefix gr:       <http://purl.org/goodrelations/v1#> .
	@prefix ical:     <http://www.w3.org/2002/12/cal/icaltzd#> .
	@prefix og:       <http://ogp.me/ns#> .
	@prefix rev:      <http://purl.org/stuff/rev#> .
	@prefix sioc:     <http://rdfs.org/sioc/ns#> .
	@prefix v:        <http://rdf.data-vocabulary.org/#> .
	@prefix vcard:    <http://www.w3.org/2006/vcard/ns#> .
	@prefix schema:   <http://schema.org/> .

	# Additional useful vocabularies
	@prefix cpant:       <http://purl.org/NET/cpan-uri/terms#>.
	@prefix dbug:        <http://ontologi.es/doap-bugs#> .
	@prefix dcs:         <http://ontologi.es/doap-changeset#> .
	@prefix deps:        <http://ontologi.es/doap-deps#> .
	@prefix doap:        <http://usefulinc.com/ns/doap#> .
	@prefix earl:        <http://www.w3.org/ns/earl#> .
	@prefix nfo:         <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .
	@prefix pretdsl:     <http://ontologi.es/pretdsl#> .
	@prefix pretdsl-dt:  <http://ontologi.es/pretdsl#dt/> .

=head3 Predefined terms

Like how Turtle defines "a" as a term that expands to rdf:type,
Pretdsl defines some terms:

	# Generally useful predicates
	@term label    rdfs:label .
	@term comment  rdfs:comment .
	@term seealso  rdfs:seeAlso .

	# Makefile predicates
	@term abstract_from          cpant:abstract_from .
	@term author_from            cpant:author_from .
	@term license_from           cpant:license_from .
	@term requires_from          cpant:requires_from .
	@term perl_version_from      cpant:perl_version_from .
	@term version_from           cpant:version_from .
	@term readme_from            cpant:readme_from .
	@term no_index               cpant:no_index .
	@term install_script         cpant:install_script .
	@term requires               cpant:requires .
	@term requires_external_bin  cpant:requires_external_bin .
	@term recommends             cpant:recommends .
	@term test_requires          cpant:test_requires .
	@term configure_requires     cpant:configure_requires .
	@term build_requires         cpant:build_requires .
	@term provides               cpant:provides .

	# Changelog predicates
	@term issued     dc:issued .
	@term changeset  dcs:changeset .
	@term item       dcs:item .
	@term versus     dcs:versus .

	# Changelog datatypes
	@term Addition            pretdsl-dt:Addition .
	@term BackCompat          pretdsl-dt:BackCompat .
	@term Bugfix              pretdsl-dt:Bugfix .
	@term Change              pretdsl-dt:Change .
	@term Documentation       pretdsl-dt:Documentation .
	@term Packaging           pretdsl-dt:Packaging .
	@term Regresion           pretdsl-dt:Regression .
	@term Removal             pretdsl-dt:Removal .
	@term SecurityFix         pretdsl-dt:SecurityFix .
	@term SecurityRegression  pretdsl-dt:SecurityRegression .
	@term Tests               pretdsl-dt:Tests .
	@term Update              pretdsl-dt:Update .

=head3 XSD datatype shorthands

Like how Turtle has shorthands for literals of type xsd:integer,
xsd:double and xsd:boolean, such that they don't need quoting or an
explicit datatype, Pretdsl defines shorthands for xsd:date and xsd:dateTime.

For xsd:date, just use YYYY-MM-DD format. For xsd:dateTime, use
YYYY-MM-DDThh:mm:ss.sss+zzzz (seconds must be included, but fractions
of seconds are optional; timezones are optional, and 'Z' is supported



( run in 1.410 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )