The Martialis data model: the OWL ontology, its SHACL constraints, and its SKOS controlled vocabularies. CC0-1.0, public domain. Back to Martialis

Violations (84)

Node shapes (65)

shape: https://w3id.org/martialis/ontology#AffiliationAssertionShape/validDuring

shape
IRI:https://w3id.org/martialis/ontology#AffiliationAssertionShape
rdfs:comment
A typed, sourced claim that the subject (a Place or Organization) is affiliated with, or descends from, the related Organization.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#AffiliationAssertionShape/validDuring n1 affiliation assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#AttributionShape/url

shape
IRI:https://w3id.org/martialis/ontology#AttributionShape
rdfs:comment
Crediting a media item to a source; carries no supports semantics.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#AttributionShape/url n1 Attribution shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#BirthEventShape/startDate

shape
IRI:https://w3id.org/martialis/ontology#BirthEventShape
rdfs:comment
A person's birth: its date, place and evidence.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#BirthEventShape/startDate n1 BirthEvent shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#ConfidenceShape/confidenceRationale

shape
IRI:https://w3id.org/martialis/ontology#ConfidenceShape
rdfs:comment
A confidence assessment applied to an assertion.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#ConfidenceShape/confidenceRationale n1 confidence shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#ContributorShape/suffix

shape
IRI:https://w3id.org/martialis/ontology#ContributorShape
rdfs:comment
A person or body credited on a Source in a CSL contributor role, named in CSL name parts and optionally linked to a Person or Organization record.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#ContributorShape/suffix n1 Contributor shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#CoordinatesShape/longitude

shape
IRI:https://w3id.org/martialis/ontology#CoordinatesShape
rdfs:comment
A WGS84 point. Latitude and longitude are both required, so a coordinate cannot be recorded half-formed.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#CoordinatesShape/longitude n1 coordinates shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#DeathEventShape/startDate

shape
IRI:https://w3id.org/martialis/ontology#DeathEventShape
rdfs:comment
A person's death: its date, place and evidence.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#DeathEventShape/startDate n1 DeathEvent shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#DissolutionEventShape/location

shape
IRI:https://w3id.org/martialis/ontology#DissolutionEventShape
rdfs:comment
The end of a place, organization, style or ranking system: its date, place, manner, reason and evidence.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#DissolutionEventShape/location n1 DissolutionEvent shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#DocumentTransmissionAssertionShape/validDuring

shape
IRI:https://w3id.org/martialis/ontology#DocumentTransmissionAssertionShape
rdfs:comment
A claim that the subject (Person) learned from a document rather than a person (densho, manual, book, video), referenced via transmissionDocument.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#DocumentTransmissionAssertionShape/validDuring n1 document transmission assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#EditionOfShape/editionRelationType

shape
IRI:https://w3id.org/martialis/ontology#EditionOfShape
rdfs:comment
The work a Source is an edition, translation, reprint or facsimile of, and the kind of relation.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#EditionOfShape/editionRelationType n1 EditionOf shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#EventShape/video

shape
IRI:https://w3id.org/martialis/ontology#EventShape
rdfs:comment
A dated happening in martial-arts history: a tournament, grading, seminar, course or ceremony. Claims point at it with martialis:atEvent.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#EventShape/video n1 event shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#FoundingEventShape/startDate

shape
IRI:https://w3id.org/martialis/ontology#FoundingEventShape
rdfs:comment
The founding of a place, organization, style or ranking system: its date, place, founders and evidence.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#FoundingEventShape/startDate n1 FoundingEvent shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#GeoRefShape/sameAs

shape
IRI:https://w3id.org/martialis/ontology#GeoRefShape
rdfs:comment
A place reference: free-text label plus an authority IRI.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#GeoRefShape/sameAs n1 GeoRef shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#HistoricityAssertionShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#HistoricityAssertionShape
rdfs:comment
A sourced claim about whether the subject existed as one historical individual: historical, legendary, composite, or a title. Recorded only when a source questions it. It does not cap the confidence of other claims about the subject.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#HistoricityAssertionShape/researchNote n1 historicity assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#HonorAssertionShape/atEvent

shape
IRI:https://w3id.org/martialis/ontology#HonorAssertionShape
rdfs:comment
A non-style-specific title, certificate, or honor (e.g. Hanshi, Kyoshi). Subject is the honored Person; conferredBy is the granting Organization.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#HonorAssertionShape/atEvent n1 honor assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#IdentityAssertionShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#IdentityAssertionShape
rdfs:comment
A sourced hypothesis that the subject and the identity candidate may be the same individual, for example under another name. Weaker than owl:sameAs.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#IdentityAssertionShape/researchNote n1 identity assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#InstructorRoleShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#InstructorRoleShape
rdfs:comment
A time-bounded, sourced record that a Person served on the instructional staff of a Place. Not a teacher-student claim.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#InstructorRoleShape/researchNote n1 instructor role shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#MembershipShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#MembershipShape
rdfs:comment
A sourced claim that a Person was a member of an Organization, with no office implied. An office is an OfficerRole; an organization's membership of another organization is an AffiliationAssertion.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#MembershipShape/researchNote n1 membership shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#NationalityEntryShape/sameAs

shape
IRI:https://w3id.org/martialis/ontology#NationalityEntryShape
rdfs:comment
One nationality of a person: a country code, optionally with its Wikidata item.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#NationalityEntryShape/sameAs n1 NationalityEntry shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#OfficerRoleShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#OfficerRoleShape
rdfs:comment
A time-bounded, sourced record that a Person held an officer position in an Organization or at a Place. Distinct from HonorAssertion, which has no natural end.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#OfficerRoleShape/researchNote n1 officer role shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#OrganizationShape/video

shape
IRI:https://w3id.org/martialis/ontology#OrganizationShape
rdfs:comment
An association, federation, governing body or lineage organization: a body that acts, governs or confers. A school or training establishment is a Place, even when it employs staff and has a head.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#OrganizationShape/video n1 organization shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#ParticipationShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#ParticipationShape
rdfs:comment
A participation record in an Event: the participating agent (a Person as participant, or an Organization as participantOrganization), their role, and the evidence.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#ParticipationShape/researchNote n1 participation shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#PersonShape/video

shape
IRI:https://w3id.org/martialis/ontology#PersonShape
rdfs:comment
A person recorded in the database: the subject of lineage, rank and honor claims, or a party to them such as a teacher, an examiner or an author.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#PersonShape/video n1 person shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#PhotoShape/mediaRights

shape
IRI:https://w3id.org/martialis/ontology#PhotoShape
rdfs:comment
An image file depicting an entity: its URL, its attribution to a source and its rights status.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#PhotoShape/mediaRights n1 Photo shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#PlaceShape/video

shape
IRI:https://w3id.org/martialis/ontology#PlaceShape
rdfs:comment
A training establishment, where training happens: a dojo, club, academy or school programme. It always occupies at least one site, but its identity is the establishment's continuity, not its address, so a move is a new dated site, not a new record. Distinct from any Organization that governs it; its teaching staff are hasInstructorRole and its offices hasOfficerRole.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#PlaceShape/video n1 place shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#PublisherShape/publisherOrg

shape
IRI:https://w3id.org/martialis/ontology#PublisherShape
rdfs:comment
The publisher of a Source: its name, optionally linked to an Organization record.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#PublisherShape/publisherOrg n1 Publisher shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#RankAssertionShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#RankAssertionShape
rdfs:comment
A claim that the subject (Person) holds a rank in a Style (rankStyle). The rank is a (rankSystem, rankType/rankOrdinal or rankGrade) tuple.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#RankAssertionShape/researchNote n1 rank assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#RankingSystemShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#RankingSystemShape
rdfs:comment
A named, sourced grading system that a style's practitioners are ranked in, such as dan-kyu, menkyo or a state sports classification.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#RankingSystemShape/researchNote n1 ranking system shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#SiteShape/withinPlace

shape
IRI:https://w3id.org/martialis/ontology#SiteShape
rdfs:comment
A site a Place or Organization occupied: its locality (required), an optional street address and map point, an optional Place it sat within, and the period when the sources date it. The only home for where a Place or Organization is; the current locality is the site or sites with no end year. No period means the period is unsourced, not that the site covers the record's whole life.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#SiteShape/withinPlace n1 site shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#SourceAssertionRelationShape/url

shape
IRI:https://w3id.org/martialis/ontology#SourceAssertionRelationShape
rdfs:comment
One evidence record: a Source plus the curator's reading of it, which says whether the Source supports the claim and how.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#SourceAssertionRelationShape/url n1 source assertion relation shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#SourceShape/volume

shape
IRI:https://w3id.org/martialis/ontology#SourceShape
rdfs:comment
A bibliographic source cited as evidence: a book, article, web page, video, thesis, interview or archival document. Its bibliographic form is sourceType.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#SourceShape/volume n1 source shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#StyleRelationAssertionShape/styleRelationType

shape
IRI:https://w3id.org/martialis/ontology#StyleRelationAssertionShape
rdfs:comment
A typed, sourced relationship between two styles: derived_from, split_from, influenced_by, sibling_style_of, or variant_of. sibling_style_of requires no shared parent.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#StyleRelationAssertionShape/styleRelationType n1 style relation assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#StyleShape/video

shape
IRI:https://w3id.org/martialis/ontology#StyleShape
rdfs:comment
A martial art, style or school of practice: a named system such as Karate, Shotokan or Daito-ryu. Styles relate to each other through StyleRelationAssertion.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#StyleShape/video n1 style shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#TeacherAssertionShape/teacher

shape
IRI:https://w3id.org/martialis/ontology#TeacherAssertionShape
rdfs:comment
A claim that a person taught the subject a style. The teacher is martialis:teacher. With no teacher, the claim states that a teacher existed whom no source names: every interaction then needs a Place or Event anchor and a dated period, and no wasTaughtBy/teaches edge is materialized. A claim assessed doubtful or refuted stays a TeacherAssertion and gives no edge either. Evidence attaches to the interactions.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#TeacherAssertionShape/teacher n1 teacher assertion shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#TeacherInteractionShape/researchNote

shape
IRI:https://w3id.org/martialis/ontology#TeacherInteractionShape
rdfs:comment
A place/period/evidence record within a teacher-student relationship.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#TeacherInteractionShape/researchNote n1 teacher interaction shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#TimeIntervalShape/startYear

shape
IRI:https://w3id.org/martialis/ontology#TimeIntervalShape
rdfs:comment
A time interval with optional start and end years.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#TimeIntervalShape/startYear n1 time interval shape0->n1 targetClass
sh:closed

shape: https://w3id.org/martialis/ontology#VideoShape/mediaRights

shape
IRI:https://w3id.org/martialis/ontology#VideoShape
rdfs:comment
A video file about an entity: its URL, its attribution to a source and its rights status.
Diagram
shape shape0 shape: https://w3id.org/martialis/ontology#VideoShape/mediaRights n1 Video shape0->n1 targetClass
sh:closed

address country value

shape
IRI:https://w3id.org/martialis/ontology/shapes#AddressCountryShape
rdfs:label
address country value
rdfs:comment
Every schema:addressCountry value must be a country IRI: an EU Publications Office country authority IRI or a local exception (XRY) - never a bare code string.
Diagram
shape shape0 address country value
Properties
Property Expected value Cardinality Description
https://schema.org/addressCountryschema:addressCountry sh:IRI

Affiliation completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#AffiliationAssertionCompletenessShape
rdfs:label
Affiliation completeness
rdfs:comment
Warns on sourceless affiliations; Info on missing period.
Diagram
shape shape0 Affiliation completeness n1 affiliation assertion shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
valid duringvalidDuring [1..*] The period during which an assertion held (used by DocumentTransmissionAssertion and AffiliationAssertion; teacher relationships carry periods on their interactions instead).
rdfs:isDefinedBy
Martialis Investigative Ontology

Affiliation not self-referential

shape
IRI:https://w3id.org/martialis/ontology/shapes#AffiliationSelfShape
rdfs:label
Affiliation not self-referential

assessedBy is an agent

shape
IRI:https://w3id.org/martialis/ontology/shapes#AssessedByShape
rdfs:label
assessedBy is an agent
Diagram
shape shape0 assessedBy is an agent n1 confidence shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
assessed byassessedBy sh:IRI The agent who performed the confidence assessment (https://martial.is/agent/).

Confidence rationale

shape
IRI:https://w3id.org/martialis/ontology/shapes#ConfidenceQualityShape
rdfs:label
Confidence rationale
rdfs:comment
Info: confidence assessments without a documented rationale.
Diagram
shape shape0 Confidence rationale n1 confidence shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
confidence rationaleconfidenceRationale [1..*] Free-text justification for the confidence level: what the evidence does and does not establish.
rdfs:isDefinedBy
Martialis Investigative Ontology

Date calendar provenance

shape
IRI:https://w3id.org/martialis/ontology/shapes#DateCalendarCompletenessShape
rdfs:label
Date calendar provenance
rdfs:comment
Info: dateCalendar recorded without the paired dateOriginal.
Diagram
shape shape0 Date calendar provenance
Properties
Property Expected value Cardinality Description
date originaldateOriginal [1..*] Free-text date as given by the source, when it differs from the Gregorian-equivalent EDTF value in the paired date property. Paired with martialis:dateCalendar.
rdfs:isDefinedBy
Martialis Investigative Ontology

Evidence type

shape
IRI:https://w3id.org/martialis/ontology/shapes#EvidenceTypeQualityShape
rdfs:label
Evidence type
rdfs:comment
Info: evidence records whose evidence type (direct, indirect, negative) is not assessed.
Diagram
shape shape0 Evidence type n1 source assertion relation shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
evidence typeevidenceType [1..*] How the cited information bears on the claim (Mills): direct, indirect or negative. Independent of martialis:supports, which gives the direction. Absent when not yet assessed.
rdfs:isDefinedBy
Martialis Investigative Ontology

Genealogy is organization-only

shape
IRI:https://w3id.org/martialis/ontology/shapes#GenealogyOrganizationOnlyShape
rdfs:label
Genealogy is organization-only

Identity assertion not self-referential

shape
IRI:https://w3id.org/martialis/ontology/shapes#IdentityAssertionSelfShape
rdfs:label
Identity assertion not self-referential

Information type

shape
IRI:https://w3id.org/martialis/ontology/shapes#InformationTypeQualityShape
rdfs:label
Information type
rdfs:comment
Info: evidence records whose information type (primary, secondary) is not assessed.
Diagram
shape shape0 Information type n1 source assertion relation shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
information typeinformationType [1..*] The informant's proximity to the specific fact cited (Mills): primary (first-hand), secondary (learned from others) or undetermined (the informant cannot be identified). Set per citation. Absent when not yet assessed.
rdfs:isDefinedBy
Martialis Investigative Ontology

Locator range ordering

shape
IRI:https://w3id.org/martialis/ontology/shapes#LocatorRangeShape
rdfs:label
Locator range ordering

Media rights unknown

shape
IRI:https://w3id.org/martialis/ontology/shapes#MediaRightsUnknownQualityShape
rdfs:label
Media rights unknown
rdfs:comment
Flags Photo/Video items with no rights value: the copyright status of the media file has not been evaluated.
Diagram
shape shape0 Media rights unknown n1 Photo shape0->n1 targetClass n2 Video shape0->n2 targetClass
Properties
Property Expected value Cardinality Description
media rightsmediaRights [1..*] Copyright or licence status of the media file itself, as one value on a single axis: a Creative Commons licence where one was granted, otherwise a rightsstatements.org statement. Absence means the status has not been evaluated. Distinct from imageAttribution, which credits the item to a source and makes no legal claim, and from informationType and evidenceType, which are epistemic.
rdfs:isDefinedBy
Martialis Investigative Ontology

Person birth after death

shape
IRI:https://w3id.org/martialis/ontology/shapes#PersonBirthAfterDeathShape
rdfs:label
Person birth after death

Person completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#PersonCompletenessShape
rdfs:label
Person completeness
rdfs:comment
Warns on Persons missing a birth date or description.
Diagram
shape shape0 Person completeness n1 person shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
has teacher assertionhasTeacherAssertion [1..*] Links a Person to their TeacherAssertions: claims of having studied under a teacher. The assertion names the teacher when a source identifies one; evidence attaches to the assertion's interactions.
has rank assertionhasRankAssertion [1..*] Links a Person to their RankAssertions: claims of holding a rank in a style.
birth event / https://schema.org/startDate [1..*]
rdfs:isDefinedBy
Martialis Investigative Ontology

Place completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#PlaceCompletenessShape
rdfs:label
Place completeness
rdfs:comment
Info: venues with no organizational affiliation or founding information.
Diagram
shape shape0 Place completeness n1 place shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
has affiliation assertionhasAffiliationAssertion [1..*] Domain intentionally omitted: applies to both Place and Organization.
founded eventfoundedEvent [1..*] Founding event with date, location, and sources. Used by Style, Organization, Place, and RankingSystem (YAML 'instituted').
rdfs:isDefinedBy
Martialis Investigative Ontology

Rank assertion completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#RankAssertionCompletenessShape
rdfs:label
Rank assertion completeness
rdfs:comment
Warns on rank claims without evidence; Info on missing grantedBy.
Diagram
shape shape0 Rank assertion completeness n1 rank assertion shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
granted bygrantedBy [1..*] Person that granted the rank or honor. Granting organizations use conferredBy.
rdfs:isDefinedBy
Martialis Investigative Ontology

Rank grade needs a scheme

shape
IRI:https://w3id.org/martialis/ontology/shapes#RankGradeSchemelessSystemShape
rdfs:label
Rank grade needs a scheme

Rank grade in the system's scheme

shape
IRI:https://w3id.org/martialis/ontology/shapes#RankGradeSpecificSchemeShape
rdfs:label
Rank grade in the system's scheme

External identity claimed by one record

shape
IRI:https://w3id.org/martialis/ontology/shapes#SameAsUniqueShape
rdfs:label
External identity claimed by one record

Site containment is acyclic

shape
IRI:https://w3id.org/martialis/ontology/shapes#SiteContainmentCycleShape
rdfs:label
Site containment is acyclic
rdfs:comment
A Place's site must not sit within the Place itself. Direct self-reference is the common data-entry slip (a record's own id pasted into withinPlace); the + path also catches longer Place -> Site -> Place chains.

Source completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#SourceCompletenessShape
rdfs:label
Source completeness
rdfs:comment
Info: sources with no issued date.
Diagram
shape shape0 Source completeness n1 source shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
https://schema.org/datePublishedschema:datePublished [1..*]
rdfs:isDefinedBy
Martialis Investigative Ontology

Source part-of acyclic

shape
IRI:https://w3id.org/martialis/ontology/shapes#SourcePartOfCycleShape
rdfs:label
Source part-of acyclic

Source dated states

shape
IRI:https://w3id.org/martialis/ontology/shapes#SourceSpecializationShape
rdfs:label
Source dated states

Style relation not self-referential

shape
IRI:https://w3id.org/martialis/ontology/shapes#StyleRelationSelfShape
rdfs:label
Style relation not self-referential

TeacherInteraction completeness

shape
IRI:https://w3id.org/martialis/ontology/shapes#TeacherInteractionCompletenessShape
rdfs:label
TeacherInteraction completeness
rdfs:comment
Warns when interactions lack a place or a period.
Diagram
shape shape0 TeacherInteraction completeness n1 teacher interaction shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
interaction periodinteractionPeriod [1..*] The period during which this teacher-student interaction took place.
rdfs:isDefinedBy
Martialis Investigative Ontology

Interaction has evidence

shape
IRI:https://w3id.org/martialis/ontology/shapes#TeacherInteractionEvidenceShape
rdfs:label
Interaction has evidence
Diagram
shape shape0 Interaction has evidence n1 teacher interaction shape0->n1 targetClass
Properties
Property Expected value Cardinality Description
has evidencehasEvidence [1..*] Links an entity (assertion, interaction, life event, or top-level entity) to its evidence records.

Time interval ordering

shape
IRI:https://w3id.org/martialis/ontology/shapes#TimeIntervalOrderShape
rdfs:label
Time interval ordering

Unidentified-teacher claim anchored

shape
IRI:https://w3id.org/martialis/ontology/shapes#UnidentifiedTeacherAnchorShape
rdfs:label
Unidentified-teacher claim anchored

Constraints (19)

person birth after death

constraint
sh:message
Person's earliest possible birth year is after their latest possible death year.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT $this ?birthEarliest ?deathLatest
            WHERE {
                $this martialis:birthEvent/martialis:earliestYear ?birthEarliest .
                $this martialis:deathEvent/martialis:latestYear ?deathLatest .
                FILTER(xsd:integer(STR(?birthEarliest)) > xsd:integer(STR(?deathLatest)))
            }
        

site containment self-reference or cycle

constraint
sh:message
A Place's site cannot sit within the Place itself, directly or through a chain - a venue cannot contain itself.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE { $this (martialis:hasSite/martialis:withinPlace)+ $this }
        

external identity claimed twice

constraint
sh:message
Two records claim the same external identity (schema:sameAs). An authority item names one entity, so only the record it describes may list it: of a Place/Organization twin, the one the item is about.
sh:select

            PREFIX schema: <https://schema.org/>
            SELECT $this ?value
            WHERE {
                $this schema:sameAs ?value .
                ?other schema:sameAs ?value .
                FILTER(?other != $this)
                FILTER(REGEX(STR($this), "^https://martial\\.is/entity/[0-9A-HJKMNP-TV-Z]{26}$"))
                FILTER(REGEX(STR(?other), "^https://martial\\.is/entity/[0-9A-HJKMNP-TV-Z]{26}$"))
            }
        

interval end before start

constraint
sh:message
endYear must not be earlier than startYear.
sh:select

            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
              $this <https://w3id.org/martialis/ontology#startYear> ?s .
              $this <https://w3id.org/martialis/ontology#endYear> ?e .
              FILTER (xsd:integer(STR(?e)) < xsd:integer(STR(?s)))
            }
        

source part-of cycle

constraint
sh:message
partOf must not form a cycle - a Source cannot, directly or transitively, be part of itself.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:partOf+ $this .
            }
        

source specialization nested

constraint
sh:message
specializationOf names a Source that is itself a dated state - point at the resource, one level only.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:specializationOf ?resource .
                ?resource martialis:specializationOf ?any .
            }
        

source specialization restates identity

constraint
sh:message
A dated state (specializationOf) carries no title, sourceType or partOf of its own, and a url only where it differs from the resource's - it inherits them from the resource.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:specializationOf ?resource .
                { $this schema:url ?u . ?resource schema:url ?u }
                UNION { $this martialis:partOf ?c }
                UNION { $this schema:name ?n } UNION { $this martialis:sourceType ?t }
            }
        

source specialization undated

constraint
sh:message
A dated state has neither archivedDate nor accessedDate - nothing tells it apart from the other states of its resource.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:specializationOf ?resource .
                FILTER NOT EXISTS { $this martialis:archiveDate ?d }
                FILTER NOT EXISTS { $this martialis:accessed ?a }
            }
        

source missing title or type

constraint
sh:message
A Source that is not a dated state needs a title and a sourceType.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                FILTER NOT EXISTS { $this martialis:specializationOf ?resource }
                FILTER (NOT EXISTS { $this schema:name ?n }
                        || NOT EXISTS { $this martialis:sourceType ?t })
            }
        

unidentified-teacher interaction unanchored

constraint
sh:message
A TeacherAssertion with no martialis:teacher must reference a Place (martialis:interactionPlace) or an Event (martialis:atEvent) on every interaction - a training claim with no identified teacher and no anchor asserts nothing checkable.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasInteraction ?i .
                FILTER NOT EXISTS { $this martialis:teacher ?t }
                FILTER NOT EXISTS { ?i martialis:interactionPlace ?p }
                FILTER NOT EXISTS { ?i martialis:atEvent ?e }
            }
        

evidence cites a changing resource

constraint
sh:message
Evidence cites a Source that has dated states - cite the state that holds the quotation.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                ?state martialis:specializationOf $this .
                ?evidence martialis:basedOnSource $this .
            }
        

locator range not ascending

constraint
sh:message
A numeric locator range must ascend - this one runs backwards (e.g. page 42-17).
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:sourceLocation ?loc ;
                      martialis:sourceLocatorLabel ?label .
                FILTER(?label IN ("page", "volume", "issue", "line", "paragraph",
                                  "folio", "note", "table", "figure", "verse",
                                  "section", "equation", "opus", "act", "column",
                                  "elocation", "supplement"))
                FILTER(REGEX(STR(?loc), "^\\s*[0-9]+\\s*-\\s*[0-9]+\\s*$"))
                BIND(xsd:integer(REPLACE(STR(?loc), "^\\s*([0-9]+)\\s*-.*$", "$1")) AS ?from)
                BIND(xsd:integer(REPLACE(STR(?loc), "^.*-\\s*([0-9]+)\\s*$", "$1")) AS ?to)
                FILTER(?from > ?to)
            }
        

unidentified-teacher interaction undated

constraint
sh:message
A TeacherAssertion with no martialis:teacher must carry an interactionPeriod with a startYear on every interaction - a training claim with no identified teacher and no period asserts nothing checkable.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasInteraction ?i .
                FILTER NOT EXISTS { $this martialis:teacher ?t }
                FILTER NOT EXISTS { ?i martialis:interactionPeriod/martialis:startYear ?y }
            }
        

rank grade wrong scheme

constraint
sh:message
rankGrade must be a concept in the gradeScheme that its rankSystem declares.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
            SELECT $this ?value
            WHERE {
                $this martialis:rankGrade ?value ; martialis:rankSystem ?rs .
                ?rs martialis:gradeScheme ?scheme .
                FILTER NOT EXISTS { ?value skos:inScheme ?scheme }
            }
        

rank grade on schemeless system

constraint
sh:message
rankGrade is set but its rankSystem declares no gradeScheme - an enumerated grade needs a system that names its scheme.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT $this ?value
            WHERE {
                $this martialis:rankGrade ?value ; martialis:rankSystem ?rs .
                FILTER NOT EXISTS { ?rs martialis:gradeScheme ?any }
            }
        

identity not self-referential

constraint
sh:message
An identity assertion's candidate must not be the person itself.
sh:select

            SELECT DISTINCT $this
            WHERE {
                $this <https://w3id.org/martialis/ontology#identityCandidate> ?p .
                ?p ?link $this .
            }
        

style relation not self-referential

constraint
sh:message
A style relation's related style must not be the style itself.
sh:select

            SELECT DISTINCT $this
            WHERE {
                $this <https://w3id.org/martialis/ontology#relatedStyle> ?s .
                ?s ?link $this .
            }
        

affiliation not self-referential

constraint
sh:message
Affiliation must not reference the entity itself.
sh:select

            SELECT DISTINCT $this
            WHERE {
                $this <https://w3id.org/martialis/ontology#relatedOrganization> ?o .
                ?o ?link $this .
            }
        

genealogy organization-only

constraint
sh:message
Genealogy affiliation relations (derived_from, split_from, merged_from, replaces, renamed_from) are Organization-only - a Place cannot claim institutional lineage.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX affrel: <https://w3id.org/martialis/vocab/affiliation-relation/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:affiliationRelation ?rel .
                ?s ?link $this .
                FILTER (?rel IN (affrel:derived_from, affrel:split_from, affrel:merged_from,
                                 affrel:replaces, affrel:renamed_from))
                FILTER NOT EXISTS { ?s a martialis:Organization }
            }
        

Warnings and info (57)

Node shapes (25)

Alternate name hygiene

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#AlternateNameQualityShape
rdfs:label
Alternate name hygiene
rdfs:comment
Warns when alternateName values contain semicolons - should be separate values.
rdfs:isDefinedBy
Martialis Investigative Ontology

Confidence ceiling

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#ConfidenceCeilingQualityShape
rdfs:label
Confidence ceiling
rdfs:comment
Signals assertions whose confidence level exceeds what their evidence can support under the level's definition.
rdfs:isDefinedBy
Martialis Investigative Ontology

Date precision

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#DatePrecisionQualityShape
rdfs:label
Date precision
rdfs:comment
Nudges prose uncertainty in confidence rationales toward structural EDTF uncertainty markers.
rdfs:isDefinedBy
Martialis Investigative Ontology

Dissolved body with an open site

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#DissolvedOpenSiteQualityShape
rdfs:label
Dissolved body with an open site
rdfs:comment
Info: a dissolved Place or Organization with a site that has a start year and no end year.
rdfs:isDefinedBy
Martialis Investigative Ontology

Document transmission author link

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#DocumentTransmissionAuthorLinkShape
rdfs:label
Document transmission author link
rdfs:comment
Info: a document-transmission claim's document names an authorship-role contributor who is not linked to a Person record.
rdfs:isDefinedBy
Martialis Investigative Ontology

Entity unsourced

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#EntityUnsourcedQualityShape
rdfs:label
Entity unsourced
rdfs:comment
Warns when an entity carries no top-level evidence, leaving its name/description/classification unbacked.
rdfs:isDefinedBy
Martialis Investigative Ontology

Event location

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#EventLocationQualityShape
rdfs:label
Event location
rdfs:comment
Info: events with no location (eventPlace or location).
rdfs:isDefinedBy
Martialis Investigative Ontology

Evidence cites a container source

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#EvidenceContainerQualityShape
rdfs:label
Evidence cites a container source
rdfs:comment
Info: an evidence record points at a container Source (a language edition, a journal, a series) rather than the item actually consulted, so the article or document is not identifiable from the citation.
rdfs:isDefinedBy
Martialis Investigative Ontology

Interaction period plausibility

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#InteractionPeriodQualityShape
rdfs:label
Interaction period plausibility
rdfs:comment
Signals interaction periods inconsistent with the student's dates.
rdfs:isDefinedBy
Martialis Investigative Ontology

Organization dissolution

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#OrganizationDissolutionQualityShape
rdfs:label
Organization dissolution
rdfs:comment
Info: dissolved events without a manner, and dissolutions that no successor's genealogy edge points back at.
rdfs:isDefinedBy
Martialis Investigative Ontology

Predecessor unended

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#OrganizationPredecessorUnendedQualityShape
rdfs:label
Predecessor unended
rdfs:comment
Info: genealogy claims whose predecessor organization has no dissolved event.
rdfs:isDefinedBy
Martialis Investigative Ontology

Participation style attribution

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#ParticipationStyleAttributionShape
rdfs:label
Participation style attribution
rdfs:comment
Info: a multi-style course/seminar whose instructor participations lack style annotations.
rdfs:isDefinedBy
Martialis Investigative Ontology

Rank evidence quotation

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#RankAssertionQuotationQualityShape
rdfs:label
Rank evidence quotation
rdfs:comment
Warns when a rank grant's sources carry no quotation.
rdfs:isDefinedBy
Martialis Investigative Ontology

Wikipedia-only rank evidence

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#RankAssertionWikipediaOnlyQualityShape
rdfs:label
Wikipedia-only rank evidence
rdfs:comment
Info: rank claims sourced solely from Wikipedia.
rdfs:isDefinedBy
Martialis Investigative Ontology

Rank direction/grade completeness

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#RankDirectionQualityShape
rdfs:label
Rank direction/grade completeness
rdfs:comment
Info: ranks with neither rankType, rankOrdinal nor rankGrade.
rdfs:isDefinedBy
Martialis Investigative Ontology

Source classification

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#SourceClassificationQualityShape
rdfs:label
Source classification
rdfs:comment
Info: Sources whose classification (original, derivative, authored) is not assessed. A state inherits its resource's.
rdfs:isDefinedBy
Martialis Investigative Ontology
sh:message
Quality check: Source has no sourceClassification - is it the first record (original), a copy (derivative), or a narrative written from other records (authored)?

Source containment

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#SourceContainmentQualityShape
rdfs:label
Source containment
rdfs:comment
Info: item-level sources without partOf, over-deep containment chains, selfPublished disagreement with the derivable signal, and publisher-name/container mismatches.
rdfs:isDefinedBy
Martialis Investigative Ontology

Webpage source quality

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#SourceWebpageQualityShape
rdfs:label
Webpage source quality
rdfs:comment
Warns on webpage sources with no accessed date or no archive snapshot. A resource with dated states is exempt: its states carry both.
rdfs:isDefinedBy
Martialis Investigative Ontology

Asymmetric sibling_style_of

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#StyleSiblingAsymmetryQualityShape
rdfs:label
Asymmetric sibling_style_of
rdfs:comment
sibling_style_of is a peer relationship and should be declared on both styles; flags a one-way declaration.
rdfs:isDefinedBy
Martialis Investigative Ontology

Style variant_of cycle

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#StyleVariantCycleQualityShape
rdfs:label
Style variant_of cycle
rdfs:comment
variant_of describes a narrower-to-broader lineage and should never cycle back to its own starting style.
rdfs:isDefinedBy
Martialis Investigative Ontology

Teacher age plausibility

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#TeacherAgeQualityShape
rdfs:label
Teacher age plausibility
rdfs:comment
Signals teacher-student interactions whose dates imply an implausible age difference.
rdfs:isDefinedBy
Martialis Investigative Ontology

Teacher evidence quotation

shapewarning
IRI:https://w3id.org/martialis/ontology/shapes#TeacherInteractionQuotationQualityShape
rdfs:label
Teacher evidence quotation
rdfs:comment
Warns when a teacher claim's sources carry no quotation - sourced only in paraphrase.
rdfs:isDefinedBy
Martialis Investigative Ontology

Wikipedia-only teacher evidence

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#TeacherInteractionWikipediaOnlyQualityShape
rdfs:label
Wikipedia-only teacher evidence
rdfs:comment
Info: teacher claims whose every source is Wikipedia - circularity risk.
rdfs:isDefinedBy
Martialis Investigative Ontology

Unidentified-teacher candidate instructors

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#UnidentifiedTeacherCandidateShape
rdfs:label
Unidentified-teacher candidate instructors
rdfs:comment
Info: the venue of a teacher claim with no identified teacher has no InstructorRole overlapping its period - no candidate instructors are recorded for this venue and window.
rdfs:isDefinedBy
Martialis Investigative Ontology

Unidentified-teacher claim possibly superseded

shapeinfo
IRI:https://w3id.org/martialis/ontology/shapes#UnidentifiedTeacherSupersededShape
rdfs:label
Unidentified-teacher claim possibly superseded
rdfs:comment
Info: a teacher claim with no identified teacher shares its style, a Place or Event, and an overlapping period with a claim of the same person that names the teacher.
rdfs:isDefinedBy
Martialis Investigative Ontology

Constraints (32)

interaction wikipedia-only sources

constraintinfo
sh:message
Quality check: every source on this TeacherInteraction is a Wikipedia article - consider adding a non-Wikipedia corroborating source to avoid circularity.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasEvidence ?e .
                FILTER NOT EXISTS {
                    $this martialis:hasEvidence ?e2 .
                    FILTER NOT EXISTS {
                        { ?e2 martialis:basedOnSource/schema:url ?u2 } UNION { ?e2 schema:url ?u2 }
                        FILTER(CONTAINS(STR(?u2), "wikipedia.org"))
                    }
                }
            }
        

unidentified teacher no candidate instructors

constraintinfo
sh:message
Quality check: no InstructorRole on this venue overlaps the claimed period - no candidate instructors are recorded for this venue and window; worth researching.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
                FILTER NOT EXISTS { $this martialis:teacher ?teacher }
                $this martialis:hasInteraction ?i .
                ?i martialis:interactionPlace ?place ;
                   martialis:interactionPeriod ?period .
                ?period martialis:startYear ?start .
                FILTER NOT EXISTS {
                    ?place martialis:hasInstructorRole ?role .
                    ?role martialis:instructorPeriod ?rperiod .
                    ?rperiod martialis:startYear ?rstart .
                    OPTIONAL { ?rperiod martialis:endYear ?rend }
                    FILTER(xsd:integer(STR(?rstart)) <= xsd:integer(STR(?start))
                           && (!BOUND(?rend) || xsd:integer(STR(?rend)) >= xsd:integer(STR(?start))))
                }
            }
        

unidentified teacher possibly superseded

constraintinfo
sh:message
Quality check: another claim of this person names a teacher for the same style at the same Place or Event in an overlapping period - if it covers this claim, move this claim's evidence to it and remove this one.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
                ?person martialis:hasTeacherAssertion $this , ?named .
                FILTER NOT EXISTS { $this martialis:teacher ?none }
                ?named martialis:teacher ?teacher .
                OPTIONAL { $this martialis:assertedStyle ?style }
                OPTIONAL { ?named martialis:assertedStyle ?namedStyle }
                FILTER (!BOUND(?style) || !BOUND(?namedStyle) || ?style = ?namedStyle)
                $this martialis:hasInteraction ?i .
                ?named martialis:hasInteraction ?j .
                { ?i martialis:interactionPlace ?anchor . ?j martialis:interactionPlace ?anchor }
                UNION
                { ?i martialis:atEvent ?anchor . ?j martialis:atEvent ?anchor }
                ?i martialis:interactionPeriod/martialis:startYear ?start .
                OPTIONAL { ?i martialis:interactionPeriod/martialis:endYear ?end }
                OPTIONAL { ?j martialis:interactionPeriod/martialis:startYear ?namedStart }
                OPTIONAL { ?j martialis:interactionPeriod/martialis:endYear ?namedEnd }
                FILTER ((!BOUND(?namedStart) || xsd:integer(STR(?namedStart)) <= xsd:integer(STR(COALESCE(?end, ?start))))
                        && (!BOUND(?namedEnd) || xsd:integer(STR(?namedEnd)) >= xsd:integer(STR(?start))))
            }
        

instructor participation missing style

constraintinfo
sh:message
Quality check: this course/seminar covers multiple styles but an instructor participation carries no participationStyle - annotate which art that instructor taught here so candidate matches are attributable.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            PREFIX eventclass: <https://w3id.org/martialis/vocab/event-classification/>
            PREFIX eventrole: <https://w3id.org/martialis/vocab/event-role/>
            SELECT DISTINCT $this
            WHERE {
                $this a martialis:Event ;
                       martialis:eventType ?type ;
                       schema:about ?s1 , ?s2 ;
                       martialis:hasParticipation ?p .
                ?p martialis:participationRole eventrole:instructor .
                FILTER (?type IN (eventclass:course, eventclass:seminar))
                FILTER (?s1 != ?s2)
                FILTER NOT EXISTS { ?p martialis:participationStyle ?st }
            }
        

transmission document author unlinked

constraintinfo
sh:message
Quality check: this transmitted document's author is named but not linked to a Person - add hasContributor[].contributorPerson when the author is a Person record (the reader-to-author link is derived from it; no rule materializes it).
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:transmissionDocument ?doc .
                ?doc martialis:hasContributor ?c .
                ?c martialis:contributorRole ?role .
                FILTER (?role IN ("author", "original-author", "container-author"))
                FILTER EXISTS {
                    { ?c schema:familyName ?f } UNION
                    { ?c schema:givenName ?g } UNION
                    { ?c schema:name ?n }
                }
                FILTER NOT EXISTS { ?c martialis:contributorPerson ?p }
            }
        

date uncertainty unencoded

constraintinfo
sh:message
Quality check: confidence.rationale suggests date uncertainty, but the date field itself carries no EDTF uncertainty marker - consider encoding it structurally (~ ? % an interval, or a Level 2 set) instead of only in prose.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:dateConferred ?date ;
                      martialis:hasConfidence ?conf .
                ?conf martialis:confidenceRationale ?rationale .
                FILTER(!CONTAINS(STR(?date), "~") && !CONTAINS(STR(?date), "?")
                       && !CONTAINS(STR(?date), "%") && !CONTAINS(STR(?date), "/")
                       && !CONTAINS(STR(?date), "["))
                FILTER(REGEX(STR(?rationale), "circa|approx|conflicting date|disput|uncertain date|probably (in|around)|before [0-9]{4}", "i"))
            }
        

rank missing quotation

constraintwarning
sh:message
Quality check: RankAssertion has sources, but none carry a quotation - a direct quote substantiating the grant is expected.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasEvidence ?e .
                FILTER NOT EXISTS { $this martialis:hasEvidence/martialis:quotation ?q }
            }
        

rank wikipedia-only sources

constraintinfo
sh:message
Quality check: every source on this RankAssertion is a Wikipedia article - consider adding a non-Wikipedia corroborating source to avoid circularity.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasEvidence ?e .
                FILTER NOT EXISTS {
                    $this martialis:hasEvidence ?e2 .
                    FILTER NOT EXISTS {
                        { ?e2 martialis:basedOnSource/schema:url ?u2 } UNION { ?e2 schema:url ?u2 }
                        FILTER(CONTAINS(STR(?u2), "wikipedia.org"))
                    }
                }
            }
        

rank missing direction or grade

constraintinfo
sh:message
Quality check: rank records neither rankType, rankOrdinal nor rankGrade - consider adding the documented direction or grade if the source states one.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this a martialis:RankAssertion .
                FILTER NOT EXISTS { $this martialis:rankType ?t }
                FILTER NOT EXISTS { $this martialis:rankOrdinal ?o }
                FILTER NOT EXISTS { $this martialis:rankGrade ?g }
            }
        

dissolution missing manner

constraintinfo
sh:message
Quality check: Organization has a dissolved event with no manner - consider adding if known (merged/split/superseded/suppressed/renamed/defunct/unknown).
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:dissolvedEvent ?d .
                FILTER NOT EXISTS { ?d martialis:dissolutionManner ?m }
            }
        

dissolution unmatched successor edge

constraintinfo
sh:message
Quality check: Organization was dissolved by merger/supersession/rename but no other organization declares the matching merged_from/replaces/renamed_from affiliation pointing back at it - consider adding the successor's edge, or the successor entity, if known.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX diss: <https://w3id.org/martialis/vocab/dissolution-manner/>
            PREFIX affrel: <https://w3id.org/martialis/vocab/affiliation-relation/>
            SELECT DISTINCT $this
            WHERE {
                {
                    $this martialis:dissolvedEvent/martialis:dissolutionManner diss:merged .
                    BIND(affrel:merged_from AS ?expectedRel)
                } UNION {
                    $this martialis:dissolvedEvent/martialis:dissolutionManner diss:superseded .
                    BIND(affrel:replaces AS ?expectedRel)
                } UNION {
                    $this martialis:dissolvedEvent/martialis:dissolutionManner diss:renamed .
                    BIND(affrel:renamed_from AS ?expectedRel)
                }
                FILTER NOT EXISTS {
                    ?successor martialis:hasAffiliationAssertion ?a .
                    ?a martialis:relatedOrganization $this ;
                       martialis:affiliationRelation ?expectedRel .
                }
            }
        

genealogy predecessor not dissolved

constraintinfo
sh:message
Quality check: this genealogy affiliation implies the predecessor organization ended, but it has no dissolved event - consider adding one.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX affrel: <https://w3id.org/martialis/vocab/affiliation-relation/>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:affiliationRelation ?rel ;
                      martialis:relatedOrganization ?predecessor .
                FILTER (?rel IN (affrel:merged_from, affrel:replaces, affrel:renamed_from))
                FILTER NOT EXISTS { ?predecessor martialis:dissolvedEvent ?d }
            }
        

alternate name semicolons

constraintwarning
sh:message
Quality check: aka contains semicolons - should be split into separate values.
sh:select

            SELECT $this ?name
            WHERE {
                $this schema:alternateName ?name .
                FILTER(CONTAINS(STR(?name), ";"))
            }
        

entity has no sources

constraintwarning
sh:message
Quality check: entity has no top-level sources - its name, description and classification are unbacked.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                FILTER NOT EXISTS {
                    $this martialis:hasEvidence ?ev .
                    ?ev a martialis:SourceAssertionRelation .
                }
            }
        

event missing location

constraintinfo
sh:message
Quality check: Event has no location (eventPlace or location) - consider adding if known.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX schema: <https://schema.org/>
            SELECT DISTINCT $this
            WHERE {
                FILTER NOT EXISTS { $this schema:location ?loc }
            }
        

dissolved body with open site

constraintinfo
sh:message
Quality check: dissolved, but a site has a start year and no end year - close the site or check the dissolution.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:dissolvedEvent ?d ;
                      martialis:hasSite/martialis:sitePeriod ?p .
                ?p martialis:startYear ?s .
                FILTER NOT EXISTS { ?p martialis:endYear ?e }
            }
        

webpage missing accessed date

constraintwarning
sh:message
Quality check: webpage Source has no accessed date - when was this consulted?
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:specializationOf?/martialis:sourceType "webpage" .
                FILTER NOT EXISTS { $this martialis:accessed ?a }
                FILTER NOT EXISTS { ?state martialis:specializationOf $this }
            }
        

webpage missing archive snapshot

constraintwarning
sh:message
Quality check: webpage Source has no archive snapshot - the live URL may go dead.
sh:select

            PREFIX schema: <https://schema.org/>
            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:specializationOf?/martialis:sourceType "webpage" .
                FILTER NOT EXISTS { $this schema:archivedAt ?a }
                FILTER NOT EXISTS { ?state martialis:specializationOf $this }
            }
        

item source missing container

constraintinfo
sh:message
Quality check: an item-level source (not a container form like website/periodical/collection/book) has no partOf - consider linking it to its journal, website edition, or volume.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:sourceType ?type .
                FILTER (?type NOT IN ("website", "periodical", "collection", "book"))
                FILTER NOT EXISTS { $this martialis:partOf ?container }
                FILTER NOT EXISTS { $this martialis:specializationOf ?resource }
            }
        

container nesting too deep

constraintinfo
sh:message
Quality check: partOf nests more than 3 levels deep - worth checking this containment chain makes sense.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:partOf ?p1 .
                ?p1 martialis:partOf ?p2 .
                ?p2 martialis:partOf ?p3 .
                ?p3 martialis:partOf ?p4 .
            }
        

self-published signal mismatch

constraintinfo
sh:message
Quality check: selfPublished disagrees with the derivable signal (publisher.publisherOrg matching a contributor's contributorOrg) - worth double-checking. A personal blog with no publisherOrg is not checked.
sh:select

            PREFIX schema: <https://schema.org/>
            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:selfPublished ?asserted .
                OPTIONAL {
                    $this schema:publisher [ martialis:publisherOrg ?pubOrg ] ;
                          martialis:hasContributor [ martialis:contributorOrg ?pubOrg ] .
                    BIND(true AS ?derived)
                }
                FILTER (
                    (?asserted = true && !BOUND(?derived)
                        && EXISTS { $this schema:publisher/martialis:publisherOrg ?anyOrg }) ||
                    (?asserted = false && BOUND(?derived))
                )
            }
        

evidence cites container source

constraintinfo
sh:message
Quality check: basedOnSource points at a container Source (a Source something else is partOf) - cite the item-level Source, or fall back to uri+cite, so the article/document itself is identifiable.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this ?container
            WHERE {
                $this martialis:basedOnSource ?container .
                ?item martialis:partOf ?container .
            }
        

confirmed without establishing evidence

constraintinfo
sh:message
Quality check: confirmed, but fewer than two independent Sources give direct support (Wikipedia counts once) - right only if the one Source is the other party's own record (teacher's account, grantor's register); otherwise probable.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX conflevel: <https://w3id.org/martialis/vocab/confidence-level/>
            PREFIX infotype: <https://w3id.org/martialis/vocab/information-type/>
            PREFIX evidencetype: <https://w3id.org/martialis/vocab/evidence-type/>
            PREFIX sdo: <https://schema.org/>
            SELECT $this WHERE {
                $this martialis:hasConfidence/martialis:confidenceLevel conflevel:confirmed .
                OPTIONAL {
                    SELECT $this (COUNT(DISTINCT ?src) AS ?n) WHERE {
                        $this (martialis:hasEvidence | martialis:hasInteraction/martialis:hasEvidence) ?ev .
                        ?ev martialis:supports true ; martialis:evidenceType evidencetype:direct .
                        OPTIONAL { ?ev martialis:basedOnSource ?bs } OPTIONAL { ?ev sdo:url ?u }
                        OPTIONAL { ?ev martialis:basedOnSource/sdo:url ?bsu }
                        BIND(IF(CONTAINS(STR(COALESCE(?bsu, ?u, "")), "wikipedia.org"), "wikipedia", COALESCE(?bs, ?u)) AS ?src)
                    } GROUP BY $this
                }
                FILTER(COALESCE(?n, 0) < 2)
            }
        

probable without direct evidence

constraintinfo
sh:message
Quality check: probable or confirmed, but no supporting citation is assessed as direct evidence - consider possible, or assess the citations' evidenceType.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX conflevel: <https://w3id.org/martialis/vocab/confidence-level/>
            PREFIX evidencetype: <https://w3id.org/martialis/vocab/evidence-type/>
            SELECT $this WHERE {
                VALUES ?level { conflevel:probable conflevel:confirmed }
                $this martialis:hasConfidence/martialis:confidenceLevel ?level .
                FILTER NOT EXISTS {
                    $this (martialis:hasEvidence | martialis:hasInteraction/martialis:hasEvidence) ?ev .
                    ?ev martialis:supports true ; martialis:evidenceType evidencetype:direct .
                }
            }
        

refuted without incompatible evidence

constraintinfo
sh:message
Quality check: refuted, but no contradicting citation (supports false) is direct or indirect evidence - the absence of an expected record alone does not refute a claim; consider doubtful.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX conflevel: <https://w3id.org/martialis/vocab/confidence-level/>
            PREFIX evidencetype: <https://w3id.org/martialis/vocab/evidence-type/>
            SELECT $this WHERE {
                $this martialis:hasConfidence/martialis:confidenceLevel conflevel:refuted .
                FILTER NOT EXISTS {
                    VALUES ?type { evidencetype:direct evidencetype:indirect }
                    $this (martialis:hasEvidence | martialis:hasInteraction/martialis:hasEvidence) ?ev .
                    ?ev martialis:supports false ; martialis:evidenceType ?type .
                }
            }
        

tradition-only confirmed

constraintinfo
sh:message
Quality check: confirmed, but every supporting source is the lineage's own recount of its past - sources sharing one origin cannot corroborate each other, so probable at most. A grant recorded by the granting body itself is exempt.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX conflevel: <https://w3id.org/martialis/vocab/confidence-level/>
            PREFIX sdo: <https://schema.org/>
            SELECT $this WHERE {
                $this a martialis:TraditionOnlyAssertion ;
                      martialis:hasConfidence/martialis:confidenceLevel conflevel:confirmed .
                FILTER NOT EXISTS {
                    $this (martialis:conferredBy | martialis:grantedBy) ?grantor ;
                          martialis:hasEvidence/martialis:basedOnSource/sdo:publisher/martialis:publisherOrg ?grantor .
                }
            }
        

asymmetric sibling_style_of

constraintwarning
sh:message
Quality check: sibling_style_of is declared one-way - the other style should declare it back.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX stylerel: <https://w3id.org/martialis/vocab/style-relation/>
            SELECT DISTINCT $this
            WHERE {
                ?a ?link $this .
                $this martialis:relatedStyle ?b ;
                      martialis:styleRelationType stylerel:sibling_style_of .
                FILTER NOT EXISTS {
                    ?b ?back ?rev .
                    ?rev martialis:relatedStyle ?a ;
                         martialis:styleRelationType stylerel:sibling_style_of .
                }
            }
        

variant_of cycle

constraintwarning
sh:message
Quality check: this style's variant_of chain cycles back to itself.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                FILTER EXISTS { $this martialis:variantOf+ $this }
            }
        

teacher born after student

constraintinfo
sh:message
Quality check: the teacher was born after the student - worth double-checking.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
                ?student ?link $this .
                $this martialis:teacher ?teacher .
                ?student martialis:birthEvent/martialis:latestYear ?studentLatest .
                ?teacher martialis:birthEvent/martialis:earliestYear ?teacherEarliest .
                FILTER(xsd:integer(STR(?teacherEarliest)) > xsd:integer(STR(?studentLatest)))
            }
        

interaction outside lifespan

constraintinfo
sh:message
Quality check: interaction period falls outside the student's or teacher's lifespan - worth double-checking.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
            SELECT DISTINCT $this
            WHERE {
                ?student ?link ?assertion .
                ?assertion martialis:hasInteraction $this ;
                           martialis:teacher ?teacher .
                $this martialis:interactionPeriod ?period .
                ?period martialis:startYear ?start .
                {
                    { ?student martialis:birthEvent/martialis:earliestYear ?bound .
                      BIND("lower" AS ?kind) }
                    UNION
                    { ?student martialis:deathEvent/martialis:latestYear ?bound .
                      BIND("upper" AS ?kind) }
                    UNION
                    { ?teacher martialis:birthEvent/martialis:earliestYear ?bound .
                      BIND("lower" AS ?kind) }
                    UNION
                    { ?teacher martialis:deathEvent/martialis:latestYear ?bound .
                      BIND("upper" AS ?kind) }
                }
                FILTER ( (?kind = "lower" && xsd:integer(STR(?start)) < xsd:integer(STR(?bound)))
                      || (?kind = "upper" && xsd:integer(STR(?start)) > xsd:integer(STR(?bound))) )
            }
        

interaction missing quotation

constraintwarning
sh:message
Quality check: TeacherInteraction has sources, but none carry a quotation - a direct quote substantiating the relationship is expected.
sh:select

            PREFIX martialis: <https://w3id.org/martialis/ontology#>
            SELECT DISTINCT $this
            WHERE {
                $this martialis:hasEvidence ?e .
                FILTER NOT EXISTS { $this martialis:hasEvidence/martialis:quotation ?q }
            }